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

前提条件

  • 进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册
  • 进行操作前,请确保您已经拥有Okta账号。
    说明 如果仅作为测试用途,您可以在Okta官网申请有效期为30天的账号。

在阿里云获取SAML服务提供商元数据

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,单击SSO管理
  3. 用户SSO页签下,单击SAML服务提供商元数据URL后的复制按钮。
  4. 在新的浏览器窗口中打开拷贝的链接,将XML文件另存到本地。
    说明 XML保存了阿里云作为一个SAML服务提供商的访问信息。您需要记录XML文件中EntityDescriptor元素的entityID属性值和AssertionConsumerService元素的Location属性值,以便后续在Okta的配置中使用。

在Okta创建支持SAML SSO的应用

  1. 登录Okta门户
    说明 您需要提前在手机端下载Okta Verify应用,登录时需要输入6位动态验证码。
  2. 单击Admin
    SSO_Okta_管理员
  3. 在Okta顶部菜单栏,单击Applications
    SSO_Okta_Applications
  4. 单击Add Application
  5. 单击Create New App
    SSO_Okta_create
  6. Platform选择为WebSign on method选择为SAML 2.0,单击Create
    SSO_Okta_SAML
  7. 配置应用名称为AliyunSSODemo,单击Next
    SSO_Okta_name
  8. 配置SAML后,单击Next
    SSO_Okta_SAML settings
    • Single sign on URL在阿里云获取SAML服务提供商元数据中记录的entityID
    • Audience URI在阿里云获取SAML服务提供商元数据中记录的Location
    • Default RelayState用来配置用户登录成功后跳转到的阿里云页面。
      说明 出于安全原因,您只能填写阿里巴巴旗下的域名URL作为Default RelayState的值,例如:*.aliyun.com、*.hichina.com、*.yunos.com、*.taobao.com、*.tmall.com、*.alibabacloud.com、*.alipay.com,否则配置无效。若不配置,默认跳转到阿里云控制台首页。
    • Name ID format选择Persistent
    • Application usernameUpdate application username on选择默认选项即可。
  9. 根据需要选择合适的应用类型,单击Finish
    SSO_Okta_Finish

在Okta获取SAML IdP元数据

  1. 登录Okta门户
  2. 在Okta顶部菜单栏,单击Applications
  3. 单击目标应用名称(AliyunSSODemo)。
  4. Sign On页签下,单击Identity Provider metadata,将IdP元数据另存到本地。
    SSO_Okta_Sign On

在阿里云开启用户SSO

  1. 使用阿里云账号登录RAM控制台
  2. 在左侧导航栏,单击SSO管理
  3. 单击用户SSO
  4. SSO登录设置区域,单击编辑
  5. SSO功能状态区域,单击开启
    说明 用户SSO是一个全局功能,开启后,所有RAM用户都需要使用SSO登录。 如果您是通过RAM用户配置的,请先保留为关闭状态,您需要先完成RAM用户的创建,以免配置错误导致自己无法登录。您也可以通过主账号进行配置来规避此问题。
  6. 单击元数据文档下的上传文件,上传从在Okta获取SAML IdP元数据步骤中获取的IdP元数据。
  7. 开启辅助域名开关并配置为Okta中的用户名Email后缀。
    说明 如果您的Okta中存在多种Email后缀的用户,则只有以此处配置的后缀结尾的Email地址可以登录到阿里云。
  8. 单击确定

在Okta创建用户并分配应用

  1. 登录Okta门户
  2. 在Okta顶部菜单栏,单击Directory > People
    OSS_Okta_poeple
  3. 单击Add Person,在Add Person页面,填写基本信息并将Primary email配置为test@example.com。
  4. Password区域,勾选Send user activation email now,单击Save
    说明 根据页面提示激活Okta用户。
    OSS_Okta_New poeple
  5. 返回Okta顶部菜单栏,单击Applications
  6. 单击目标应用名称(AliyunSSODemo)后,在Assignments页签下,单击Assign > Assign to People
    SSO_Okta_Assign to people
  7. 单击目标用户(test@example.com)后的Assign
    SSO_Okta_done
  8. 单击Save and Go Back
  9. 单击Done

在阿里云创建RAM用户

  1. 使用阿里云账号登录RAM控制台
  2. 创建RAM用户(test@{id}.onaliyun.com)
    说明
    • 请确保用户名前缀与Okta中的用户名前缀保持一致。
    • 关于如何创建RAM用户,详情请参见创建RAM用户

配置验证

  • 从阿里云侧发起登录
    1. RAM控制台概览页,复制RAM用户的登录地址。
    2. 将鼠标悬停在右上角头像的位置,单击退出登录或使用新的浏览器打开复制的RAM登录链接。
    3. 单击页面出现的使用企业账户登录按钮,系统会自动跳转到Okta的登录页面。
    4. 在Okta的登录界面,输入用户名(test@example.com)和密码,单击登录

    系统将自动单点登录并重定向到您指定的DefaultRelayState页面。如果未指定DefaultRelayState或超出允许范围,则系统会访问如下阿里云控制台首页。如果出现以下页面,表示配置成功。

    SSO_Okta配置验证
  • 从Okta侧发起登录

    使用Okta用户登录Okta门户,在Okta的主页,找到并单击AliyunSSODemo应用。

    SSO_Okta_success

    系统将自动单点登录并重定向到您指定的DefaultRelayState页面。如果未指定DefaultRelayState或超出允许范围,则系统会访问如下阿里云控制台首页。如果出现以下页面,表示配置成功。

    SSO_Okta配置验证