ThingsBoard 允许您为客户提供单点登录功能,并使用支持 OAuth 2.0 协议的外部用户管理平台自动创建租户、客户或子客户。支持 OAuth 2.0 协议的平台列表:Google、Auth0、Keycloak、Okta、Azure 等,其实也支持企业自建SSO用户中心实现统一登陆。本篇先介绍如何使用谷歌Google身份验证登陆。
本篇参考了官方文档:OAuth 2.0 |ThingsBoard 社区版
在此示例中,我们将使用 Google 身份验证。 用户将被记录为 Tenant,并且 Tenant name 将等于用户的电子邮件。 如果系统中不存在 Tenant,则将创建新的 Tenant。
为了从 Google 和 OAuth 平台映射这些外部用户信息,我们使用内置的基本映射器(basic-mapper)。

准备工作
要使用 Google OAuth 2.0 鉴权平台进行登录,您需要在 Google API 控制台设置一个项目以获取 OAuth 2.0 凭证。
请按照 OpenID Connect 页面上的说明或按照以下步骤配置 OAuth 2.0 客户端。 完成上述说明后,您应该拥有一个新的 OAuth 客户端,其凭证由客户端 ID 和客户端密钥组成。




输入 OAuth 客户端名称,并将 ThingsBoard 重定向 URI 添加到“授权重定向 URI”部分,格式如下:

http(s)://domain:port/login/oauth2/code/
用户在通过 Google 身份验证后将重定向到此路径。 此路径将会被附上访问授权代码,并且必须包含协议;不能包含网址片段、相对路径或通配符,并且不得是公共 IP 地址。

配置好thingsboard 访问域名
在 ThingsBoard 中将 Google 配置为 OAuth 2.0 身份验证提供程序
登录到您的 ThingsBoard 实例;转到 “Security” 部分的 “OAuth 2.0” 页面;
在 “Domains” 选项卡上,单击 “+” 图标;输入您的 ThingsBoard 实例的域名;
单击“OAuth 2.0 客户端”部分中的“新建”以添加新的客户端


添加新的 OAuth 2.0 客户端:
输入“Google”作为标题;提供程序应设置为 “Google”;如有必要,请指定允许的平台,或保留全部;
在 Google API 控制台中输入“Client ID”和“Client secret”;展开“高级设置”菜单。

转到 “Mapper” 块:
将映射器类型保留为 “BASIC”;选择 “CUSTOM” 作为租户名称策略;指定 %{email} 作为租户名称模式

登陆

注意:
- google的oauth ,需要为应用程序配置域名,并且正式使用需要验证应用程序
- thingsboard的oauth配置,在域名下不能带端口号,只能用域名不带端口的, 因此thingsboard的http访问不能用端口。But,这个可以在数据库中直接修改对应字段值操作。
OAuth2 对应的数据库表:
domain 对应页面上的域名设置;
domain_oauth2_client 对应domain绑定的 OAuth2 客户端id;
oauth2_client 对应页面上OAuth2客户端设置;
oauth2_client_registration_template ,内置了几个OAuth2提供者的模板;
对应的API:
创建Domain: /api/domain{?oauth2ClientIds}
创建客户端:/api/oauth2/client
系列文章:
物联网开源平台开发系列001 – 开源平台Thingsboard 介绍
物联网开源平台开发系列002 – Thingsboard 用户系统分析
物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆
物联网开源平台开发系列004 – Thingsboard的实体、资产、设备一般说明及数据存储 – 陈皮王五de杂记
物联网开源平台开发系列005 – Thingsboard的API简述 – 陈皮王五de杂记
物联网开源平台开发系列006 – 在Thingsboard内创建一个设备 – 陈皮王五de杂记
物联网开源平台开发系列007 – Thingsboard的批量导入设备 – 陈皮王五de杂记
物联网开源平台开发系列008 – 浅谈物联网传输协议 – 陈皮王五de杂记
物联网开源平台开发系列009 – Thingsboard服务器对IoT设备下发指令 – 陈皮王五de杂记
物联网开源平台开发系列010 – Thingsboard规则引擎简介 – 陈皮王五de杂记
物联网开源平台开发系列011 – Thingsboard规则节点Originator Telemetry – 陈皮王五de杂记
物联网开源平台开发系列012 – Thingsboard 设备离线Alarm设置 – 陈皮王五de杂记
物联网开源平台开发系列013 – Thingsboard 遥测产生告警Alarm – 陈皮王五de杂记
物联网开源平台开发系列014 – Thingsboard遥测时序数据存储结构及分区策略 – 陈皮王五de杂记
物联网开源平台开发系列015 – Thingsboard postgresql数据库基本配置 – 陈皮王五de杂记
物联网开源平台开发系列016 – 再谈Thingsboard的设备注册 – 陈皮王五de杂记
物联网开源平台开发系列017 – Thingsboard的设备联动场景 – 陈皮王五de杂记
物联网开源平台开发系列018 – Thingsboard获取和处理天气信息 – 陈皮王五de杂记
物联网开源平台开发系列019 – Thingsboard设备数据传播给资产 – 陈皮王五de杂记
物联网开源平台开发系列020 – Thingsboard的实体视图Entity View – 陈皮王五de杂记
物联网开源平台开发系列021 – Thingsboard的网关gateway – 陈皮王五de杂记
物联网开源平台开发系列022 – 通过Thingsboard网关gateway动态创建设备 – 陈皮王五de杂记
物联网开源平台开发系列023 – Thingsboard设备列表仪表盘 – 陈皮王五de杂记
物联网开源平台开发系列024 – Thingsboard接入摄像头方案 – 陈皮王五de杂记
物联网开源平台开发系列025 – Thingsboard规则链节点的JS代码调试 – 陈皮王五de杂记
物联网开源平台开发系列026 – Thingsboard 仪表板Entities table 降序排序 – 陈皮王五de杂记
物联网开源平台开发系列027 – Thingsboard 仪表板数据筛选复杂的数值计算或者多层嵌套筛选逻辑实现 – 陈皮王五de杂记
物联网开源平台开发系列028 – Thingsboard 仪表板数据键的数据后处理功能处理复杂Json对象 – 陈皮王五de杂记
原创文章,作者:Gary,如若转载,请注明出处:https://www.cpw5.top/637.html
淘宝小店:陈皮王五工作室
评论列表(26条)
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]