IAM用户联合
配置IAM用户联合登录
你可以通过配置企业端IdP的SAML节点和百度智能云SP的 外部账户接入 > IAM用户联合 ,从而实现企业用户从企业应用到百度智能云IAM子用户的单点登录。
先决条件
- 企业IdP支持SAML 2.0协议;
- 拥有百度智能云的账号并激活。
配置流程
配置基于SAML的单点登录功能,需要同时完成IdP配置和SP配置,其中IdP配置包含基本配置、用户属性配置和下载元数据等,SP配置包含创建身份服务提供商和配置信任策略。本文以微软公司的Azure Active Directory(AAD)为IdP,介绍如何配置SAML IdP和百度智能云的SP。
配置IdP
- 按照流程,注册Azure 账号;
- 登录Azure门户,在左侧导航栏中,进入 所有服务 > Azure Active Directory ;
- 点击 企业应用程序 > 新建应用程序 ,并选择 非库应用程序 ,填写应用名称,点击 添加 完成应用程序创建;
注意:非库应用程序要求开通AAD专业版,你可以选择开通免费试用版,并在完成配置后选择是否需要关闭该试用版。
- 进入应用程序,选择 单一登录 > SAML ;
- 在基本SAML配置中,点击右上方编辑按钮,配置 标识符(实体ID) 字段为
urn:bce:baidu:webservices
或https://login.bce.baidu.com/accountId/saml
,需要将accountId字段替换为百度智能云中的实际accountId(在百度智能云用户中心获取);
注意:若希望使用从AAD侧发起登录 ,请配置 标识符(实体ID) 字段为
urn:bce:baidu:webservices
;若希望使用从百度智能云侧发起登录,请配置 标识符(实体ID) 字段为https://login.bce.baidu.com/accountId/saml
。
- 在基本SAML配置中,继续配置 回复URL(断言使用者服务URL) 字段为
https://login.bce.baidu.com/saml
;
- 在用户属性和字段中,点击右上方编辑按钮,添加如下用户属性字段:
名称 | 源 | 源属性 | 说明 |
---|---|---|---|
https://bce.baidu.com/SAML/Attributes/Subuser |
属性 | accountId:subuser-name/{subuser_name}, accountId:saml-provider/{providerName} | 将accountId字段替换为百度智能云中的实际accountId(在百度智能云用户中心获取), subuser_name字段替换为子用户名称, providerName字段替换为IdP名称(有效字符串即可),如azure |
以上字段为必填字段,你可以根据需要添加额外的用户属性字段,详细配置参考本地身份服务的SAML断言配置
- 在SAML签名证书中,下载IdP SAML元数据,IdP的配置到此结束。
配置SP
配置SP身份提供者
- 登录百度智能云, 鼠标移到右上角,进入多用户访问控制 > 外部账号接入 > IAM用户联合;
- 在用户联合设置中,上传IdP配置步骤7中下载的SAML元数据,切换功能状态开关到打开状态 。
本地身份服务的SAML断言配置说明
基本配置
- SubjectConfirmationData中的
Recipient
字段必须配置为https://login.bce.baidu.com/saml
- AudienceRestriction中的Audience字段需要配置为
urn:bce:baidu:webservices
- 属性中需要有名称为
https://bce.baidu.com/SAML/Attributes/Subuser
的断言,并且格式为“accountId:subuser-name/{subuser_name}, accountId:saml-provider/{providerName}”,其中accountId字段替换为百度智能云中的实际accountId(在百度智能云用户中心获取), subuser_name字段替换为子用户名称, providerName字段替换为IdP名称(有效字符串即可),如azure
。
SAML断言属性
SAML断言的名称和IDP信任策略的属性是一一对应的,目前百度智能云支持的属性包括: saml:iss, saml:aud, saml:cn, saml:eduPersonAffiliation, saml:eduPersonPrincipalName,它们对应的SAML属性分别是:
名称 | 属性含义 |
---|---|
saml:iss | SAML断言的Issuer字段,非必填 |
saml:aud | SAML断言AudienceRestriction中的Audience字段 |
saml:cn | SAML断言中的urn:oid:2.5.4.3属性 |
saml: eduPersonAffiliation | SAML断言中的urn:oid:1.3.6.1.4.1.5923.1.1.1.1属性 |
saml: eduPersonPrincipalName | SAML断言中的urn:oid:1.3.6.1.4.1.5923.1.1.1.6属性 |
验证单点登录
从AAD侧发起登录
先决条件
已经完成IdP和SP的SAML配置。
操作指南
- 登录Azure门户,导航到 所有服务 > Azure Active Directory > 企业应用程序 > testApp ;
- 点击 用户和组 > 新建用户 ,将需要授权单点登录的用户添加到该应用程序;
- 点击 单一登录 ,点击 Validate , 选择使用 作为当前用户登录 ,即可测试跳转到百度智能云页面;
- 如果需要将登录链接嵌入到企业应用中,可以直接在如下位置获取:
从百度智能云侧发起登录
先决条件
已经完成IdP和SP的SAML配置。
操作指南
- 登录百度智能云控制台,在多用户访问控制 > 用户管理 > 子用户,点击子用户登录链接;
- 点击使用企业账号登录,跳转至AAD登录界面,输入用户名密码,验证通过后,即可跳转到百度智能云页面;
注意
开发时,在重定向到https://login.bce.baidu.com/saml
的时候需要携带SAMLResponse
中的信息,此信息中需要标明用户具体的身份断言。
<RequestedAttribute isRequired="true" Name="https://bce.baidu.com/SAML/Attributes/Subuser" FriendlyName="RoleEntitlement"/>
这两个属性是必传的属性,其中
属性https://bce.baidu.com/SAML/Attributes/Subuser
用于表示用户当前访问的账户,子用户,和IdP名称,其格式为"accountId:subuser-name/{subuser_name}, accountId:saml-provider/{providerName}",其中accountId
为百度智能云中实际的账户ID, subuser_name
传递SSO后的子用户名, providerName
则为配置外部身份提供者的名称字段。