KEYCLOAK 23.0.4 单点登录配置

记录时间:2024.1.23

基础环境:
1、 Ubuntu 22.04
2、 docker 24.0.7
3、 keycloak 23.0.4

1. docker 启动 keycloak

// 启动 keycloak 在 8081 端口访问
// 设置管理员账号和密码都是 admin
docker run -p 8081:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:latest start

浏览器访问 http://localhost:8081

在这里插入图片描述

2. 设置 keycloak

2.1 新建领域 Realms

进入 keycloak 管理控制台,新建领域 Realms。Realms name 必填,其它默认。
在这里插入图片描述

2.2 新建客户端 Clients

新建 Client,Client ID必填,其它默认。
在这里插入图片描述

2.3 新建用户

新建用户,User name必填,设置密码。注意将更新密码的设置去掉。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

上面新建密码的窗口中,注意关掉 Temporary,这与下面的去掉 Update Password 的设置作用一致。都是去掉更新密码,即用户下一次登录之前不需要先更新密码。

如果设置为更新密码,在用户更新/设置密码之前,将无法使用此账号和密码获取访问 token ,因为该帐户尚未“完全设置”并且处于某种状态中间状态,需要先修改密码才能登录。

访问 keycloak 的接口获取 token 时会报错:

{"error":"invalid_grant","error_description":"Account is not fully set up"}

在这里插入图片描述

3. 测试接口

使用接口调试工具,配置获取token的请求。

/realms/{realm-name}/protocol/openid-connect/token
由授权代码流用于将临时代码转换为令牌。

Request Method: POST
Request URL: http://localhost:8081/realms/itp/protocol/openid-connect/token

Request Body:
grant_type: password
client_id: mykkclient
username: username-xx
password: password-xx

在这里插入图片描述
响应结果
在这里插入图片描述

4. 从其它源访问

要从其它源(应用系统)集成 keycloak 进行登录时,需要修改 keycloak 的 client 设置。

例如:在 http://localhost:4400 有个应用A,用户名密码登录时,向 http://localhost:8081 的 keycloak 服务器发送登录请求,登录成功后,跳转到 http://localhost:4400/#/dashboard

keycloak 需要配置重定向的 URIs,可以使用通配符。需要配置 Web 源,允许来自源的跨域请求。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值