type
status
date
urlname
summary
tags
category
icon
password
catalog
sort
Red Hat 单点登录(SSO) — 或其开源版本 Keycloak — 是 Web SSO 功能的领先产品之一,它基于流行的标准,例如安全断言标记语言 (SAML) 2.0、OpenID Connect 和OAuth 2.0。Red Hat SSO 最强大的功能之一是我们可以通过多种方式直接访问 Keycloak,无论是通过简单的 HTML 登录表单,还是通过 API 调用。在以下场景中,我们将生成一个 JWT 令牌,然后对其进行验证。一切都将使用 API 调用来完成,因此 Keycloak 的 UI 不会直接暴露给公众。
 
设置用户
首先,我们将在Keycloak中创建一个简单的用户,如图1所示。
notion image
图 1:在 Keycloak 中创建用户。">
填写所有必填字段,例如UsernameFirst NameLast Name,如图 2 所示。
notion image
图 2:输入用户信息。">
设置用户密码,如图3所示。
notion image
图 3:设置用户密码。">

设置客户端

下一步是在我们的领域中创建一个特定的客户端,如图 4 所示。Keycloak 中的客户端代表特定用户可以访问的资源,无论是用于验证用户身份、请求身份信息还是验证访问令牌。
notion image
图 4:查看您现有的客户。">
单击“创建” ,打开“添加客户端”对话框,如图5所示。
notion image
图 5:创建新客户端。">
填写客户表格中的所有必填字段。请特别注意Direct Grant Flow(如图 6 所示)并将其值设置为direct grant。此外,将访问类型更改为机密
notion image
图 6:覆盖客户端的身份验证流程。">
最后,将Client Authenticator字段中的客户端凭证更改为Client Id 和 Secret,如图 7 所示。
notion image
图 7:设置新客户的凭据。">

测试你的新客户

现在我们可以通过 REST API 来测试我们新创建的客户端来模拟一个简单的登录。我们的身份验证 URL 是
http://localhost:8080/auth/realms/<your-realm-name>/protocol/openid-connect/token
 
填写参数并使用我们的用户名和密码设置client_id和client_secret:
或者,我们可以使用 Postman 等 REST API 工具来模拟 HTTP POST 请求,如图 8 所示。
notion image
图 8:我们模拟的 HTTP POST 请求。">
结果将是一个有效的 JWT 令牌:
 
 
错误的用户名和密码组合会导致 HTTP 401 响应代码和如下响应正文:
给你。现在您已经配置了一个登录 API,可以很好地与 Keycloak 配合使用。玩得开心!
Hutool 5.8.8 BeanUtil.copyProperties 致命异常使用 Keycloak REST API 进行身份验证和授权
  • Giscus