基于Azure AD实现云控制台单点登录
集成 Azure Active Directory (Azure AD)与阿里云 RAM 角色,只需维护企业一份账号密码即可登录云控制台,避免发生数据安全风险,减少新用户管理工作量,提高管理效率。
方案概述
本文档介绍了一种将 Azure Active Directory (Azure AD)与阿里云 RAM 角色的集成的方案。该方案实现了:
- 使用企业域账号登录阿里云,在用户转岗、离职时可以做到有效阻断,避免发生数据安全风险。
- 减少新用户管理工作量,提高管理效率。
- 员工只需要维护企业 IdP 一份账号密码即可完成云控制台的登录。
方案优势
集中管理云上人员身份
通过和 AD 集成实现 SSO,对于企业内任意一个员工,企业只需要在 AD 内维护该员工域账号和对应角色即可,无需单独给员工创建 RAM 用户等身份,提升管理效率。
降低云上身份泄漏风险
使用 SSO,可以有效避免员工转岗或离职时仍旧持有阿里云 RAM 用户账号密码造成的安全风险。员工只能通过域账号登录云上控制台,在员工离职时域账号被回收,该员工则无法再登录云上控制台,避免发生数据安全风险。
客户场景
客户场景:单账号内的SSO登录控制台
场景描述
在单账号内,客户可以将RAM与企业IdP进行集成,并要求企业员工使用SSO方式登录阿里云。SSO方式包括用户SSO和角色SSO两种。
适用客户
- 非RD目标客户,但有企业IdP连接需求和基础设施的客户,建议选择SSO与阿里云集成。
- 企业已有支持SAML协议的IdP(本文特指AAD)。
- 企业有较强的治理动力,重点希望解决人员离职的数据风险,以及提高员工登录效率。
- 由于用户SSO和用户名密码登录是互斥关系,满足如下条件的客户建议优先选择用户SSO:
- 企业已使用的云产品中有部分暂时不支持角色访问。
- 已经大量使用RAM用户访问,不易切换。
- 在满足前两点的基础上,满足如下条件的客户,建议选择单账号角色SSO方案:
- 不希望在云端创建和管理用户,从而避免用户同步带来的工作量。
- 希望在使用SSO的同时,仍然保留一部分云上本地用户,可以在阿里云直接登录。云上本地用户的用途可以是新功能测试、网络或企业IdP出现问题时的备用登录方式等。
- 企业存在多个IdP,都需要访问同一个阿里云账号,需要在一个阿里云账号内配置多个IdP进行SSO。
客户场景:多账号SSO登录控制台
场景描述
客户有多个云账号,可以将RAM与企业IdP进行集成,并要求企业用户使用SSO方式登录阿里云。SSO方式包括用户SSO和角色SSO两种。
适用客户
- 使用资源目录管理云上多个账号的企业客户,建议优先选择企业IdP与CloudSSO集成角色SSO,当需要使用的云产品中有不支持角色访问的产品,可以单独配置用户SSO。
- 使用多个阿里云账号的企业客户。
客户案例
客户背景
香港某知名地产企业X,集团在香港和中国内地享有尊崇地位,被公认为一家重视质量的顶级物业发展商。
客户需求
在阿里云有10多个注册账号,客户有多个团队需要管理云上资源。不同团队会有多名员工。客户希望按团队维度跟不同云账号上面的角色映射起来。员工跟团队的关系可以在AuzreAD上面做维护,一旦员工所在的组发生变更那对应阿里云的权限也会做变更。
实施方案
- 客户员工数据在AzureAD上作维护,分成不同的Group进行管理。
- 配置AuzreAD到阿里云联合身份认证。
- 员工登录阿里云控制台,会自动到AzureAD进行身份信息确认。
- 员工登录到阿里云之后,会自动带上对应的角色权限。
客户团队、AzureAD Group、阿里云账号、阿里云角色、权限策略关系表(部分)如下:
Team |
Azure AD Group |
AliCloud Cloud Account |
Account: Role Name |
AliCloud Role Policy |
Cloud Admin |
Ali-CloudAdmin-Root |
Root |
Root: LandingZoneIdP-CloudAdmin |
AdministratorAccess |
Security Team |
Ali-SecurityAdmin |
Root |
Root:LandingZoneIdP-SecurityAdmin |
AliyunYundunSASFullAccess |
Audit |
Audit:LandingZoneIdP-SecurityAdmin |
|||
Shared |
Shared:LandingZoneIdP-SecurityAdmin |
|||
Prod |
Prod:LandingZoneIdP-SecurityAdmin |
|||
Non-Prod |
Non-Prod:LandingZoneIdP-SecurityAdmin |
|||
Dev |
Dev:LandingZoneIdP-SecurityAdmin |
|||
Infra Team |
Ali-InfraAdmin |
Prod |
Prod:LandingZoneIdP-InfraAdmin |
AliyunTAGFullAccess |
Non-Prod |
Non-Prod::LandingZoneIdP-InfraAdmin |
|||
Shared |
Shared:LandingZoneIdP-InfraAdmin |
|||
Dev |
Dev:LandingZoneIdP-InfraAdmin |
|||
Audit |
Audit:LandingZoneIdP-InfraAdmin |
AliyunLogFullAccess |
客户收益
- 使用企业账号登录阿里云,在用户转岗、离职时可以做到有效阻断,避免发生数据安全风险。
- 减少新用户管理工作量,提高管理效率。
- 员工只需要维护企业域账号密码即可完成云控制台的登录。
方案架构
本方案通过配置Azure AD和阿里云RAM的集成,实现企业员工以IdP中的身份,登录到阿里云上某账号下,并获取相应的身份权限用于访问云服务或者云资源。
客户如果用到的云产品都支持STS那推荐使用角色SSO,如果有用到不支持STS的产品,建议将这些云产品单独放在一个独立的云账号,并使用用户SSO。
产品费用及名词
产品费用
产品名称 |
产品说明 |
产品费用 |
访问控制RAM |
访问控制RAM(Resource Access Management)是阿里云提供的一项管理用户身份与资源访问权限的服务。 |
免费,详情参见产品定价。 |
名词解释
名称 |
说明 |
阿里云账号(Alibaba Cloud account) |
开始使用阿里云服务前,首先需要注册一个阿里云账号。阿里云账号是阿里云资源归属、资源使用计量计费的基本主体。阿里云账号为其名下所拥有的资源付费,并对其名下所有资源拥有完全控制权限。 默认情况下,资源只能被阿里云账号所访问,任何其他用户访问都需要获得阿里云账号的显式授权。阿里云账号就是操作系统的root或Administrator,所以我们有时称它为根账号或主账号。 |
RAM用户(RAM user) |
RAM用户也叫RAM账号,是RAM的一种实体身份类型,有确定的身份ID和身份凭证,它通常与某个确定的人或应用程序一一对应。 |
RAM角色(RAM role) |
RAM角色是一种虚拟用户,与实体用户(阿里云账号、RAM用户和云服务)和教科书式角色(Textbook role)不同。具体如下:
|
服务提供商(SP) |
利用IdP的身份管理功能,为用户提供具体服务的应用。SP会使用IdP提供的用户信息。一些非SAML协议的身份系统(例如:OpenID Connect),也把服务提供商称作IdP的信赖方。 |
身份提供商(IdP) |
一个包含有关外部身份提供商元数据的RAM实体,身份提供商可以提供身份管理服务。
|
安全断言标记语言(SAML 2.0) |
实现企业级用户身份认证的标准协议,它是SP和IdP之间实现沟通的技术实现方式之一。SAML 2.0已经是目前实现企业级SSO的一种事实标准。 |
单点登录(SSO) |
阿里云支持基于SAML 2.0和OIDC的SSO(Single Sign On,单点登录),也称为身份联合登录。 |
元数据文档(Metadata file) |
元数据文档由企业IdP提供,一般为XML格式,包含IdP的登录服务地址、用于验证签名的公钥及断言格式等信息。 |
安全性
本方案基于SAML 2.0协议实现企业IdP与阿里云的SSO登录。SAML 2.0是SP和IdP之间实现沟通的技术实现方式之一,目前已经是实现企业级SSO的一种事实标准。阿里云和企业IdP之间并无直接交互(如公网传输等),SAML断言均在员工设备(如浏览器)上完成,具体过程,请查看用户SSO流程和角色SSO流程。
为了进一步保障企业员工账号安全,建议选择支持MFA的企业级IdP,并要求员工开启MFA。
注意事项
支持RAM/STS的云服务
阿里云RAM/STS服务已经支持大部分云产品,例如:云服务器ECS、 云数据库RDS、对象存储OSS、专有网络VPC、负载均衡和容器服务Kubernetes版等。在此基础上,RAM/STS服务也在不断扩展对其他云服务的支持。企业可以根据云服务是否支持RAM/STS,决定采用的SSO类型。更多信息,请参见支持RAM的云服务和支持STS的云服务。
实施步骤
实施准备
- 确保企业已经完成Azure AD的配置。
- 确保在需要配置SSO的账号中开通了RAM服务。
- 角色SSO场景下提前规划好企业云上角色身份权限策略,参考此文档。
操作步骤
请根据客户场景一节的说明,选择企业最适合的SSO方式。
用户SSO
在本示例中,企业拥有两个阿里云账号和一个Azure AD租户。在Azure AD租户中,有一个管理员用户(已授予全局管理员权限)和一个企业员工用户(u2)。通过以下操作步骤,使企业员工用户(u2)可以通过RAM用户身份直接访问这两个阿里云账号控制台。
多账号配置用户SSO,需要在每个云账号内做一次配置。以下步骤是以单个云账号内的配置作参数,其余账号按照该流程重复配置即可。
步骤一:在阿里云获取SAML服务提供商元数据
- 使用阿里云账号登录RAM控制台。
- 在左侧导航栏,单击SSO管理。
- 在SSO管理页面,单击用户SSO页签。
- 在SSO登录设置区域,复制SAML服务提供商元数据URL。
- 在新的浏览器窗口中打开复制的链接,将元数据XML文件另存到本地。
说明 元数据XML文件保存了阿里云作为一个SAML服务提供商的访问信息。您需要记录该文件中的 entityID和 Location的值,以便后续在AAD的配置中使用。
步骤二:在AAD中创建应用
- 管理员用户登录Azure门户。
- 单击主页的
图标。
- 在左侧导航栏,选择Azure Active Directory > 企业应用程序 > 所有应用程序。
- 单击新建应用程序。
- 在浏览Azure AD库页面,单击创建你自己的应用程序。
- 在创建你自己的应用程序页面,输入应用名称(例如:AliyunSSODemo),并选择集成库中未发现的任何其他应用程序(非库),然后单击创建。
步骤三:在AAD中配置SAML
- 在AliyunSSODemo页面,单击左侧导航栏的单一登录。
- 在选择单一登录方法页面,单击SAML。
- 在设置SAML单一登录页面进行以下配置。
- 在页面左上角,单击上载元数据文件,选择文件后,单击添加。
说明 此处上传 步骤一:在阿里云获取SAML服务提供商元数据 中获取的XML文件。
- 在基本SAML配置页面,配置以下信息,然后单击保存。
- 标识符(实体 ID):从上一步的元数据文件中自动读取entityID的值。
- 回复 URL(断言使用者服务 URL):从上一步的元数据文件中自动读取Location的值。
- 中继状态:用来配置用户SSO登录成功后跳转到的阿里云页面。
说明 出于安全原因,您只能填写阿里巴巴旗下的域名URL作为 中继状态的值,例如:*.aliyun.com、*.hichina.com、*.yunos.com、*.taobao.com、*.tmall.com、*.alibabacloud.com、*.alipay.com,否则配置无效。
若不配置,默认跳转到阿里云控制台首页。
- 在SAML签名证书区域,单击下载,获取联合元数据XML。
步骤四:在AAD分配用户
- 单击AAD主页的
图标。
- 在左侧导航栏,选择Azure Active Directory > 企业应用程序 > 所有应用程序。
- 在名称列,单击AliyunSSODemo。
- 在左侧导航栏,单击用户和组。
- 单击左上角的添加用户/组。
- 单击用户,从用户列表中选择用户(u2),然后单击选择。
如何在AAD中添加新用户,请查看链接
- 单击分配。
步骤五:在阿里云创建RAM用户
- 在RAM控制台的左侧导航栏,选择人员管理 > 用户。
- 在用户页面,单击创建用户。
- 在创建用户页面的用户账号信息区域,输入登录名称和显示名称。请确保RAM用户登录名称前缀与AAD中的用户名前缀保持一致。本示例中为u2。
- 在访问方式区域,选择控制台访问。
- 单击确定。
步骤六:在阿里云开启用户SSO
- 在RAM控制台的左侧导航栏,单击SSO管理。
- 在SSO管理页面,单击用户SSO页签。
- 在SSO登录设置区域,单击编辑。
- 在编辑SSO登录设置面板的SSO功能状态区域,单击开启。
说明 用户SSO是一个全局功能,开启后,所有RAM用户都需要使用SSO登录。如果您是通过RAM用户配置的,请先保留为关闭状态,您需要先完成RAM用户的创建,以免配置错误导致自己无法登录。您也可以通过阿里云账号进行配置来规避此问题。
- 在元数据文档区域,单击上传文件,上传从步骤三:在AAD中配置SAML中获取的XML文件。
- 在辅助域名区域,单击开启,并配置辅助域名为AAD中的用户名Email后缀。例如:本示例中AAD用户(u2)的完整用户名为
u2@example.onmicrosoft.com
,则此处填写example.onmicrosoft.com
。 - 单击确定。
验证结果
完成SSO登录配置后,您可以从阿里云或AAD发起SSO登录。
(一)从阿里云侧发起登录
- 在RAM控制台的概览页,复制RAM用户的登录地址。
- 将鼠标悬停在右上角头像的位置,单击退出登录或使用新的浏览器打开复制的RAM用户登录地址。
- 单击使用企业账号登录,系统会自动跳转到AAD的登录页面。
- 使用用户(u2)的用户名和密码登录。系统将自动SSO登录并重定向到您指定的中继状态页面。如果未指定中继状态或超出允许范围,则系统会访问以下阿里云控制台首页。
(二)从AAD侧发起登录
- 获取用户访问URL
- 管理员用户登录Azure门户。
- 单击主页的
图标。
- 在左侧导航栏,选择Azure Active Directory > 企业应用程序 > 所有应用程序。
- 单击应用程序AliyunSSODemo。
- 在左侧导航栏,单击属性,获取用户访问URL。用户访问URL是用户直接从其浏览器访问此应用程序的链接。
- 用户(u2)从管理员用户处获取上述用户访问URL在浏览器中输入该URL,使用自己的账号登录。
系统将自动SSO登录并重定向到您指定的中继状态页面。如果未指定中继状态或超出允许范围,则系统会访问以下阿里云控制台首页。
单账号角色SSO
在本示例中,企业拥有一个阿里云账号(Account1)和一个Azure AD租户。在Azure AD租户中,有一个管理员用户(已授予全局管理员权限)和一个企业员工用户(u2)。通过以下配置,使得企业员工用户(u2)在登录Azure AD后,通过角色SSO访问阿里云账号(Account1)。
以下操作需要通过管理员用户(已授予全局管理员权限)执行本示例AAD中的操作。关于如何在AAD中创建用户和为用户授权,请参见AAD文档。
注意事项:
进入Active Directory -> 管理租户 查看当前租户的域名。需要确保当前登录的账号 @ 后面的内容跟这个域名是一致的,否则无法在AAD Graph浏览器 里面进行审批。
步骤一:在AAD库中添加应用程序
- 管理员用户登录Azure门户。
- 单击主页的
图标。
- 在左侧导航栏,选择Azure Active Directory > 企业应用程序 > 所有应用程序。
- 单击新建应用程序。
- 搜索Alibaba Cloud Service (Role-based SSO)并单击选择。
- 输入应用名称,然后单击创建。本示例中,使用默认应用名称 Alibaba Cloud Service (Role-based SSO),您也可以自定义应用名称。
- 在Alibaba Cloud Service (Role-based SSO)页面,单击左侧导航栏的属性,复制并保存对象ID。
步骤二:配置AAD SSO
- 在Alibaba Cloud Service (Role-based SSO)页面,单击左侧导航栏的单一登录。
- 在选择单一登录方法页面,单击SAML。
- 在设置SAML单一登录页面,配置SSO信息。
- 在页面左上角,单击上传元数据文件,选择文件后,单击添加。
说明 您可以通过以下URL获取元数据文件: https://signin.aliyun.com/saml-role/sp-metadata.xml。
- 在基本SAML配置页面,配置以下信息,然后单击保存。
- 标识符(实体 ID):从上一步的元数据文件中自动读取entityID的值。
- 回复 URL(断言使用者服务 URL):从上一步的元数据文件中自动读取Location的值。
- 中继状态:用来配置角色SSO登录成功后跳转到的阿里云页面。
- 在用户属性和声明区域,单击
图标。
- 单击添加新的声明,配置以下信息,然后单击保存。
- 在名称区域,输入Role。
- 在命名空间区域,输入https://www.aliyun.com/SAML-Role/Attributes。
- 在源区域,选择属性。
- 在源属性区域,从下拉列表中选择user.assignedroles。
- 重复上述步骤,添加一个新的声明。
- 在名称区域,输入RoleSessionName。
- 在命名空间区域,输入https://www.aliyun.com/SAML-Role/Attributes。
- 在源区域,选择属性。
- 在源属性区域,从下拉列表中选择user.userprincipalname。
- 在SAML签名证书区域,单击下载,获取联合元数据XML。
步骤三:在阿里云创建身份提供商
- 阿里云账号(Account1)登录RAM控制台。
- 在左侧导航栏,单击SSO管理。
- 在角色SSO页签下,单击创建身份提供商。
- 输入身份提供商名称AAD和备注。
- 在元数据文档区域,单击上传文件。
- 单击确定。
说明 上传在 步骤二:配置AAD SSO中下载的 联合元数据XML。
步骤四:在阿里云创建RAM角色
- 创建身份提供商后,单击前往新建RAM角色。
- 单击创建RAM角色。
- 选择可信实体类型为身份提供商,单击下一步。
- 输入角色名称AADrole和备注。
- 在下拉列表中选择身份提供商AAD,单击完成。
- 单击关闭。
说明 这一步的角色就是当用户通过SSO联合登录上来之后所扮演的角色具有什么样的权限
步骤五:将阿里云RAM角色与AAD用户进行关联
一、在AAD中创建角色。
- 管理员用户登录AAD Graph浏览器。(注意!需要使用具有全局管理员身份的账号并且 @ 后面的域名要跟当前租户的域名保持一致。来登录AAD Graph浏览器,默认是一个测试账号)
- 单击账号右侧的
图标。
- 单击选择权限。
- 在权限页面,选择以下权限并单击同意。
- 在Graph浏览器页面,第一个下拉列表中选择GET,第二个下拉列表中选择beta。在搜索框中输入https://graph.microsoft.com/beta/servicePrincipals/<objectID>,其中objectID是您在AAD属性页面保存的对象ID,然后单击运行查询。
- 在响应预览页签下,提取出appRoles属性并保存。
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"description": "msiam_access",
"displayName": "msiam_access",
"id": "7dfd756e-8c27-4472-b2b7-38c17fc5****",
"isEnabled": true,
"origin": "Application",
"value": null
}
],
- 返回Graph浏览器,将第一个下拉列表改为PATCH,第二个下拉列表中选择beta。在搜索框中输入https://graph.microsoft.com/beta/servicePrincipals/<objectID>,其中objectID是您在AAD属性页面保存的对象ID,将以下内容复制到请求正文中并选择运行查询。
{
"appRoles": [
{
"allowedMemberTypes":[
"User"
],
"description": "msiam_access",
"displayName": "msiam_access",
"id": "7dfd756e-8c27-4472-b2b7-38c17fc5****", // 步骤6中的值,直接复制
"isEnabled": true,
"origin": "Application",
"value": null
},
{
"allowedMemberTypes": [
"User"
],
"description": "Admin,AzureADProd",
"displayName": "Admin,AzureADProd",
"id": "68adae10-8b6b-47e6-9142-6476078c****", //自定义ID
"isEnabled": true,
"origin": "ServicePrincipal",
"value": "acs:ram::187125022722****:role/aadrole,acs:ram::187125022722****:saml-provider/AAD" //身份提供商和RAM角色的ARN
}
]
}
二、将角色添加到用户(u2)中。
- 管理员用户登录Azure门户。
- 在左侧导航栏,选择Azure Active Directory > 企业应用程序 > 所有应用程序。
- 在名称列表下,单击Alibaba Cloud Service (Role-based SSO)。
- 在左侧导航栏,单击用户和组。
- 单击左上角的添加用户/组。
- 单击用户,从用户列表中选择用户(u2),单击选择。
- 单击分配。
- 查看分配的角色。
步骤六:验证效果
1、获取用户访问URL。
- 管理员用户登录Azure门户。
- 在左侧导航栏,选择Azure Active Directory > 企业应用程序 > 所有应用程序。
- 在名称列表下,单击Alibaba Cloud Service (Role-based SSO)。
- 在左侧导航栏,选择属性,获取用户访问URL。
2、用户(u2)从管理员用户处获取上述用户访问URL在浏览器中输入该URL,使用自己的账号登录。
系统将自动SSO登录并重定向到您指定的中继状态页面。如果未指定中继状态或超出允许范围,则系统会访问如下阿里云控制台首页。
多账号角色SSO
在本示例中,企业拥有两个阿里云账号(Account1与Account2)和一个Azure AD租户。在Azure AD租户中,有一个管理员用户(已授予全局管理员权限)和一个企业员工用户(u2)。通过以下配置,使得企业员工用户(u2)在登录Azure AD后,通过角色SSO访问阿里云账号(Account1与Account2)。
参考前面「单账号角色SSO」一节的配置,完成如下几步:
步骤一:在AAD库中添加应用程序
步骤二:配置AAD SSO
步骤三:在阿里云创建身份提供商
参考单账号角色SSO一节中完成Account1的身份提供商的配置,再将Account2的配置完成。
步骤四:在阿里云创建RAM角色
在该步骤中需要在两个阿里云账号(Account1和Account2)中分别创建RAM角色。
本示例中假设在阿里云账号(Account1)中创建1个RAM角色,在阿里云账号(Account2)中创建两个RAM角色。具体如下:每个阿里云账号内的具体操作,请参见「单账号角色SSO」中的步骤四。
- 阿里云账号(Account1)的RAM角色:AADrole。
- 阿里云账号(Account2)的RAM角色:financeaad 和 readrole。
步骤五:将阿里云RAM角色与AAD用户进行关联
具体操作参考「单账号角色SSO」中的步骤五。差异点如下:
一、在第7个子步骤中需要将AAD Graph浏览器中配置的信息替换为如下代码:
{
"appRoles": [
{
"allowedMemberTypes":[
"User"
],
"description": "msiam_access",
"displayName": "msiam_access",
"id": "7dfd756e-8c27-4472-b2b7-38c17fc5****",
"isEnabled": true,
"origin": "Application",
"value": null
},
{ "allowedMemberTypes": [
"User"
],
"description": "Accout1Admin,AzureADProd",
"displayName": "Accout1Admin,AzureADProd",
"id": "68adae10-8b6b-47e6-9142-6476078c****", //自定义ID
"isEnabled": true,
"origin": "ServicePrincipal",
"value": "acs:ram::187125022711****:role/AADrole,acs:ram::187125022711****:saml-provider/AAD" //阿里云账号(Account1)的身份提供商和RAM角色的ARN
},
{ "allowedMemberTypes": [
"User"
],
"description": "Accout2Read,readrole",
"displayName": "Accout2Read,readrole",
"id": "68adae10-8b6b-47e6-9142-6476077c****", //自定义ID
"isEnabled": true,
"origin": "ServicePrincipal",
"value": "acs:ram::177125022722****:role/readrole,acs:ram::177125022722****:saml-provider/AAD" //阿里云账号(Account2)的身份提供商和RAM角色的ARN
},
{ "allowedMemberTypes": [
"User"
],
"description": "Accout2Finance,financeaad",
"displayName": "Accout2Finance,financeaad",
"id": "68adae10-8b6b-47e6-9142-6476046c****", //自定义ID
"isEnabled": true,
"origin": "ServicePrincipal",
"value": "acs:ram::177125022722****:role/financeaad,acs:ram::177125022722****:saml-provider/AAD" //阿里云账号(Account2)的身份提供商和另一RAM角色的ARN
}
]
}
二、将角色添加到用户(u2)中。
- 需要将角色Accout1Admin,AzureADProd、Accout2Read,readrole和Accout2Finance,financeaad分别添加到用户(u2)中。
- 如果上一步无法给这个用户选择多个角色的话,那可以通过创建多个组的方式实现。分别给每个组赋上权限,然后再将这个用户添加到对应的组里面。
步骤六:验证效果
参考「单账号角色SSO」里面的验证步骤,因为该用户绑定了两个阿里云账号下的多个角色,因此在登录过程中,阿里云会提示使用哪个账号下的哪个角色进行登录。
故障排除
为什么SSO跳转到阿里云时显示登录失败?
一般情况下,均为SAML断言校验失败,建议在浏览器上安装SAML断言查看插件(Chrome浏览器中可安装SAML Chrome Panel插件)。在该插件中,可以查看IdP生成的SAML断言,并根据SSO类型,查看角色SSO的SAML响应或用户SSO的SAML响应,并进行比对,找到出现问题的配置项并进行修正。