AD FS与云SSO进行单点登录的示例
本文为您提供AD FS(Active Directory Federation Service)与云SSO进行单点登录(SSO登录)的示例。
背景信息
假设企业使用Active Directory(AD)进行本地用户管理,且已在阿里云资源目录(RD)中搭建了多账号体系结构。企业希望经过配置,使AD的用户通过SSO登录的方式直接访问资源目录(RD)指定成员账号中的指定资源。
本文以在Windows Server 2012 R2 ECS实例上搭建的AD FS为例,为您介绍如何配置AD FS与阿里云,从而实现SSO登录。其中,AD FS是身份提供商(IdP),阿里云云SSO是服务提供商(SP)。
准备工作
配置SSO登录前,您需要完成以下工作:
在Windows Server 2012 R2 ECS实例上搭建以下服务器。
Active Directory域服务(AD DS):提供对域用户和域设备等对象的创建、查询和修改等功能。
Active Directory Federation Service(AD FS):提供配置SSO信赖方的功能,并对配置好的信赖方提供SSO认证。
重要本文中涉及到Microsoft Active Directory配置的部分属于建议,仅用于帮助理解阿里云SSO登录的端到端配置流程,阿里云不提供Microsoft Active Directory配置的咨询服务。
在云SSO创建用户并完成权限配置。
在云SSO创建同名用户。
具体操作,请参见创建用户。
说明用户名会用于用户登录。当您进行SSO登录时,云SSO的用户名应该与AD FS中用于SSO登录的字段保持一致。更多信息,请参见步骤三:在AD FS配置SAML断言属性。
在云SSO创建访问配置,定义权限策略。
具体操作,请参见创建访问配置。
为用户在RD账号上授权。
具体操作,请参见在RD账号上授权。
步骤一:在云SSO获取服务提供商元数据
登录云SSO控制台。
在左侧导航栏,单击设置。
在SSO登录区域,下载服务提供商(SP)元数据文档。
步骤二:在AD FS将阿里云配置为信赖方
登录部署了AD FS的ECS实例。
打开服务器管理器。
在左侧导航栏,单击AD FS。
在右上角的菜单栏,选择 。
在AD FS管理工具中,添加阿里云为信赖方。
在左侧导航栏,鼠标右键单击信赖方信任,然后单击添加信赖方信任。
在添加信赖方信任向导窗口,选择声明感知,然后单击启动。
选择从文件导入有关信赖方的数据,然后单击浏览,导入从步骤一:在云SSO获取服务提供商元数据获取的元数据文档,最后单击下一步。
输入自定义的信赖方显示名称,然后单击下一步。
本示例中使用名称CloudSSODemo。
根据您的需要,选择访问控制策略,然后单击下一步。
本示例中选择允许所有人。
检查配置信息,然后单击下一步。
单击关闭。
步骤三:在AD FS配置SAML断言属性
在本示例中,为了使阿里云能使用SAML响应定位到正确的云SSO用户,SAML断言中的NameID
字段取值为AD用户的UPN(User Principal Name)。
在信赖方CloudSSODemo上,鼠标右键单击编辑声明颁发策略。
单击添加规则。
说明颁发转换规则(Issuance Transform Rules)是指如何将一个已知的用户属性,经过转换后颁发为SAML断言中的属性。由于您要将AD FS中的用户UPN颁发为
NameID
,因此需要添加一个新的规则。在添加转换声明规则向导窗口,选择声明规则模板为转换传入声明,然后单击下一步。
配置声明信息。
输入自定义的声明规则名称。
在传入声明类型下拉列表,选择UPN。
在传出声明类型下拉列表,选择名称ID。
在传出声明ID格式下拉列表,选择电子邮件。
选择传递所有声明值。
单击完成。
单击确定。
步骤四:在AD FS获取身份提供商元数据
在部署了AD FS的ECS实例中,访问https://<ADFS-server>/federationmetadata/2007-06/federationmetadata.xml
,获取身份提供商(IdP)元数据文档。
<ADFS-server>是AD FS服务器域名或IP地址。
步骤五:在云SSO启用SSO登录
在云SSO的左侧导航栏,单击设置。
在SSO登录区域,单击配置身份提供商信息。
在配置身份提供商信息对话框,选择上传元数据文档。
单击上传文件,上传从步骤四:在AD FS获取身份提供商元数据获取的IdP元数据文档。
说明如果元数据文档超过大小限制,您可以尝试删除
<fed:ClaimTypesRequested>
和<fed:ClaimTypesOffered>
中的所有内容。打开SSO登录开关,启用SSO登录。
说明启用SSO登录后,用户名和密码登录将自动禁用,即云SSO用户将不能通过用户名和密码登录。而且,SSO登录是一个全局功能,启用后,所有用户都需要SSO登录。
验证结果
完成上述配置后,您可以从阿里云或AD FS发起SSO登录。
从阿里云发起SSO登录
在云SSO控制台的概览页,复制用户登录地址。
使用新的浏览器打开复制的用户登录地址。
单击跳转,系统会自动跳转到AD FS的登录页面。
使用AD用户的用户名和密码登录。
系统将自动SSO登录到下图所示的云SSO用户门户。
在以RAM角色登录页签,单击目标RD账号权限列的显示详情。
在权限面板,单击目标权限操作列的登录。
访问RD账号中有权限的资源。
从AD FS发起SSO登录
登录AD FS SSO登录门户。
SSO登录门户地址为
https://<ADFS-server>/adfs/ls/IdpInitiatedSignOn.aspx
。说明<ADFS-server>是AD FS服务器域名或IP地址。
如果SSO登录门户页面不可用,您可以通过PowerShell的命令
Set-AdfsProperties -EnableIdpInitiatedSignonPage $True
开启该页面。
选择站点为步骤二:在AD FS将阿里云配置为信赖方创建的CloudSSODemo,然后单击登录。
输入AD用户的用户名和密码,然后单击登录。
系统将自动SSO登录到下图所示的云SSO用户门户。
在以RAM角色登录页签,单击目标RD账号权限列的显示详情。
在权限面板,单击目标权限操作列的登录。
访问RD账号中有权限的资源。