本文为您提供Okta与云SSO进行单点登录(SSO登录)的示例。

背景信息

假设企业在本地IdP Okta中有大量用户,且已在阿里云资源目录(RD)中搭建了多账号体系结构。企业希望经过配置,使Okta的用户通过SSO登录的方式直接访问资源目录指定成员账号中的指定资源。

步骤一:在云SSO获取服务提供商(SP)元数据

  1. 登录云SSO控制台
  2. 在左侧导航栏,单击设置
  3. SSO登录区域,复制服务提供商(SP)的ACS URLEntity ID

步骤二:在Okta创建应用程序

  1. 登录Okta门户
  2. 单击页面右上方的账号图标,然后单击Your Org
  3. 在左侧导航栏,选择Applications > Applications
  4. Applications页面,单击Create App Integration
  5. Create a new app integration对话框,单击SAML 2.0,然后单击Next
  6. 配置应用程序信息。
    1. General Settings页面,输入应用名称CloudSSODemo,然后单击Next
    2. Configure SAML页面,配置SAML,然后单击Next
      • Single sign on URL:从步骤一:在云SSO获取服务提供商(SP)元数据获取的ACS URL值。
      • Audience URI:从步骤一:在云SSO获取服务提供商(SP)元数据获取的Entity ID值。
      • Default RelayState:用来配置SSO登录成功后跳转到的阿里云页面。如果不配置,默认跳转到云SSO用户门户。
        说明 出于安全原因,您只能输入*.alibabacloudsso.com域名的URL,否则配置无效。
      • Name ID format:选择EmailAddress
      • Application username:选择Okta username
        说明 您可以设置任意能够唯一标识用户的字段作为SAML断言中NameID的值,常见的有username或Email等。由于云SSO需要传入的NameID值要与云SSO的用户名一致,因此您在配置SSO登录、配置SCIM同步或在云SSO创建同名用户时都需要使用同一个字段,以确保SSO登录能够成功。
    3. Feedback页面,根据需要选择合适的应用类型,然后单击Finish

步骤三:在Okta获取身份提供商(IdP)元数据

  1. 在应用程序CloudSSODemo详情页,单击Sign On页签。
  2. Settings区域,单击Identity Provider metadata,将IdP元数据另存到本地。

步骤四:在Okta为应用程序分配用户

说明 如果Okta中没有用户,您需要先创建用户。具体操作,请参见创建Okta用户
  1. 在应用程序CloudSSODemo详情页,单击Assignments页签。
  2. 单击Assign,选择分配方式。
    • Assign to People:分配用户。本文以该方式为例。
    • Assign to Groups:分配用户组。
  3. Assign CloudSSODemo to People对话框,单击目标用户右侧的Assign
  4. 检查或修改User Name,然后单击Save and Go Back
  5. 重复步骤3~步骤4,依次分配其他用户到应用程序。
  6. 单击Done

步骤五:在云SSO启用SSO登录

  1. 在云SSO的左侧导航栏,单击设置
  2. SSO登录区域,单击配置身份提供商信息
  3. 配置身份提供商信息对话框,选择上传元数据文档
  4. 单击上传文件,上传从步骤三:在Okta获取身份提供商(IdP)元数据获取的IdP元数据文件。
  5. 打开SSO登录开关,启用SSO登录。
    说明 启用SSO登录后,用户名和密码登录将自动禁用。SSO登录是一个全局功能,启用后,所有用户都需要SSO登录。

步骤六:同步用户或创建用户

从Okta同步用户到云SSO,或者在云SSO创建同名用户。具体如下:

  • 从Okta同步用户到云SSO(推荐):适用于Okta中拥有大量用户的情况。具体操作,请参见通过SCIM同步Okta用户或用户组的示例
  • 在云SSO创建同名用户:适用于Okta中仅有少量用户的情况。具体操作,请参见创建用户
    说明 用户名会用于用户登录。当您进行SSO登录时,云SSO的用户名应该与Okta中用于SSO登录的字段保持一致。更多信息,请参见步骤二:在Okta创建应用程序

(可选)步骤七:为用户授权

如果您计划用户SSO登录后访问资源目录指定成员账号中的指定资源,您还需要创建访问配置,并为用户在RD账号上授权。

  1. 在云SSO创建访问配置,定义权限策略。
    具体操作,请参见创建访问配置
  2. 为用户在RD账号上授权。
    具体操作,请参见在RD账号上授权

验证结果

完成上述配置后,您可以从阿里云或Okta发起SSO登录。

  • 从阿里云发起SSO登录
    1. 云SSO控制台概览页,复制用户登录地址。
    2. 使用新的浏览器打开复制的用户登录地址。
    3. 单击跳转,系统会自动跳转到Okta的登录页面。云SSO登录跳转
    4. 使用Okta用户名和密码登录。

      系统将自动SSO登录并重定向到您指定的Default RelayState页面。本示例中未指定Default RelayState,系统会访问下图所示的云SSO用户门户。

      用户门户
    5. 单击目标RD账号权限列的显示详情
    6. 在权限面板,单击目标权限操作列的登录
    7. 访问RD账号中有权限的资源。
  • 从Okta发起SSO登录
    1. 使用Okta用户登录Okta门户
    2. 单击CloudSSODemo应用。

      系统将自动SSO登录并重定向到您指定的Default RelayState页面。本示例中未指定Default RelayState,系统会访问下图所示的云SSO用户门户。

      用户门户
    3. 单击目标RD账号权限列的显示详情
    4. 在权限面板,单击目标权限操作列的登录
    5. 访问RD账号中有权限的资源。