本文介绍从 Google G Suite (作为IdP)到阿里云(作为SP)进行SSO联合登录的一种配置方法,用于帮助客户理解企业如何使用外部 IdP 与阿里云服务进行身份联合的端到端配置流程。
本文中涉及到 Google G Suite配置的部分属于建议,仅用于帮助理解阿里云身份联合的端到端配置,阿里云不提供 Google G Suite配置官方咨询服务。
示例配置的前提假设
- 假定您的企业正在使用Google G Suite进行日常工作,示例企业中假设G Suite的主域名(primary domain)为:
secloud.club
- 关于您:假设您是G Suite管理员,同时也是阿里云账号管理员。
- Alice是您企业的普通雇员,日常工作会使用G Suite域用户账号
alice@secloud.club
登录使用G Suite企业应用。
在 G Suite 中将阿里云配置为可信 SAML SP
配置阿里云作为 G Suite的可信 SP 的操作步骤如下:
您需要使用G Suite管理员账号登录到 G Suite Admin Console ,进入 Apps > APPS SETTINGS > SAML apps > Add a service/App to your domain,下面将阿里云作为一个SAML App进行配置:
Step 1: 选择SETUP MY OWN CUSTOM APP
Step 2: 下载Google IdP Metadata
下载的metadata文件将用于后续的阿里云账号侧的SSO配置
Step 3: 填写自定义App名称
这里将Application Name定义为 Aliyun Management Console
.
Step 4: 填写阿里云作为SP的必要信息
G Suite要求至少提供ACS URL和Entity ID这两个属性值。ACS URL是指阿里云账号作为SAML SP所对应的Assertion Consumer Service地址;Entity ID是指阿里云账号作为SAML SP的实体ID。
那么如何获取这两个信息呢? 您需要使用阿里云账号登录访问阿里云RAM控制台 > 人员管理 > 设置 > 高级设置,在SSO登录设置下可以查看当前云账号的SAML 服务提供方元数据 URL。访问此URL即可获取当前云账号的SP Metadata XML文档。而ACS URL和Entity ID这两个属性值可以从SP Metadata XML对应的节点中获取,如下图所示:
在上述XML文件示例中,我们得到:
Entity ID值:https://signin-intl.aliyun.com/58************67/saml/SSO
ACS URL值:https://signin-intl.aliyun.com/saml/SSO
配置如下图所示:
Step 5: 配置属性映射(Attribute Mapping)
这里使用G Suite的默认属性映射(将Primary Email映射为Name ID)即可,所以这一步不需要特殊配置,直接跳过。
此时您可以看到如下的提示信息:
说明G Suite作为IdP侧的SSO配置完成,然后需要在阿里云账号侧进行对应的SSO配置。
开启App的用户授权
在进行阿里云账号的SSO配置之前,您还需要设置哪些用户能使用这个App,这是因为新创建的SAML App默认对所有用户关闭授权。下面配置为对所有域用户(domain users)授权,如下图所示:
在如下的确认界面中再次确认开启对所有域用户的授权:
在RAM中将G Suite配置为可信SAML IdP
接下来您需要使用阿里云账号登录到RAM控制台,开始在阿里云账号侧进行相应的域别名及SSO配置:
Step 1:为默认域名设置域别名
阿里云账号的默认域名为:<account-alias>.onaliyun.com
,我们将G Suite域名(secloud.club)设置为云账号默认域名的域别名。
创建域别名的方法请参考RAM在线文档:创建域别名的方法。
Step 2:SAML单点登录(SSO)设置
由于在上一部分的G Suite配置过程中,我们已经下载了Google IdP Metadata文件,这里需要将该文件上传到阿里云。具体操作请参考RAM在线文档:SAML单点登录的设置。
授权Alice开始使用阿里云控制台进行工作
上述的配置完成后,下面就可以来测试了。假设Alice被任职负责阿里云OSS数据的管理。那么您作为阿里云账号管理员,需要先在阿里云的RAM中为Alice创建一个用户(要求与G Suite中的用户名相同)并授予合适的权限(这里可授予AliyunOSSFullAccess权限策略)。授权完成后,Alice就可以进行正常工作了。
Alice有两种方法登录到阿里云控制台:
方法1:登录到G Suite企业应用并跳转到阿里云控制台
由于上文已经在G Suite中配置了阿里云控制台(Aliyun Manangement Console)作为SAML App,所以Alice使用G Suite域用户账号登录到 G Suite企业应用 之后可以看到 Aliyun Manangement Console,直接点击该应用即可跳转到阿里云控制台,无需重新登录。
方法2:使用阿里云RAM用户登录
Alice也可以从阿里云 RAM用户登录URL 进行登录。当Alice输入 alice@secloud.club
之后,阿里云会自动跳转到Google登录URL,提示用户使用Google账号登录。登录成功后Google登录系统会自动跳转到阿里云控制台。
参考文档
[1] G Suite Administrator Help: Set up your own custom SAML application
[2] 阿里云RAM在线文档 - 联合登录概述