SSO场景系列:实现 Google G Suite 到阿里云的单点登录

  1. 云栖社区>
  2. 信息安全管理>
  3. 博客>
  4. 正文

SSO场景系列:实现 Google G Suite 到阿里云的单点登录

seccloud 2018-11-17 15:49:10 浏览1830

本文介绍从 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配置

image

Step 3: 填写自定义App名称

这里将Application Name定义为 Aliyun Management Console.

image

Step 4: 填写阿里云作为SP的必要信息

G Suite要求至少提供ACS URLEntity ID这两个属性值。ACS URL是指阿里云账号作为SAML SP所对应的Assertion Consumer Service地址;Entity ID是指阿里云账号作为SAML SP的实体ID。

那么如何获取这两个信息呢? 您需要使用阿里云账号登录访问阿里云RAM控制台 > 人员管理 > 设置 > 高级设置,在SSO登录设置下可以查看当前云账号的SAML 服务提供方元数据 URL。访问此URL即可获取当前云账号的SP Metadata XML文档。而ACS URLEntity ID这两个属性值可以从SP Metadata XML对应的节点中获取,如下图所示:

image

在上述XML文件示例中,我们得到:
Entity ID值:https://signin-intl.aliyun.com/58************67/saml/SSO
ACS URL值:https://signin-intl.aliyun.com/saml/SSO

配置如下图所示:

image

Step 5: 配置属性映射(Attribute Mapping)

这里使用G Suite的默认属性映射(将Primary Email映射为Name ID)即可,所以这一步不需要特殊配置,直接跳过。

此时您可以看到如下的提示信息:

image

说明G Suite作为IdP侧的SSO配置完成,然后需要在阿里云账号侧进行对应的SSO配置。

开启App的用户授权

在进行阿里云账号的SSO配置之前,您还需要设置哪些用户能使用这个App,这是因为新创建的SAML App默认对所有用户关闭授权。下面配置为对所有域用户(domain users)授权,如下图所示:

image

在如下的确认界面中再次确认开启对所有域用户的授权:

image

在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在线文档 - 联合登录概述