小亿 发布的文章
Odoo 集成 OAuth2 认证(Keycloak),实现统一登录
引用文字
准备工作
- 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 即可;
3. Keycloak 配置,以便支持 Odoo;
Clients 配置基本功能即可,可参考:https://yiqisoft.cn/blogs/iot_platform/243.html,尤其需要配置一个 Mapper,匹配 email 地址用:
创建 Keycloak 内置用户即可;
4. Odoo 用户配置
已知内置用户可以配置成 OAuth2 用户,这样内置用户可以登录 Odoo,OAuth2 用户也可以登录;
内置用户可以不创建,第一次登录 OAuth2 服务器后会自动创建,此时新创建用户无法使用 Odoo 登录,需要发送认证email后创建密码;
成果演示
YiAPP 移动客户端集成 OAuth2 认证服务器,实现统一登录
移动客户端通过 OAuth2 登录,实现账号统一管理。
准备工作
- YiAPP 客户端;
- OAuth2 服务器;
- IoT 应用服务器;
工作原理
- 打开 YiAPP 客户端软件;
- 使用“第三方登录”,选择 YiCLOUD 或 Github;
- 登录 第三方账号;
- 登录成功后即可完成统一登录;
视频演示
ThingsBoard 集成 Keycloak 自定义 OAuth2 认证服务器
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
复制 secret
增加 user
设置 user 密码
2.2、ThingsBoard 配置
尤其注意 一系列 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
3.2、跳转到 Keycloak
3.3、完成 OAuth2 登录集成
3.4、视频预览
ThinsBoard 二次开发:ImageMap 上点击设备地图高亮
当我们把很多设备以 Map 方式展现在UI中时,很多设备,密密麻麻,需要通过搜索后高亮显示,此二次开发就实现了。
准备工作
- 使用 ImageMap 做一个Dashboard,可以把 device 拖拽到 Map 中;
效果展示
查看视频