DataEase单点登录之OIDC

1. OIDC简介

OIDC(OpenID Connect)是一个身份认证协议,它规定了一套把用户身份信息从授权服务器(身份提供方)传递给客户机应用(身份使用方)的标准流程、格式。
市面上有多种产品支持OIDC协议实现单点登录,例如:Keycloak提供了单点登录(SSO)功能,支持OpenID
Connect、OAuth 2.0、SAML 2.0 标准协议,拥有简单易用的管理控制台,并提供对LDAP、Active
Directory以及Github、Google等社交账号登录的支持,做到了非常简单的开箱即用。

2. Keycloak部署:

docker run -d -p 8080:8080 --name keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin -e DB_VENDOR=mysql -e DB_USER=root -e DB_PASSWORD=root -e DB_ADDR=192.168.18.134 -e DB_PORT=3306 -e DB_DATABASE=keycloak -e JDBC_PARAMS='connectTimeout=30' jboss/keycloak

8080 #keycloak登录界面端口

KEYCLOAK_USER=admin #Keycloak管理员账号

KEYCLOAK_PASSWORD=admin #Keycloak管理员账号密码

DB_VENDOR=mysql #使用mysql数据库

DB_USER=root #数据库用户

DB_PASSWORD=root #数据库密码

DB_ADDR=192.168.18.134
#数据库地址

DB_PORT=3306 #数据库端口

DB_DATABASE=keycloak #数据库实例

3. Keycloak配置:

登录Keycloak
​​​http://IP:8080/auth​​

DataEase单点登录之OIDC

这里我们使用的admin/admin

DataEase单点登录之OIDC

3.1 创建新域

操作如下图:

DataEase单点登录之OIDC

编辑名称即可

DataEase单点登录之OIDC

3.2 创建客户端

DataEase单点登录之OIDC

编辑客户端 ID;

协议默认选择 openid-connect;

点击保存。

DataEase单点登录之OIDC

跳转到新页面后,访问类型:选择confidential;

DataEase单点登录之OIDC

有效的重定向URL:填写 DataEase 的登录 IP,注意后面加星号;

DataEase单点登录之OIDC

点击保存

3.3 创建用户

DataEase单点登录之OIDC

编辑用户名、邮件地址、名字信息即可;

点击保存;

DataEase单点登录之OIDC

点击“凭据”,设置密码,关闭“临时”

DataEase单点登录之OIDC

点击“Set Password”完成密码设置。

4. Keycloak端查看API信息:

登录Keycloak,进入“领域设置”,在“通用”中点击 “服务路径”中的“OpenID Endpoint Configuration”可打开openid-configuration页面,如下图:

DataEase单点登录之OIDC

留存此页面,用于DataEase OIDC配置参考

DataEase单点登录之OIDC

点击“客户端”,选择新建的客户端,点击“凭据”查看secret。(拷贝密钥,DataEase配置OIDC中会使用)

DataEase单点登录之OIDC

5. DataEase端关联Keycloak:

登录 DataEase,选择“系统管理--系统参数--OIDC设置”

DataEase单点登录之OIDC

填写说明:
Auth Endpoint :此设置定义 OIDC 提供程序的授权终端节点URL。

eg: http:///auth/realms/dataease/protocol/openid-connect/auth

Token Endpoint 此设置定义 OIDC 提供程序的令牌信息获取地址URL。

eg: http:///auth/realms/dataease/protocol/openid-connect/token

Userinfo Endpoint:此设置定义 OIDC 提供程序的用户信息获取地址URL

eg: http:///auth/realms/dataease/protocol/openid-connect/userinfo

Logout Endpoint:此设置定义 OIDC 提供程序的用户信息获取地址URL

eg: http:///auth/realms/dataease/protocol/openid-connect/logout

ClientId:此设置定义为 OIDC 提供商提供的客户端 ID

eg: de-cli 在Keycloak中选择“客户端”,查看创建的ID。

Secret:此设置定义OIDC 的提供商提供的客户端密钥

eg: w4yte46ur67ityf76ue46ur67tfy 在Keycloak中选择“客户端”,选择创建的ID并查看密钥。

scope:此设置定义在身份验证期间要请求的 OpenID Connect 作用域

eg: openid profile email

redirectUrl:跳转服务地址URL

eg:http:///sso/callBack

6. 配置完成

访问 DetaEase 登录页面,选择 OIDC,即可切换到 Keycloak 登录界面。

DataEase单点登录之OIDC

使用在keycloak创建的用户登录

DataEase单点登录之OIDC

完成登录

DataEase单点登录之OIDC