联合登录概览
更新时间:2019-11-12
概述
SAML(Security Assertion Markup Language)即安全标记语言,它是一个基于XML的通信协议,适用于在不同的安全域(Security Domain)之间交换认证和授权数据,以实现系统间账号的单点登录。 SAML协议的对象主要由身份提供方(IdP,Identity Provider), 服务提供方(SP, Service Provider)共同约束。
百度智能云支持基于SAML 2.0协议的单点登录。企业客户可以将支持SAML协议的账号系统作为IdP,将百度智能云作为SP,来打通企业已有账号系统与百度智能云的账号系统,实现单点登录(Single-sign on, 简称SSO)。
工作原理
百度智能云基于SAML 2.0协议提供了企业账号系统(IdP)直接接入,以实现单点登录的能力,其主要的工作原理如图所示:
- 企业员工或其他用户通过客户端(通常是浏览器)登录企业IdP;
- 企业IdP通过企业的身份存储目录认证用户身份;
- 企业IdP将登录用户的信息以SAML断言的形式返回客户端;
- 客户端将IdP返回的SAML断言传递到配置的百度智能云(SP)登录URL;
- 百度智能云SSO节点根据SAML配置验证用户身份并到临时身份凭证服务STS获取身份凭证;
- 返回客户端验证成功消息、身份凭证和回调地址;
- 客户端跳转到百度智能云首页,完成单点登录SSO。
联合认证模式
百度智能云当前提供了2种基于SAML 2.0的联合认证方式:IAM用户联合和IAM角色联合。
- IAM用户联合:企业员工(客户)从外部身份源认证通过后,以IAM子用户身份访问云资源;
- IAM角色联合:企业员工(客户)从外部身份源认证通过后,以IAM角色身份访问云资源。
2种联合认证模式的区别如下:
区别点 | IAM用户联合 | IAM角色联合 |
---|---|---|
以何种身份访问云资源 | IAM子用户 | IAM角色 |
映射关系 | 通常为一对一 | 通常为多对多,即企业内多个员工可共享同一个角色 |
可访问服务范围 | 支持主子用户的服务 | 支持STS的服务,详细请见目前支持的产品线 |
创建身份实体 | 需要为每个SSO的员工创建IAM子用户 | 仅需要创建有限的IAM角色 |
登录控制台 | IAM子用户支持独立登录智能云控制台 | IAM角色不支持独立登录控制台,需要由可信任的外部账号扮演 |
适用场景
不同的联合认证模式通常根据企业业务的实际需求进行选择,本节将介绍如何根据企业需求选择联合登录方式。
IAM用户联合
- 您希望将企业IdP的用户同步到百度智能云,并建立一一对应关系,以确保访问的可问责性;
- 部分您需要访问的服务,尚不支持通过角色访问(使用STS服务);
- 您的企业IdP不支持较为复杂的属性配置;
IAM角色联合
- 您不希望为每个员工在百度智能云都同步创建子用户,以降低管理成本;
- 您希望在使用联合登录的同时,仍然可以使用IAM子用户的管理功能;
- 您希望根据员工在企业IdP中的某些属性,来区分云上拥有的权限。当进行权限调整时,只需要在本地进行属性的更改;
- 您拥有多个百度智能云账号,但使用统一的企业IdP,希望在企业IdP配置一次,就可以实现到多个百度智能云账号的联合登录;
- 您的企业内或是与合作伙伴间存在多个IdP,都需要访问同一个百度智能云账号,您需要在一个百度智能云内配置多个IdP进行联合登录;
- 除了控制台,您也希望使用API方式来进行联合登录。