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杂记
原创文章,作者:Gary,如若转载,请注明出处:https://www.cpw5.top/637.html
淘宝小店:陈皮王五工作室
评论列表(5条)
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]
[…] 物联网开源平台开发系列003 – Thingsboard OAuth2 – Google身份验证登陆 […]