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登录前,您需要完成以下工作:

  1. 在Windows Server 2012 R2 ECS实例上搭建以下服务器。

    • Active Directory域服务(AD DS):提供对域用户和域设备等对象的创建、查询和修改等功能。

    • Active Directory Federation Service(AD FS):提供配置SSO信赖方的功能,并对配置好的信赖方提供SSO认证。

      重要

      本文中涉及到Microsoft Active Directory配置的部分属于建议,仅用于帮助理解阿里云SSO登录的端到端配置流程,阿里云不提供Microsoft Active Directory配置的咨询服务。

  2. 在云SSO创建用户并完成权限配置。

    1. 在云SSO创建同名用户。

      具体操作,请参见创建用户

      说明

      用户名会用于用户登录。当您进行SSO登录时,云SSO的用户名应该与AD FS中用于SSO登录的字段保持一致。更多信息,请参见步骤三:在AD FS配置SAML断言属性

    2. 在云SSO创建访问配置,定义权限策略。

      具体操作,请参见创建访问配置

    3. 为用户在RD账号上授权。

      具体操作,请参见在RD账号上授权

步骤一:在云SSO获取服务提供商元数据

  1. 登录云SSO控制台

  2. 在左侧导航栏,单击设置

  3. SSO登录区域,下载服务提供商(SP)元数据文档。

步骤二:在AD FS将阿里云配置为信赖方

  1. 登录部署了AD FS的ECS实例。

  2. 打开服务器管理器

  3. 在左侧导航栏,单击AD FS

  4. 在右上角的菜单栏,选择工具 > AD FS管理

  5. AD FS管理工具中,添加阿里云为信赖方。

    1. 在左侧导航栏,鼠标右键单击信赖方信任,然后单击添加信赖方信任

    2. 添加信赖方信任向导窗口,选择声明感知,然后单击启动

    3. 选择从文件导入有关信赖方的数据,然后单击浏览,导入从步骤一:在云SSO获取服务提供商元数据获取的元数据文档,最后单击下一步

    4. 输入自定义的信赖方显示名称,然后单击下一步

      本示例中使用名称CloudSSODemo。

    5. 根据您的需要,选择访问控制策略,然后单击下一步

      本示例中选择允许所有人

    6. 检查配置信息,然后单击下一步

    7. 单击关闭

步骤三:在AD FS配置SAML断言属性

在本示例中,为了使阿里云能使用SAML响应定位到正确的云SSO用户,SAML断言中的NameID字段取值为AD用户的UPN(User Principal Name)。

  1. 在信赖方CloudSSODemo上,鼠标右键单击编辑声明颁发策略

  2. 单击添加规则

    说明

    颁发转换规则(Issuance Transform Rules)是指如何将一个已知的用户属性,经过转换后颁发为SAML断言中的属性。由于您要将AD FS中的用户UPN颁发为NameID,因此需要添加一个新的规则。

  3. 添加转换声明规则向导窗口,选择声明规则模板转换传入声明,然后单击下一步

  4. 配置声明信息。

    AD FS属性映射

    1. 输入自定义的声明规则名称。

    2. 传入声明类型下拉列表,选择UPN

    3. 传出声明类型下拉列表,选择名称ID

    4. 传出声明ID格式下拉列表,选择电子邮件

    5. 选择传递所有声明值

    6. 单击完成

  5. 单击确定

步骤四:在AD FS获取身份提供商元数据

在部署了AD FS的ECS实例中,访问https://<ADFS-server>/federationmetadata/2007-06/federationmetadata.xml,获取身份提供商(IdP)元数据文档。

说明

<ADFS-server>是AD FS服务器域名或IP地址。

步骤五:在云SSO启用SSO登录

  1. 在云SSO的左侧导航栏,单击设置

  2. SSO登录区域,单击配置身份提供商信息

  3. 配置身份提供商信息对话框,选择上传元数据文档

  4. 单击上传文件,上传从步骤四:在AD FS获取身份提供商元数据获取的IdP元数据文档。

    说明

    如果元数据文档超过大小限制,您可以尝试删除<fed:ClaimTypesRequested><fed:ClaimTypesOffered>中的所有内容。

  5. 打开SSO登录开关,启用SSO登录。

    说明

    启用SSO登录后,用户名和密码登录将自动禁用,即云SSO用户将不能通过用户名和密码登录。而且,SSO登录是一个全局功能,启用后,所有用户都需要SSO登录。

验证结果

完成上述配置后,您可以从阿里云或AD FS发起SSO登录。

  • 从阿里云发起SSO登录

    1. 云SSO控制台概览页,复制用户登录地址。

    2. 使用新的浏览器打开复制的用户登录地址。

    3. 单击跳转,系统会自动跳转到AD FS的登录页面。云SSO登录跳转

    4. 使用AD用户的用户名和密码登录。

      系统将自动SSO登录到下图所示的云SSO用户门户。

    5. 以RAM角色登录页签,单击目标RD账号权限列的显示详情

      RD账号列表

    6. 在权限面板,单击目标权限操作列的登录

    7. 访问RD账号中有权限的资源。

  • 从AD FS发起SSO登录

    1. 登录AD FS SSO登录门户。

      SSO登录门户地址为https://<ADFS-server>/adfs/ls/IdpInitiatedSignOn.aspx

      说明
      • <ADFS-server>是AD FS服务器域名或IP地址。

      • 如果SSO登录门户页面不可用,您可以通过PowerShell的命令Set-AdfsProperties -EnableIdpInitiatedSignonPage $True开启该页面。

    2. 选择站点为步骤二:在AD FS将阿里云配置为信赖方创建的CloudSSODemo,然后单击登录

    3. 输入AD用户的用户名和密码,然后单击登录

      系统将自动SSO登录到下图所示的云SSO用户门户。

    4. 以RAM角色登录页签,单击目标RD账号权限列的显示详情

      RD账号列表

    5. 在权限面板,单击目标权限操作列的登录

    6. 访问RD账号中有权限的资源。