本文提供一个以OneLogin与阿里云进行角色SSO的示例,帮助您理解企业IdP与阿里云进行角色SSO的端到端配置流程。

背景信息

本示例中,企业拥有一个阿里云账号、一个OneLogin管理员用户和多个OneLogin普通用户。您希望经过配置,使OneLogin普通用户直接使用OneLogin账号通过角色SSO的方式访问阿里云,而不是在阿里云重新创建账号。

关于什么是OneLogin,请参见OneLogin帮助文档

步骤一:在OneLogin创建应用

  1. 使用管理员用户登录OneLogin
  2. 在账号头像的左侧,单击Administration,进入管理员页面。
  3. 在顶部菜单栏,选择Applications > Applications
  4. Applications页面的右上角,单击Add App
  5. Find Applications页面,搜索SAML Test Connector (Advanced)
  6. Add SAML Test Connector (Advanced)页面,配置应用程序的基本信息,然后单击Save
    本示例中设置应用程序的 Display NameLoginToAliyun,其他参数保持默认值。
  7. Info页面,鼠标悬浮在右上角的More Actions上,从下拉列表中单击SAML Metadata,下载身份提供商(IdP)元数据文件,并将其保存在本地计算机上。

步骤二:在阿里云创建身份提供商

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,单击SSO管理
  3. 角色SSO页签,单击创建身份提供商
  4. 输入身份提供商名称(OneLogin)和备注
  5. 元数据文档区域,单击上传文件,上传从步骤一:在OneLogin创建应用获取的IdP元数据。
  6. 单击确定
    查看新创建的身份提供商详情,记录其ARN,方便您后续使用。

步骤三:在阿里云创建RAM角色

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,单击RAM角色管理
  3. 单击创建RAM角色
  4. 选择可信实体类型为身份提供商,单击下一步
  5. 输入角色名称(例如:Reader-OneLogin)和备注
  6. 选择从步骤二:在阿里云创建身份提供商中创建的身份提供商(OneLogin)并查看限制条件后,单击完成
  7. 单击关闭
    查看新创建的RAM角色详情,记录其ARN,方便您后续使用。

步骤四:在OneLogin配置应用

  1. 使用管理员用户登录OneLogin
  2. 创建自定义用户属性。
    1. 在顶部菜单栏,选择Users > Users
    2. Users页面,鼠标悬浮在右上角的More Actions上,从下拉列表中单击Custom user fields
    3. Custom User Fields页面的右上角,单击New User Field
    4. New User Field对话框,配置NameShortname,然后单击Save
      本示例中, Name设置为 AliyunRoles for SSOShortname设置为 AliyunRoles
  3. 配置应用。
    1. 在顶部菜单栏,选择Applications > Applications
    2. Applications页面,单击步骤一:在OneLogin创建应用创建的应用程序(LoginToAliyun)。
    3. 在左侧导航栏,单击Configuration
    4. Configuration页面,配置以下信息,然后单击Save
      • RelayState:用来配置用户登录成功后跳转到的阿里云页面。
        说明 出于安全原因,您只能填写阿里巴巴旗下的域名URL作为 RelayState的值,例如:*.aliyun.com、*.hichina.com、*.yunos.com、*.taobao.com、*.tmall.com、*.alibabacloud.com、*.alipay.com,否则配置无效。若不配置,默认跳转到阿里云控制台首页。
      • Audience (EntityID)urn:alibaba:cloudcomputing:international
      • Recipienthttps://signin.alibabacloud.com/saml-role/sso
      • ACS (Consumer) URLhttps://signin.alibabacloud.com/saml-role/sso
    5. 在左侧导航栏,单击Parameters
    6. Parameters页面,单击添加,添加第一条自定义应用属性。
      1. New Field对话框,设置Field namehttps://www.aliyun.com/SAML-Role/Attributes/Role, 然后选中Include in SAML assertionMulti-value parameter,最后单击Save
      2. 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
    7. Parameters页面,单击添加,添加第二条自定义应用属性。
      1. New Field对话框,设置Field namehttps://www.aliyun.com/SAML-Role/Attributes/RoleSessionName, 然后选中Include in SAML assertion,最后单击Save
      2. Edit Field https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName对话框,从Value区域的下拉列表中选择Email,然后单击Save
        说明 您也可以根据实际需要设置 Value为其他值,例如: UsernameuserPrincipalName等。
    8. Parameters页面的右上角,单击Save

步骤五:在OneLogin创建用户并分配应用

  1. 使用管理员用户登录OneLogin
  2. 在顶部菜单栏,选择Users > Users
  3. 创建用户。
    说明 如果您已经拥有OneLogin用户,请跳过此步。
    1. Users页面的右上角,单击New User
    2. New User页面,设置First name(例如:Jack)、Last name(例如:Lee)、Username(例如:jacklee)Email(例如:jacklee@example.com),然后单击Save User
    3. User Info页面,鼠标悬浮在右上角的More Actions上,从下拉列表中单击Change Password,为用户设置登录密码,然后单击Update
      为用户设置登录密码,以保证其可以正常登录到OneLogin。
  4. 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
  5. 为用户分配应用。
    1. Applications页面,单击添加
    2. 选择步骤一:在OneLogin创建应用创建的应用(LoginToAliyun),然后单击Continue
    3. 在弹出的对话框中,单击Save
  6. Users页面的右上角,单击右上角的Save User
  7. 重复步骤4~6,为其他OneLogin普通用户配置Aliyun Roles for SSO属性值并分配应用。

结果验证

  1. 使用步骤五:在OneLogin创建用户并分配应用创建的用户(jacklee)登录OneLogin
  2. 单击应用(LoginToAliyun)。
    如果成功跳转到您设置的 RelayState对应页面(或默认的阿里云控制台首页),则说明登录成功。
    说明 如果您在 步骤五:在OneLogin创建用户并分配应用中为用户设置了多个角色,则需要先选择登录角色,才能访问阿里云。