本文提供一个以OneLogin与阿里云进行角色SSO的示例,帮助您理解企业IdP与阿里云进行角色SSO的端到端配置流程。
背景信息
本示例中,企业拥有一个阿里云账号、一个OneLogin管理员用户和多个OneLogin普通用户。您希望经过配置,使OneLogin普通用户直接使用OneLogin账号通过角色SSO的方式访问阿里云,而不是在阿里云重新创建账号。
关于什么是OneLogin,请参见OneLogin帮助文档。
步骤一:在OneLogin创建应用
使用管理员用户登录OneLogin。
在账号头像的左侧,单击Administration,进入管理员页面。
在顶部菜单栏,选择。
在Applications页面的右上角,单击Add App。
在Find Applications页面,搜索SAML Test Connector (Advanced)。
在Add SAML Test Connector (Advanced)页面,配置应用程序的基本信息,然后单击Save。
本示例中设置应用程序的Display Name为
LoginToAliyun,其他参数保持默认值。在Info页面,鼠标悬浮在右上角的More Actions上,从下拉列表中单击SAML Metadata,下载身份提供商(IdP)元数据文件,并将其保存在本地计算机上。
步骤二:在阿里云创建身份提供商
使用RAM管理员登录RAM控制台。
在左侧导航栏,选择。
在角色SSO页签,单击SAML页签,然后单击创建身份提供商。
在创建身份提供商页面,输入身份提供商名称(OneLogin)和备注。
在元数据文档区域,单击上传元数据,上传从步骤一:在OneLogin创建应用获取的IdP元数据。
单击创建身份提供商。
查看新创建的身份提供商详情,记录其ARN,方便您后续使用。
步骤三:在阿里云创建RAM角色
在RAM控制台的左侧导航栏,选择。
在角色页面,单击创建角色。
在创建角色页面的右上角,单击切换编辑器。
在编辑器中指定具体的SAML身份提供商。
编辑器支持可视化编辑和脚本编辑两种模式,您可以任选其一。以可视化编辑模式为例,您需要在主体中指定从步骤二:在阿里云创建身份提供商中创建的身份提供商,身份提供商类型选择SAML。
在编辑器中设置限制条件
saml:recipient,取值为https://signin.aliyun.com/saml-role/sso。在创建角色对话框,输入角色名称(例如:Reader-OneLogin),然后单击确定。
查看新创建的RAM角色详情,记录其ARN,方便您后续使用。
步骤四:在OneLogin配置应用
使用管理员用户登录OneLogin。
创建自定义用户属性。
在顶部菜单栏,选择。
在Users页面,鼠标悬浮在右上角的More Actions上,从下拉列表中单击Custom user fields。
在Custom User Fields页面的右上角,单击New User Field。
在New User Field对话框,配置Name和Shortname,然后单击Save。
本示例中,Name设置为
AliyunRoles for SSO,Shortname设置为AliyunRoles。
配置应用。
在顶部菜单栏,选择。
在Applications页面,单击步骤一:在OneLogin创建应用创建的应用程序(LoginToAliyun)。
在左侧导航栏,单击Configuration。
在Configuration页面,配置以下信息,然后单击Save。
RelayState:用来配置用户登录成功后跳转到的阿里云页面。
说明出于安全原因,您只能填写阿里巴巴旗下的域名URL作为RelayState的值,例如:*.aliyun.com、*.hichina.com、*.yunos.com、*.taobao.com、*.tmall.com、*.alibabacloud.com、*.alipay.com,否则配置无效。若不配置,默认跳转到阿里云控制台首页。
Audience (EntityID):
urn:alibaba:cloudcomputing。Recipient:
https://signin.aliyun.com/saml-role/sso。ACS (Consumer) URL:
https://signin.aliyun.com/saml-role/sso。
在左侧导航栏,单击Parameters。
在Parameters页面,单击
,添加第一条自定义应用属性。在New Field对话框,设置Field name为
https://www.aliyun.com/SAML-Role/Attributes/Role, 然后选中Include in SAML assertion和Multi-value parameter,最后单击Save。在Edit Field https://www.aliyun.com/SAML-Role/Attributes/Role对话框,从Default if no value selected区域的两个下拉列表中分别选择Aliyun Roles for SSO (Custom)和Semicolon Delimited input (Multi-value output),然后单击Save。
在Parameters页面,单击
,添加第二条自定义应用属性。在New Field对话框,设置Field name为
https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName, 然后选中Include in SAML assertion,最后单击Save。在Edit Field https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName对话框,从Value区域的下拉列表中选择Email,然后单击Save。
说明您也可以根据实际需要设置Value为其他值,例如:Username、userPrincipalName等。
在Parameters页面的右上角,单击Save。
步骤五:在OneLogin创建用户并分配应用
使用管理员用户登录OneLogin。
在顶部菜单栏,选择。
创建用户。
说明如果您已经拥有OneLogin用户,请跳过此步。
在Users页面的右上角,单击New User。
在New User页面,设置First name(例如:Jack)、Last name(例如:Lee)、Username(例如:jacklee)和Email(例如:jacklee@example.com),然后单击Save User。
在User Info页面,鼠标悬浮在右上角的More Actions上,从下拉列表中单击Change Password,为用户设置登录密码,然后单击Update。
为用户设置登录密码,以保证其可以正常登录到OneLogin。
在User Info页面的Custom Fields区域,配置用户自定义属性Aliyun Roles for SSO的值。
Aliyun Roles for SSO取值由RAM角色ARN和身份供应商ARN组成,两者之间用半角逗号(,)分隔,具体格式为
acs:ram::<account_id>:role/RoleName,acs:ram::<account_id>:saml-provider/ProviderName。其中,RAM角色ARN从步骤三:在阿里云创建RAM角色获取,身份供应商ARN从步骤二:在阿里云创建身份提供商获取,<account_id>为阿里云账号ID。说明如果一个用户对应多个RAM角色,此处可配置多组值。每个RAM角色ARN和其对应的身份提供商ARN为一组值,多组值之间用半角分号(;)分隔。例如:
acs:ram::125022144354****:role/reader-onelogin,acs:ram::125022144354****:saml-provider/OneLogin;acs:ram::125022144354****:role/administrator-onelogin,acs:ram::125022144354****:saml-provider/OneLogin;acs:ram::158622887609****:role/finance,acs:ram::158622887609****:saml-provider/OneLogin2。为用户分配应用。
在Applications页面,单击
。选择步骤一:在OneLogin创建应用创建的应用(LoginToAliyun),然后单击Continue。
在弹出的对话框中,单击Save。
在Users页面的右上角,单击右上角的Save User。
结果验证
使用步骤五:在OneLogin创建用户并分配应用创建的用户(jacklee)登录OneLogin。
单击应用(LoginToAliyun)。
如果成功跳转到您设置的RelayState对应页面(或默认的阿里云控制台首页),则说明登录成功。
说明如果您在步骤五:在OneLogin创建用户并分配应用中为用户设置了多个角色,则需要先选择登录角色,才能访问阿里云。