火山引擎单点登录

单点登录SSO

# 应用简介

https://www.volcengine.com/

# 文档说明

本文介绍如何配置IDaaS与火山引擎基于SAML协议实现SSO集成。

火山引擎基于SAML协议有两种集成模式:

  • 用户SSO:指完成IdP与SP双方互信配置后,当企业IdP用户登录,火山引擎通过IdP发送的SAML断言建立IdP用户与火山引擎IAM用户之间的对应关系,企业IdP用户即可通过对应的IAM用户进行火山引擎资源的访问。访问的权限范围在该IAM用户权限范围内。

  • 角色SSO:指建立信任身份为对应IdP的角色并完成IdP与SP双方互信配置后,当企业IdP用户登录,该用户通过扮演IdP发送的SAML断言中指定的可用IAM角色进行火山引擎资源的访问。访问的权限范围在该IAM角色权限范围内。

身份提供商类型 登录火山引擎的身份 适用场景
用户SSO IAM用户 通用场景,企业用户与火山引擎用户一一映射等
客户使用SaaS产品时,推荐通过用户SSO实现单点登录
角色SSO IAM角色 客户按照人员角色进行分工,例如IT部门统一按照IT_admin角色进行登录

# 前提条件

  • 具备火山引擎租户环境
  • 具备竹云IDaaS租户环境
  • 具备上述两个环境的超级管理员账号

# 用户SSO集成配置说明

# 步骤概述

  • 使用管理员登录火山引擎并新建身份提供商(类型选择:用户sso)
  • 上传IDP元数据文件
  • 使用管理员登录IDaaS并新建预集成应用【火山引擎用户SSO】
  • 上传SP元数据文件并进行配置
  • 授权后进行测试

# 详细集成步骤

步骤一:登录火山引擎,进入【访问控制】界面

步骤二:新建身份提供商

身份提供商名称:【IDaaS_User_SSO】
上传IDP元数据文件(在IDaaS企业中心【设置】->【服务配置】->【IDP配置】,点击下载后即可获得IDP元数据文件)

步骤三:获取SP元数据文件 上述地址可以用浏览器直接打开,打开后,复制到文本文件中,另存格式为:sp_usersso.xml

步骤四:新建预集成应用【火山引擎用户SSO】

步骤五:上传sp_usersso.xml(NAME ID 属性手动编辑选择【账号名】)

集成配置已结束。

# 测试验证

火山引擎和竹云IDaaS人员在单点登录时,依赖的火山引擎人员中的【用户名】属性字段和竹云用户进行的匹配登录
在IDaaS中创建用户并分配给火山引擎应用(确保火山引擎内已存在此用户)

  • 从火山引擎登录访问(SP发起)

在火山引擎的登录页面中选择“企业联邦登录”登录方式,输入账号ID/主账号用户名后选择对应身份提供商IDaaS_User_SSO,跳转到IDaaS后进行帐密登录到验证。

如果登录后,火山引擎登录身份和IDaaS用户保持一致,则代表配置成功

  • 从IDaaS用户中心访问(IDP发起)

登录IDaaS用户中心后,点击火山引擎对应的卡片,检查火山引擎登录后的身份,如果和IDaaS保持一致,则代表配置成功。

# 角色SSO集成配置说明

# 步骤概述

  • 使用管理员登录火山引擎并新建身份提供商(类型选择:角色sso)
  • 上传IDP元数据文件
  • 使用管理员登录IDaaS并新建预集成应用【火山引擎用户SSO】
  • 上传SP元数据文件并进行配置
  • 授权后进行测试

# 详细集成步骤

步骤一:登录火山引擎,进入【访问控制】->【身份提供商】,新建类型为角色SSO的身份提供商

步骤二:上传IDP元数据文件,同时保存SP元数据文件sp_rolesso.xml(可参考用户SSO中步骤二和步骤三)

步骤三:火山引擎新建角色

角色对应的权限可自定义,新建完成显示如下

步骤四:新建预集成应用【火山引擎角色SSO】,并上传配置sp_rolesso.xml

步骤四:修改【映射配置】

添加如下两个配置

应用系统属性名 映射类型 固定属性值 Attr Name Format
https://www.volcengine.com/SAML/Attributes/Identity 固定属性值 trn:iam::210059xxxxx:role/devRole,trn:iam::210059xxxxx:saml-provider/IDaaS_Role_sso(企业要自定义修改) UNSPECIFIED
https://www.volcengine.com/SAML/Attributes/SessionName 用户属性 姓名 UNSPECIFIED

属性说明(更多详情参考火山引擎官方说明:https://www.volcengine.com/docs/6257/1130112)

  • https://www.volcengine.com/SAML/Attributes/Identity
    属性的值用于声明用于SSO登录的IAM角色的信息。至少包含一个属性值,可包含多个属性值,即一个企业用户可映射多个角色,如有多个则会在登录页面上列出供选择。取值为角色Trn(可在角色详情界面获取角色TRN)。
    格式为:trn:iam:: ${AccountID}:role/${RoleName},trn:iam:: ${AccountID}:saml-provider/ ${SAMLProviderName}。
    其中AccountID为您的火山引擎账号ID,RoleName为IAM角色名称,SAMLProviderName为身份提供商名称。
    示例:trn:iam::210059xxxxx:role/devRole,trn:iam::210059xxxxx:saml-provider/IDaaS_Role_sso

  • https://www.volcengine.com/SAML/Attributes/SessionName
    属性的值用于指定会话名称。必须包含一个属性值,属性值可自定义,用作登录后的名称展示和审计

# 测试验证

在IDaaS中创建用户并分配给火山引擎应用

  • 从火山引擎登录访问(SP发起)

在火山引擎的登录页面中选择“企业联邦登录”登录方式,输入账号ID/主账号用户名后选择对应身份提供商IDaaS_Role_SSO,跳转到IDaaS后进行帐密登录到验证。 如果登录后,显示角色登录,则代表配置成功。

  • 从IDaaS用户中心访问(IDP发起)

登录IDaaS用户中心后,点击火山引擎对应的卡片,检查火山引擎登录后的身份,显示角色登录,则代表配置成功。