You need to enable JavaScript to run this app.
导航

使用okta配置SAML角色SSO的示例

最近更新时间2023.09.19 12:21:53

首次发布时间2023.09.19 12:21:53

目标

企业在Okta中维护了自己的多个员工身份,对应多个Okta用户,希望能够将其对应访问到火山引擎账号下的角色role1。本示例中,在Okta有用户user1,希望能够通过角色SSO单点登录配置,user1从Okta直接跳转火山引擎登录页面以角色role1身份单点登录到火山引擎账号,行使角色对应的权限。

操作

步骤一:在火山引擎控制台获取SAML服务提供商(SP)元数据

  1. 登录您火山引擎账号的访问控制(IAM)控制台
  2. 身份管理-身份提供商点击创建身份提供商
  3. 在新开启的抽屉中将身份提供商类型选择为SAML,SSO类型选择为角色SSO。在角色SSO的服务提供商元数据URL处,点击URL,后续的步骤中将会使用本URL新开启的页面内的信息。

步骤二:创建新的Okta应用

Okta作为身份提供商(IdP),需要以“应用”的形式感知服务提供商火山引擎,实现单点登录。为此需要在Okta处创建对应火山引擎的应用。

  1. 登录到Okta门户,点击右上角管理员
  2. 以管理员身份登录到Okta后,点击左侧导航栏内的Applications-Applications,点击Create APP Integration,进入Create a new app integration弹窗,选择SAML2.0,点击Next
  3. Create SAML Integration-General Settings界面中,输入应用名称App name(仅用作在IDP处展示,本示例中可以填写“VolcineDemo”),点击Next
  4. Create SAML Integration-Configure SAML步骤中,完成步骤三中的SAML配置。

步骤三:完成Okta应用的SAML配置

接下来需要为IdP配置基于SAML的单点登录。

  1. 在刚刚创建的应用程序VolcineDemo的Create SAML Integration-Configure SAML步骤中,基于第一步中获取到的SP元数据,配置General栏:
    1. Single sign on URL处,填写AssertionConsumerService元素的Location的值,即 https://signin.volcengine.com/saml/sso。
    2. 同时勾选"Use This for Recipient URL and Destination URL"。
    3. Audience URI(SP Entity ID) 处,填写EntityDescriptor元素的'EntityID'的值:https://www.volcengine.com/。
    4. NameID format选择Unspecified,相应取值的配置可以根据需求自定义。该字段主要用于补充标识用户身份,角色SSO过程中,火山引擎不依赖该取值进行用户身份识别,但需要保证该字段不为空。
    5. Attribute Statements (optional) 中,配置以下两个自定义属性:
      1. 第一个自定义属性name配置为:https://www.volcengine.com/SAML/Attributes/Identity,NameFormat配置为Unspecified,value自定义为要登录的角色的trn。本示例中,属性值需要配置为:trn:iam::210*******:role/role1,trn:iam::210*******:saml-provider/Okta_role,其中Okta_role为后续步骤五中创建的身份提供商名称,role1为后续步骤六中创建的待登录的角色名称。
      2. 第二个自定义name配置为:https://www.volcengine.com/SAML/Attributes/SessionName,NameFormat配置为Unspecified,value自定义为登录后用于标识会话名称的取值,可以为常值。本示例中,可以配置为user.email,用于后续登录后标识和审计登录的员工身份。
  2. 点击Next,按需填写Feedback步骤内容后,点击Finish保存配置。
  3. 在当前应用中,点击Sign On页签,找到SAML SigningCertificates,在状态为Active的Certificate中鼠标悬浮在 Actions,点击View IdP metadata,在新页面中点击右键存储身份提供商的元数据(IdP Metadata)。

步骤四:在Okta中创建用户并分配给应用

此步骤定义在Okta中,有权访问VolcineDemo应用的Okta用户或用户组。

  1. 点击页面顶部导航Users-Users,点击右上角New User

  2. 配置用户user1基本信息后,点击右上角Save User

  3. 点击该用户页面左侧导航Applications,点击右侧加号,选择VolcineDemo应用,点击Continue,添加。

步骤五:在火山引擎完成角色SSO身份提供商创建

  1. 回到您火山引擎账号的访问控制(IAM)控制台。

  2. 在步骤一中的身份管理-身份提供商-新建身份提供商抽屉中,按需填写身份提供商名称,例如Okta_role。最后将步骤三中获取的IdP Metadata元数据文件上传,点击提交

步骤六:在火山引擎创建IAM角色

在访问控制,身份管理-角色中点击新建角色,新建火山引擎账号下的角色role1并配置相应权限。

  1. 选择信任身份为:身份提供商,身份提供商类型为SAML,并选择步骤四中建立的身份提供商Okta_role。

  2. 配置角色信息:输入角色名称、显示名和描述。请注意,此处会作为单点登录后登录身份的名称显示在官网身份栏,建议您按照实际工作的角色名称命名,如admin、ITservice等。本示例中以role1示意。

  3. 添加权限:您可以为角色添加IAM权限策略,同时指定权限策略的作用范围。

点击提交,创建完毕。


结果验证

完成SSO登录配置后,您可以验证从Okta发起单点登录。
以user1身份登录Okta后,直接进入门户,在我的应用程序仪表板中点击VolcineDemo,测试user1的SSO登录。如果成功跳转到火山引擎SSO登录页面且能够以火山引擎role1的角色身份登入账号210*******,则表示配置成功。

或您可以验证从火山引擎发起单点登录。
在火山引擎的登录页面中选择“企业联邦登录”登录方式,输入账号ID 210*******后选择对应身份提供商Okta_role,跳转到Okta后进行帐密登录到Okta的user1身份。登录成功后若能够跳转至火山引擎SSO登陆页,登入对应火山引擎账号的role1身份,则单点登录配置成功。