本文提供一个以Microsoft Entra ID(原Azure AD)与阿里云进行角色SSO的示例,帮助用户理解企业IdP与阿里云进行SSO的端到端配置流程。
应用场景
在本示例中,企业拥有一个阿里云账号(Account1)和一个Microsoft Entra ID租户。在Microsoft Entra ID租户中,您有一个管理员用户(已授予全局管理员权限)和一个企业员工用户(u2)。您希望经过配置,使得企业员工用户(u2)在登录Microsoft Entra ID后,通过角色SSO访问阿里云账号(Account1)。
准备工作
您需要通过RAM管理员(已授予AliyunRAMFullAccess权限)执行本示例阿里云RAM中的操作。关于如何在RAM中创建用户并授权,请参见创建RAM用户、为RAM用户授权。
您需要通过Microsoft Entra ID管理员用户(已授予全局管理员权限)执行本示例Microsoft Entra ID中的操作。关于如何在Microsoft Entra ID中创建用户并授权,请参见Microsoft Entra ID文档。
步骤一:在Microsoft Entra ID库中添加应用程序
使用Microsoft Entra ID管理员用户登录Azure门户。
在主页左上角,单击
图标。
在左侧导航栏,选择 。
单击新建应用程序。
搜索Alibaba Cloud Service (Role-based SSO)并单击选择。
输入应用名称,然后单击创建。
本示例中,使用默认应用名称
Alibaba Cloud Service (Role-based SSO)
,您也可以自定义应用名称。在Alibaba Cloud Service (Role-based SSO)页面的左侧导航栏,选择
,复制并保存对象ID。
步骤二:配置Microsoft Entra ID的SSO信息
在Alibaba Cloud Service (Role-based SSO)页面的左侧导航栏,选择 。
单击SAML。
配置SSO信息。
在页面左上角,单击上传元数据文件,选择文件后,单击添加。
说明您可以通过以下URL获取元数据文件:
https://signin.aliyun.com/saml-role/sp-metadata.xml
。在基本SAML配置页面,配置以下信息,然后单击保存。
标识符(实体 ID):从上一步的元数据文件中自动读取
entityID
的值。回复 URL(断言使用者服务 URL):从上一步的元数据文件中自动读取
Location
的值。中继状态:用来配置角色SSO登录成功后跳转到的阿里云页面。
说明出于安全原因,您只能填写阿里巴巴旗下的域名URL作为中继状态的值,例如:*.aliyun.com、*.hichina.com、*.yunos.com、*.taobao.com、*.tmall.com、*.alibabacloud.com、*.alipay.com,否则配置无效。若不配置,默认跳转到阿里云控制台首页。
在属性和索赔区域,单击
图标,检查是否存在以下两条声明。
如果不存在,请单击添加新的声明,按下表信息依次添加两条声明。
名称
命名空间
源
源属性
Role
https://www.aliyun.com/SAML-Role/Attributes
属性
user.assignedroles
RoleSessionName
https://www.aliyun.com/SAML-Role/Attributes
属性
user.userprincipalname
在SAML证书区域,单击下载,获取联合元数据XML。
步骤三:在阿里云创建身份提供商
使用RAM管理员登录RAM控制台。
在左侧导航栏,选择 。
在角色SSO页签,单击SAML页签,然后单击创建身份提供商。
在创建身份提供商页面,输入身份提供商名称
AAD
。单击上传元数据,上传在步骤二:配置Microsoft Entra ID的SSO信息中下载的联合元数据XML。
单击创建身份提供商。
请复制并保存身份提供商ARN,方便后续配置。具体操作,请参见查看SAML身份提供商基本信息。
步骤四:在阿里云创建RAM角色
在RAM控制台的左侧导航栏,选择 。
在角色页面,单击创建角色。
在创建角色页面的右上角,单击切换编辑器。
在编辑器中指定具体的SAML身份提供商。
编辑器支持可视化编辑和脚本编辑两种模式,您可以任选其一。以可视化编辑模式为例,您需要在主体中指定从步骤三:在阿里云创建身份提供商中创建的身份提供商,身份提供商类型选择SAML。
在编辑器中设置限制条件
saml:recipient
,取值为https://signin.aliyun.com/saml-role/sso
。在创建角色对话框,输入角色名称(AADrole),然后单击确定。
步骤五:将阿里云RAM角色与Microsoft Entra ID用户进行关联
在Microsoft Entra ID中创建角色。
管理员用户登录Azure门户。
在左侧导航栏,选择 。
单击所有应用程序页签,然后单击Alibaba Cloud Service (Role-based SSO)。
在左侧导航栏,选择 。
单击创建应用程序角色。
在创建应用程序角色页面,配置以下角色信息,然后单击应用。
显示名称:本示例中输入
Admin
。允许的成员类型:本示例中选中用户/组+应用程序。
值:输入RAM角色ARN和身份提供商ARN,两者之间用半角逗号(,)分隔。本示例中输入
acs:ram::187125022722****:role/aadrole,acs:ram::187125022722****:saml-provider/AAD
。说明:输入备注信息。
选中是否要启用此应用程序角色。
说明如果您需要在Microsoft Entra ID中创建多个角色,请重复上述步骤。
将角色添加到用户(u2)中。
在左侧导航栏,选择
。在名称列表下,单击Alibaba Cloud Service (Role-based SSO)。
在左侧导航栏,选择 。
单击左上角的添加用户/组。
在添加分配页面,选择目标用户(本示例中选择u2),然后单击分配。
单击分配。
查看分配的角色。
说明如果您分配了用户(u2),创建的角色会自动附加给该用户。如果您创建了多个角色,您可以根据需要合理分配角色。
验证结果
获取用户访问URL。
管理员用户登录Azure门户。
在左侧导航栏,选择 。
在名称列表下,单击Alibaba Cloud Service (Role-based SSO)。
在左侧导航栏,选择 ,获取用户访问URL。
用户(u2)从管理员用户处获取上述用户访问URL,然后在浏览器中输入该URL,使用自己的账号登录。
系统将自动SSO登录并重定向到您指定的中继状态页面。如果未指定中继状态或超出允许范围,则系统会访问阿里云控制台首页。
进阶:配置Microsoft Entra ID与多个阿里云账号的角色SSO
假设您有两个阿里云账号(Account1和Account2),您希望经过配置,使得企业员工用户(u2)在登录Microsoft Entra ID后,通过角色SSO既能访问阿里云账号(Account1),也能访问阿里云账号(Account2)。
在Microsoft Entra ID库中添加应用程序
Alibaba Cloud Service (Role-based SSO)
。具体操作,请参见步骤一:在Microsoft Entra ID库中添加应用程序。
配置Microsoft Entra ID SSO。
具体操作,请参见步骤二:配置Microsoft Entra ID的SSO信息。
在阿里云创建身份提供商。
您需要在两个阿里云账号(Account1和Account2)中分别创建身份提供商
AAD
。每个阿里云账号内的具体操作,请参见步骤三:在阿里云创建身份提供商。
在阿里云创建RAM角色。
您需要在两个阿里云账号(Account1和Account2)中分别创建RAM角色,本示例中假设在阿里云账号(Account1)中创建两个RAM角色,在阿里云账号(Account2)中创建一个RAM角色。具体如下:
阿里云账号(Account1)的RAM角色:
adminaad
和readaad
。阿里云账号(Account2)的RAM角色:
financeaad
。
每个阿里云账号内的具体操作,请参见步骤四:在阿里云创建RAM角色。
将阿里云RAM角色与Microsoft Entra ID用户(u2)进行关联。
在Microsoft Entra ID中创建三个角色,将三个角色添加到用户(u2)中。三个角色的值分别为:
acs:ram::<Account1_ID>:role/adminaad,acs:ram::<Account1_ID>:saml-provider/AAD
acs:ram::<Account1_ID>:role/readaad,acs:ram::<Account1_ID>:saml-provider/AAD
acs:ram::<Account2_ID>:role/financeaad,acs:ram::<Account2_ID>:saml-provider/AAD
Microsoft Entra ID用户(u2)通过角色SSO访问阿里云。
用户(u2)登录Azure的我的应用页面,单击应用程序Alibaba Cloud Service (Role-based SSO)。然后在阿里云界面上,您需要根据提示选择要访问的阿里云账号(Account1或Account2)及其角色,从而以角色SSO方式访问阿里云。