网站首页 > 技术服务 > 邮箱知识广场 > 苏州阿里企业邮箱-使用AD FS进行角色SSO的示例
苏州阿里企业邮箱-使用AD FS进行角色SSO的示例
发布时间:2025-10-23
本文以在Windows Server 2012 R2 ECS实例上搭建的AD FS为例,为您介绍如何配置AD FS与阿里云,从而实现角色SSO登录。其中,AD FS是身份提供商(IdP),阿里云是服务提供商(SP)。
背景信息
企业使用Active Directory (AD)进行员工管理,并通过AD FS配置包括阿里云在内的企业应用。AD管理员通过员工的用户组来管理员工对阿里云账号的访问权限。在本示例中,企业拥有两个阿里云账号(Account1和Account2),要管理的权限为Admin和Reader,企业员工用户名为Alice,该用户所在的AD用户组为Aliyun-<account-id>-ADFS-Admin和Aliyun-<account-id>-ADFS-Reader,企业要实现从AD FS到Account1和Account2的角色SSO。
基本流程
AD管理员在完成角色联合登录的配置后,企业员工(Alice)可以通过如图所示的方法登录到阿里云控制台。
上述过程表示,用户登录时,企业会进行统一登录认证,无需用户提供在阿里云上的任何用户名和密码。
步骤一:在阿里云中将AD FS配置为可信SAML IdP
1.在阿里云RAM控制台,创建身份提供商(ADFS),并配置相应的元数据。AD FS的元数据URL为https://<ADFS-server>/federationmetadata/2007-06/federationmetadata.xml。
2.在阿里云账号Account1中创建两个可信实体类型为身份提供商的RAM角色(ADFS-Admin和ADFS-Reader),选择刚刚创建的ADFS作为可信身份提供商,并对两个角色分别授予AdministratorAccess和ReadOnlyAccess权限。
3.使用同样的方法,在Account2中创建与Account1中同名的身份提供商(ADFS)和角色(ADFS-Admin和ADFS-Reader),并为两个角色分别授予AdministratorAccess和ReadOnlyAccess权限。
步骤二:在AD FS中将阿里云配置为可信SAML SP
在AD FS中,SAML SP被称作信赖方(Relying Party)。设置阿里云作为AD FS的可信SP的操作步骤如下。
1.在服务器管理器的工具菜单中选择AD FS管理。
2.在AD FS管理工具中添加信赖方信任。
3.为新创建的信赖方设置阿里云的角色SSO的SAML SP元数据,元数据URL为https://signin.aliyun.com/saml-role/sp-metadata.xml。
4.按照向导完成配置。
步骤三:为阿里云SP配置SAML断言属性
阿里云需要AD FS在SAML断言中提供NameID、Role和RoleSessionName属性。AD FS中通过颁发转换规则来实现这一功能。
1.NameID
配置Active Directory中的Windows账户名为SAML断言中的NameID,其操作步骤如下。
1)为信赖方编辑声明规则。
2)添加颁发转换规则。
3)声明规则模板选择转换传入声明。
4)使用如下配置规则,并单击完成。
a.声明规则名称:NameID
b.传入声明类型:Windows账户名
c.传出声明类型:名称ID
d.传出名称ID格式:永久标识符
e.传递所有声明值:勾选
配置完成后,AD FS将发送阿里云需要的NameID格式。
2.RoleSessionName
配置Active Directory中的UPN为SAML断言中的RoleSessionName,其操作步骤如下。
1)单击添加转换声明规则。
2)从声明规则模板中选择以声明方式发送LDAP特性。
3)使用如下配置规则,并单击完成。
a.声明规则名称:RoleSessionName
b.特性存储:Active Directory
c.LDAP 特性列:User-Principal-Name(您也可以根据具体需求选择其他属性,例如email。)
d.传出声明类型:https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName
配置完成后,AD FS将发送阿里云需要的RoleSessionName格式。
3.Role
通过自定义规则将特定的用户所属组的信息转化成阿里云上的角色名称,其操作步骤如下。
1)单击添加转换声明规则。
2)从声明规则模板中选择使用自定义规则发送声明,单击下一步。
3)使用如下配置规则,并单击完成。
a.声明规则名称:Get AD Groups
b.自定义规则:c:[Type =="http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory",types = ("http://temp/variable"), query = ";tokenGroups;{0}", param =c.Value);
4)单击添加转换声明规则。
5)重复以上步骤,并单击完成。



