Aws Console With Saml Idp Keycloak As Sample
如何使用SAML连接第三方IdP登陆AWS Console
以keycloak为例
安装 keycloak
参考keyloak文档
配置 keycloak
总体流程:
- 下载aws saml meta,在keycloak内添加client
- 修改、配置client
- 在 aws 内,添加IdP,saml meta来自keycloak realm
- 在 aws 内,配置可以供idp使用的role
- 在 keycloak 内,配置 client role/user role
创建realm
realm是keycloak的一个用户域。 具体创建参考 keycloak 文档
创建 client
client 使用 SAML/OpenID/OAuth 等第三方应用,使用import功能,如下图
AWS SAML metadata可以从 AWS Saml Metadata 下载。
调整 client 属性
设置 IdP initiated SSO URL name
,最终的登陆地址与之有关,为:{server-root}/realms/{realm}/protocol/saml/clients/{client-url-name}
配置AWS
现在 对应realm 的 saml-metadata.xml
:
然后,使用下载的saml-metadata.xml
,在AWS中添加 IdP
创建Role
在AWS为 IdP 创建 Role,Role trust IdP选择刚导入的keycloak。
需要记住:
- 刚导入的
IdP ARN
- 刚新建的
Role ARN
keycloak中,role格式为 Role ARN
,IdP ARN
, 如图。
然后, 在 keycloak 的client中,创建对应的Role:
创建keycloak用户并绑定role
创建用户
分配在keycloak client中创建的role
(optional)修改属性mapping
如果不幸,出现aws报错 ,如 Error: Your request included an invalid SAML response. To logout, click here.,需要进行如下属性修改
在 clientscope tab,编辑 aws 属性
删除 Role, RoseSessionName 属性,然后添加如图的mapping:
Written on April 3, 2024