引用文字

准备工作

  • OAuth2 认证基本知识;
  • Odoo 14版本,单机部署,最好不使用 docker 环境;
  • Odoo OAuth for Keycloak 扩展;
  • Keycloak,配置好 Client 和 User;

工作原理

1. Odoo 插件安装

下载插件,https://github.com/OCA/server-auth/tree/14.0/auth_oidc,配置到 Odoo 外部扩展插件中,安装,具体步骤看插件 Readme 文件即可;

2. 配置 Odoo 支持 Keycloak 认证,按照下图例子参考配置 Odoo 即可;

oauth1.png

3. Keycloak 配置,以便支持 Odoo;

Clients 配置基本功能即可,可参考:https://yiqisoft.cn/blogs/iot_platform/243.html,尤其需要配置一个 Mapper,匹配 email 地址用:
oauth2.png
创建 Keycloak 内置用户即可;
oauth4.png

4. Odoo 用户配置

已知内置用户可以配置成 OAuth2 用户,这样内置用户可以登录 Odoo,OAuth2 用户也可以登录;
oauth3.png
内置用户可以不创建,第一次登录 OAuth2 服务器后会自动创建,此时新创建用户无法使用 Odoo 登录,需要发送认证email后创建密码;

成果演示

ThingsBoard 官方已经发布一些 OAuth2 支持的例子,https://thingsboard.io/docs/user-guide/oauth-2-support/,有 Google,Auth0,其他比如 GitHub 也比较简单。这里介绍的是 Keycloak 的配置。

1、前提条件

1.1、ThingsBoard Oauth2 支持

首先确保你的 ThingsBoard 服务器版本支持 OAuth2,比如 V3.3.*,以 sysadmin 登录即可。

1.2、Keycloak 服务器

安装

过程比较简单,可根据自身需求选择安装方式;测试的时候可以用 docker ,方便快捷。

阅读手册

找到你能读懂的文档,简单熟悉配置方法。

2、配置

2.1、Keycloak 配置

新建 realm

keycloak2.png

复制 secret

keycloak3.png

增加 user

keycloak4.png

设置 user 密码

keycloak5.png

2.2、ThingsBoard 配置

keycloak1.png

尤其注意 一系列 URI,其中 YiSERVER 换成你的 真实 realm 即可。

访问令牌URI:

http://localhost:8081/realms/YiSERVER/protocol/openid-connect/token

授权URI:

http://localhost:8081/realms/YiSERVER/protocol/openid-connect/auth

JSON Web Key URI:

http://localhost:8081/realms/YiSERVER/protocol/openid-connect/certs

用户信息URI:

http://localhost:8081/realms/YiSERVER/protocol/openid-connect/userinfo

3、验证

3.1、登录 ThingsBoard

keycloak6.png

3.2、跳转到 Keycloak

keycloak7.png

3.3、完成 OAuth2 登录集成

keycloak8.png

3.4、视频预览