Keycloak x509客户端认证配置

Yur*_*uri 6 authentication x509certificate keycloak ambassador

我需要一些提示才能了解如何使用 x509 证书针对 Keycloak 执行客户端身份验证。

我们有一个简单的 Spring Boot Web 应用程序(API REST)到 Kubernetes 集群中。该 Web 应用程序通过 API 网关(大使)公开,目前通过浏览器重定向到 Keycloak 登录页面进行保护,用户可以在其中输入用户名和密码。

然而这不是我们想要的。我们需要的是客户端身份验证(React Native 移动应用程序),其中:

  • 移动应用程序尝试调用我们的服务器 API REST 端点
  • 大使检查有效的访问令牌并(如果没有)以 403 http 状态响应(无浏览器重定向)
  • 然后移动应用程序重定向到 Keycloak 以执行身份验证
  • Keycloak 不显示用户名/密码登录页面,但移动应用程序通过其浏览器传递 x509 用户证书。

不幸的是,我无法理解如何使用用户数据(信息、角色等)生成有效且可信的 x509 证书,以便从 IdP 获取访问令牌。

而且...IdP 如何检查和验证此客户端证书?是否需要在 Keycloak 上安装对应的服务器证书?

将客户端证书传递给 keycloak 的正确形式是什么(例如 CURL)?是否还需要传递私钥?为什么?

Cyr*_*lle 3

请查看Keycloak服务器管理指南第6节中的X.509客户端证书用户身份验证部分,其中描述:

  • 如何在 Wildfly 和 Keycloak 中启用和配置客户端证书身份验证
  • 如何将证书字段映射到用户属性
  • 使用 Keycloak/Wildfly(Keycloak 容器)的客户端证书身份验证工作流程。