目标
企业在Okta中维护了自己的多个员工身份,对应多个Okta用户,希望能够将其对应访问到火山引擎账号下的角色role1。本示例中,在Okta有用户user1,希望能够通过角色SSO单点登录配置,user1从Okta直接跳转火山引擎登录页面以角色role1身份单点登录到火山引擎账号,行使角色对应的权限。
操作
步骤一:在火山引擎控制台获取SAML服务提供商(SP)元数据
- 登录您火山引擎账号的访问控制(IAM)控制台。
- 在身份管理-身份提供商点击创建身份提供商。
- 在新开启的抽屉中将身份提供商类型选择为SAML,SSO类型选择为角色SSO。在角色SSO的服务提供商元数据URL处,点击URL,后续的步骤中将会使用本URL新开启的页面内的信息。
步骤二:创建新的Okta应用
Okta作为身份提供商(IdP),需要以“应用”的形式感知服务提供商火山引擎,实现单点登录。为此需要在Okta处创建对应火山引擎的应用。
- 登录到Okta门户,点击右上角管理员。
- 以管理员身份登录到Okta后,点击左侧导航栏内的Applications-Applications,点击Create APP Integration,进入Create a new app integration弹窗,选择SAML2.0,点击Next。
- 在Create SAML Integration-General Settings界面中,输入应用名称App name(仅用作在IDP处展示,本示例中可以填写“VolcineDemo”),点击Next。
- 在Create SAML Integration-Configure SAML步骤中,完成步骤三中的SAML配置。
步骤三:完成Okta应用的SAML配置
接下来需要为IdP配置基于SAML的单点登录。
- 在刚刚创建的应用程序VolcineDemo的Create SAML Integration-Configure SAML步骤中,基于第一步中获取到的SP元数据,配置General栏:
- 在Single sign on URL处,填写
AssertionConsumerService
元素的Location
的值,即 https://signin.volcengine.com/saml/sso。 - 同时勾选"Use This for Recipient URL and Destination URL"。
- Audience URI(SP Entity ID) 处,填写
EntityDescriptor
元素的'EntityID'的值:https://www.volcengine.com/。 - NameID format选择Unspecified,相应取值的配置可以根据需求自定义。该字段主要用于补充标识用户身份,角色SSO过程中,火山引擎不依赖该取值进行用户身份识别,但需要保证该字段不为空。
- 在Attribute Statements (optional) 中,配置以下两个自定义属性:
- 第一个自定义属性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为后续步骤六中创建的待登录的角色名称。
- 第二个自定义name配置为:https://www.volcengine.com/SAML/Attributes/SessionName,NameFormat配置为Unspecified,value自定义为登录后用于标识会话名称的取值,可以为常值。本示例中,可以配置为user.email,用于后续登录后标识和审计登录的员工身份。
- 点击Next,按需填写Feedback步骤内容后,点击Finish保存配置。
- 在当前应用中,点击Sign On页签,找到SAML SigningCertificates,在状态为Active的Certificate中鼠标悬浮在 Actions,点击View IdP metadata,在新页面中点击右键存储身份提供商的元数据(IdP Metadata)。
步骤四:在Okta中创建用户并分配给应用
此步骤定义在Okta中,有权访问VolcineDemo应用的Okta用户或用户组。
点击页面顶部导航Users-Users,点击右上角New User。
配置用户user1基本信息后,点击右上角Save User。
点击该用户页面左侧导航Applications,点击右侧加号,选择VolcineDemo应用,点击Continue,添加。
步骤五:在火山引擎完成角色SSO身份提供商创建
回到您火山引擎账号的访问控制(IAM)控制台。
在步骤一中的身份管理-身份提供商-新建身份提供商抽屉中,按需填写身份提供商名称,例如Okta_role。最后将步骤三中获取的IdP Metadata元数据文件上传,点击提交。
步骤六:在火山引擎创建IAM角色
在访问控制,身份管理-角色中点击新建角色,新建火山引擎账号下的角色role1并配置相应权限。
选择信任身份为:身份提供商,身份提供商类型为SAML,并选择步骤四中建立的身份提供商Okta_role。
配置角色信息:输入角色名称、显示名和描述。请注意,此处会作为单点登录后登录身份的名称显示在官网身份栏,建议您按照实际工作的角色名称命名,如admin、ITservice等。本示例中以role1示意。
添加权限:您可以为角色添加IAM权限策略,同时指定权限策略的作用范围。
点击提交,创建完毕。
结果验证
完成SSO登录配置后,您可以验证从Okta发起单点登录。
以user1身份登录Okta后,直接进入门户,在我的应用程序仪表板中点击VolcineDemo,测试user1的SSO登录。如果成功跳转到火山引擎SSO登录页面且能够以火山引擎role1的角色身份登入账号210*******,则表示配置成功。
或您可以验证从火山引擎发起单点登录。
在火山引擎的登录页面中选择“企业联邦登录”登录方式,输入账号ID 210*******后选择对应身份提供商Okta_role,跳转到Okta后进行帐密登录到Okta的user1身份。登录成功后若能够跳转至火山引擎SSO登陆页,登入对应火山引擎账号的role1身份,则单点登录配置成功。