51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【功能介绍】从搭建 Keycloak 到 DataEase 配置 OIDC 实现单点登录

1 OIDC 简介 {#1-oidc-%E7%AE%80%E4%BB%8B}

OIDC(OpenID Connect) 是一个身份认证协议,它规定了一套把用户身份信息从授权服务器(身份提供方)传递给客户机应用(身份使用方)的标准流程、格式。

市面上有多种产品支持 OIDC 协议实现单点登录,例如:Keycloak 提供了单点登录(SSO)功能,支持 OpenID Connect、OAuth 2.0、SAML 2.0 标准协议,拥有简单易用的管理控制台,并提供对 LDAP、Active Directory 以及 Github、Google 等社交账号登录的支持,做到了非常简单的开箱即用。

2 Keycloak 部署 {#2-keycloak-%E9%83%A8%E7%BD%B2}

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 配置 {#3-keycloak-%E9%85%8D%E7%BD%AE}

登录 Keycloak
http://IP:8080/auth
image-1657245084794

这里我们账号密码使用的 admin/admin
image-1657245089301

3.1 创建新域 {#3.1-%E5%88%9B%E5%BB%BA%E6%96%B0%E5%9F%9F}

操作如下图:
image-1657245102536

编辑名称即可
image-1657245107473

3.2 创建客户端 {#3.2-%E5%88%9B%E5%BB%BA%E5%AE%A2%E6%88%B7%E7%AB%AF}

image-1657245114457

编辑客户端 ID;

协议默认选择 openid-connect;

点击保存。
image-1657245119572

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

image-1657245125406

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

image-1657245132371

点击保存

3.3 创建用户 {#3.3-%E5%88%9B%E5%BB%BA%E7%94%A8%E6%88%B7}

image-1657245137341

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

点击保存;
image-1657245143610

点击"凭据",设置密码,关闭"临时"
image-1657245148969

点击"Set Password"完成密码设置。

4 Keycloak 端查看 API 信息 {#4-keycloak-%E7%AB%AF%E6%9F%A5%E7%9C%8B-api-%E4%BF%A1%E6%81%AF}

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

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

image-1657245169946

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

5 DataEase 端关联 Keycloak {#5-dataease-%E7%AB%AF%E5%85%B3%E8%81%94-keycloak}

登录 DataEase,选择"系统管理--系统参数--OIDC设置"
image-1657245186759

填写说明:

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


eg: http://\<keycloak\>/auth/realms/dataease/protocol/openid-connect/auth


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


eg: http://\<keycloak\>/auth/realms/dataease/protocol/openid-connect/token


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


eg: http://\<keycloak\>/auth/realms/dataease/protocol/openid-connect/userinfo


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


eg: http://\<keycloak\>/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://<dataease>/sso/callBack
`

6 配置完成 {#6-%E9%85%8D%E7%BD%AE%E5%AE%8C%E6%88%90}

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

使用在 keycloak 创建的用户登录
image-1657245245306

完成登录
image-1657245259317

赞(0)
未经允许不得转载:工具盒子 » 【功能介绍】从搭建 Keycloak 到 DataEase 配置 OIDC 实现单点登录