Keycloak 与 Amazon Web Services Console 中国区实现基于 SAML 的 SSO 集成

Keycloak 与 Amazon Web Services Console 中国区实现基于 SAML 的 SSO 集成

💡 原文中文,约5200字,阅读约需13分钟。
📝

内容提要

本文介绍了使用Keycloak和SAML协议实现Keycloak与AWS Console的SSO集成。首先部署Keycloak,创建Realm并导出SAML 2.0 Identity Provider Metadata。在AWS Console中创建Provider并上传文件。然后创建Role并与User关联。在Keycloak中导入AWS Console的metadata文件并创建Client,配置相关URL和主题。最后创建Client scope并设置mapper。用户可以通过Keycloak登录AWS Console。使用SAML工具进行调试。

🎯

关键要点

  • 很多企业希望通过自己的 IDP 实现 SSO 登录 AWS Console,Keycloak 是一个常用的开源 IdP 产品。
  • 本文基于 Keycloak 21.1 版本和 AWS 中国区进行测试,全球区域的集成过程类似。
  • 首先需要部署 Keycloak,并创建名为 MyIdP 的 Realm,导出 SAML 2.0 Identity Provider Metadata。
  • 在 AWS Console 中创建 Provider 并上传导出的 metadata 文件,记录 ARN 并创建 Role。
  • 在 Role 的 Trust relationships 中增加特定配置,保存后记录 Role 的 ARN。
  • 下载 AWS Service Provider 的 metadata 文件,并在 Keycloak 中导入新的 Client。
  • 为 Client 设置相关的 Home URL、IDP-Initiated SSO URL 和 Login theme。
  • 创建与 Role 关联的 User,并设置密码和 displayname 属性。
  • 将 User 与 Role 关联,并删除默认关联的 Role。
  • 创建 Client scope 并设置 mapper,确保配置正确。
  • 完成配置后,用户可以通过 Keycloak 登录 AWS Console,选择所需角色。
  • 如果遇到登录失败问题,可以通过对比 SAML Response 进行调试,确保 saml:AttributeStatement 部分正确。
  • Keycloak 版本更新较快,具体配置可能有所不同,但只要 SAML response 正确,通常不会有问题。
➡️

继续阅读