且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

更新时间:2022-06-07 21:30:49

阿里云与企业进行角色 SSO 时,阿里云是服务提供商(SP),而企业自有的身份管理系统则是身份提供商(IdP)。通过角色 SSO,企业可以在本地 IdP 中管理员工信息,无需进行阿里云和企业 IdP 间的用户同步,企业员工将使用指定的 RAM 角色来登录阿里云。

本文主要介绍 AD FS的配置角色SSO 配置和登录, 如需了解 用户SSO 配置和登录 请参考 在AlibabaCloud上,如何使用AD FS进行 【用户SSO】 并完成在容器服务ACK集群中的身份验证

一. 在阿里云 RAM控制台将AD FS配置为可信SAML IdP

  1. 创建名为 adfs 的身份提供商, 并配置相应的元数据。

首先访问https://adserver.testdomain.com/FederationMetadata/2007-06/FederationMetadata.xml下载 FederationMetadata.xml文件 (adserver.testdomain.com为已搭建好的AD FS服务器域名)
RAM控制台 -> SSO管理 -> 角色SSO -> 新建身份提供商:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

  1. 创建可信实体类型为身份提供商的RAM角色ADFS-Admin 和 ADFS-Reader,并分别授予 AdministratorAccess和ReadOnlyAccess权限。

RAM控制台 -> RAM角色管理 -> 新建RAM角色 -> 选择步骤1中创建的身份提供商:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

分别为 RAM角色ADFS-Admin 和 ADFS-Reader 授予 AdministratorAccess和ReadOnlyAccess权限。

二. 在AD FS中配置阿里云为可信SAML SP

在 AD FS 中,SAML SP 被称作信赖方(Relying Party)。设置阿里云作为 AD FS 的可信 SP 的操作步骤如下:

  1. 服务器管理器 -> 工具菜单 -> 选择AD FS 管理
    在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

Federation metadata address: https://signin.aliyun.com/saml-role/sp-metadata.xml
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

  1. 为阿里云SP配置 SAML断言属性
    在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

Add rules(参考https://help.aliyun.com/document_detail/110616.html):
(1) NameID:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】
(2) RoleSessionName:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】
(3) Role:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】
(4) Get AD Groups:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

  1. 配置验证
    在AD FS中创建group Aliyun-<your uid>-ADFS-ReaderAliyun-<your uid>-ADFS-Admin, 创建user liusheng并加入group Aliyun-<your uid>-ADFS-ReaderAliyun-<your uid>-ADFS-Admin

在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

登录 AD FS SSO 门户, 本示例为https://adserver.testdomain.com/adfs/ls/idpinitiatedsignon
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】
选择一个角色进行SSO登录, 如选择ADFS-Admin角色登录:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

  1. 访问ACK容器服务并为角色配置权限

访问容器集群ls-test的应用资源:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

授权管理 -> RAM角色 -> 填写角色名称并点击管理权限
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

为容器集群ls-test授权管理员权限,并根据提示完成授权:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

再次访问容器集群ls-test的应用资源验证授权成功:
在AlibabaCloud上,如何使用AD FS进行SSO登录并完成在容器服务ACK集群中的身份验证之 【角色SSO】

参考文档:
https://help.aliyun.com/document_detail/110616.html