作者:MeshCloud脉时云公有云架构师 周宽
What wedo?(背景)
- 将 Microsoft Azure Active Directory (Azure AD) 设置为自动将用户预配到 Google Cloud Identity 或 Google Workspace。
- 实现使用 Azure AD 单点登录Google Cloud Platform等Google服务。
Why we do it? or What’s the problem?(解决什么问题)
- Google Cloud等Google服务使用 Google Identity/Workspace 进行身份验证和访问权限管理。如果所有员工都已经有 Azure AD 帐号,再为每一位员工手动维护 Google 身份将增加不必要的管理开销。
- 通过在 Google Cloud 与现有的身份管理系统(Azure AD)之间联合用户身份,就可以自动维护 Google Identity 并将其生命周期与 Azure AD 中的现有用户联系起来。
How we do it?(我们怎样做)
一、配置 Google Workspace
打开Google Workspace 管理控制台https://admin.google.com,然后使用在注册 Cloud Identity 或 Google Workspace 时创建的超级用户登录。
1.1、为 Azure AD 创建用户
如需允许 Azure AD 访问 Cloud Identity 或 Google Workspace 帐号,必须在 Cloud Identity 或 Google Workspace 帐号中创建 Azure AD 用户。
Azure AD 用户仅适用于自动预配。因此,最好将其保存在单独的用户组织部门 (OU) 中,以与其他用户帐号分开。使用单独的组织部门还可确保可以稍后为 Azure AD 用户停用单点登录。
如需创建新的组织部门,请执行以下操作:
- 在菜单中,转到目录 > 组织部门。
- 点击 add 并为组织部门提供名称和说明:
- 名称:Automation
- 说明:Automation users
- 点击创建。
为 Azure AD 创建一个用户帐号,并将其放置在 Automation 组织部门中:
- 在菜单中,转至目录 > 用户,然后点击添加新用户,以创建用户。
- 提供适当的名称和电子邮件地址,如下所示:
- 名字:Azure AD
- 姓氏:Provisioning
- 主电子邮件:azuread-provisioning
- 保留电子邮件地址的主域名。
- 点击管理用户的密码、组织部门和个人资料照片,并配置以下设置:
- 组织部门:选择之前创建的 Automation 组织部门。
- 密码:选择创建密码并输入密码。
- 要求在下次登录时更改密码:已停用
- 点击添加新用户。点击完成。
为了使 Azure AD 能够创建、列出和删除用户和群组,必须将用户设为“委派的管理员”,从而向其授予额外的权限。
创建新的委派管理员角色并将其分配给 azuread-provisioning 用户:
- 在菜单中,转到帐号 > 管理员角色。
- 点击创建新角色。
- 提供角色的名称和说明,如下所示:
- 名称:Azure AD
- 说明:Role for automated user and group provisioning
- 点击继续。
- 在下一个屏幕上,向下滚动到名为 Admin API 权限的部分,并将以下权限设置为已启用:
- 组织部门 > 读取
- 用户
- 组
- 点击继续。
- 点击 Create role。
- 点击为用户分配角色。
- 选择 azuread-provisioning 用户,然后点击分配角色。
1.2、注册网域
在 Cloud Identity 和 Google Workspace 中,用户和群组由电子邮件地址进行标识。这些电子邮件地址使用的网域必须先进行注册和验证。
- 在管理控制台中,转到帐号 > 网域 > 管理网域。
- 点击添加网域。
- 输入域名,然后选择辅助域名。
- 点击添加网域并开始验证,然后按照说明验证网域的所有权。
二、配置 Azure AD 预配
2.1、创建企业应用
可以通过设置 Microsoft Azure 市场中的 Google Cloud/G Suite Connector by Microsoft 库应用,将 Azure AD 连接到 Cloud Identity 或 Google Workspace 帐号,下面将使用该库应用创建两个实例,一个用于用户预配,另一个用于单点登录。
首先,创建一个该库应用的实例来处理用户预配:
- 打开 Azure 门户https://portal.azure.com/并以具有全局管理员权限的用户身份登录。
- 选择 Azure Active Directory > 企业应用。
- 点击新建应用。
- 搜索 Google Cloud,然后点击结果列表中的 Google Cloud/G Suite Connector by Microsoft 项。
- 将应用的名称设置为 Google Cloud (Provisioning)。
- 点击创建。
- 添加应用可能需要几秒钟的时间,然后应该会被重定向到标题为 Google Cloud(预配)- 概览 (Google Cloud (Provisioning) – Overview) 的页面。
- 在左侧菜单中,点击管理 > 属性:
- 将启用以供用户登录设置为否。
- 将需要使用用户分配设置为否。
- 将对用户可见设置为否。
- 点击保存。
- 在左侧菜单中,点击管理 > 预配:
- 点击开始使用。
- 将预配模式更改为自动。
- 点击管理员凭据 > 授权。
- 使用之前创建的 azuread-provisioning@DOMAIN 用户登录,其中 DOMAIN 是 Cloud Identity 或 Google Workspace 帐号的主域名。
- 由于这是首次使用此用户登录,因此系统会询问是否接受 Google 服务条款和隐私权政策。
- 如果同意这些条款,请点击接受,以确认对 Cloud Identity API 的访问。
- 点击测试连接以验证 Azure AD 可以使用 Cloud Identity 或 Google Workspace 成功进行身份验证。
- 点击保存。
2.2、配置用户预配
配置用户预配,映射用户。
- 在 Mappings 下,点击 Provision Azure Active Directory Users。
- 在 Attribute Mappings 下,选择 surname 行,并将 Default value if null 设置为 _。
- 选择 givenName 行,并将 Default value if null 设置为 _。
- 点击 OK。
- 点击保存。
- 点击是,确认保存更改将导致用户和组重新同步。
- 点击 X 关闭 Attribute Mapping 对话框。
2.3、配置群组预配
配置群组预配的正确方法取决于群组是否启用了邮件。
- 在 Mappings 下,点击 Provision Azure Active Directory Groups。
- 将 Enabled 设置为 No。
- 点击保存。
- 点击是,确认保存更改将导致用户和组重新同步。
- 点击 X 关闭 Attribute Mapping 对话框。
2.4、配置用户分配
如果只有某部分用户需要访问 Google Cloud,则可以选择通过向特定用户或用户群组分配企业应用来限定要预配的那部分用户。如果要预配所有用户,则可以跳过以下步骤。
- 在左侧菜单中,点击管理 > 用户和组。
- 点击添加用户。
- 选择用户。
- 选择要预配的用户或群组。如果选择组,则会自动预配该组的所有成员。
- 点击选择。
- 点击分配。
2.5、启用自动预配
下一步是配置 Azure AD 以自动将用户预配到 Cloud Identity 或 Google Workspace:
- 在左侧菜单中,点击管理 > 预配。
- 选择修改预配。
- 将预配状态设置为开启。
- 在设置下,将范围设置为以下任一项:
- 如果已配置用户分配,则设置为仅同步分配的用户和组。
- 否则,设置为同步所有用户和组。
- 如果未显示用于设置范围的框,请点击保存并刷新页面。
- 点击保存。
Azure AD 启动初始同步。根据目录中的用户和群组数量,此过程可能需要几分钟或几小时的时间。可以刷新浏览器页面,在页面底部查看同步状态,或者在菜单中选择审核日志以查看更多详细信息。
初始同步完成后,Azure AD 会定期将 Azure AD 中的更新传播到 Cloud Identity 或 Google Workspace 帐号。
如果同步在五分钟内未启动,则可以通过执行以下操作强制启动:
- 将预配状态设置为关闭。
- 点击保存。
- 将预配状态设置为开启。
- 点击保存。
- 勾选重启预配。
- 点击保存。
- 点击是,确认重启同步。
如果仍未启动同步,请点击测试连接以验证是否已成功保存凭据。
同步完成后,可以在Google Workspace里查看到从Azure AD中同步过来的账户。
三、配置 Azure AD 以进行单点登录
虽然现在所有相关的 Azure AD 用户都已自动预配到 Cloud Identity 或 Google Workspace,但还无法使用这些用户登录。若要允许用户登录,还需要配置单点登录。
3.1、创建企业应用
创建第二个企业应用来处理单点登录:
- 在 Azure 门户中,转到 Azure Active Directory > 企业应用。
- 点击新建应用。
- 搜索 Google Cloud,然后点击结果列表中的 Google Cloud/G Suite Connector by Microsoft。
- 将应用的名称设置为 Google Cloud。
- 点击 创建。
- 添加应用可能需要几秒钟的时间。然后,会被重定向到标题为 Google Cloud – 概览 (Google Cloud – Overview) 的页面。
- 在左侧菜单中,点击管理 > 属性。
- 将启用以供用户登录设置为是。
- 请将需要使用用户分配设置为是,除非希望允许所有用户使用单点登录。
- 点击保存。
3.2、配置用户分配
如果只有某部分用户需要访问 Google Cloud,则可以选择通过向特定用户或用户群组分配企业应用来限定允许登录的那部分用户。
如果之前将需要使用用户分配设置为否,则可以跳过以下步骤。
- 在左侧菜单中,点击管理 > 用户和组。
- 点击添加用户。
- 选择用户和组/未选择内容。
- 选择要允许使用单点登录的用户或组。
- 点击选择。
- 点击分配。
3.3、配置 SAML 设置
要使 Cloud Identity&Google Workspace 能够使用 Azure AD 进行身份验证,必须调整某些设置:
- 在左侧菜单中,点击 Manage > Single sign-on。
- 在投票屏幕上,点击 SAML 卡片。
- 在 Basic SAML Configuration 卡片上,点击 edit 图标。
- 在 Basic SAML Configuration 对话框中,输入以下设置:
- Identifier (Entity ID):google.com
- Reply URL:https://www.google.com/
- Sign on URL:https://www.google.com/a/PRIMARY_DOMAIN/ServiceLogin?continue=https://console.cloud.google.com/,注意将 PRIMARY_DOMAIN 替换为 Cloud Identity 或 Google Workspace 帐号使用的主域名。
- 点击 Save,然后点击 X 关闭该对话框。
- 在 SAML Signing Certificate 卡片上,找到标记为 Certificate (Base 64) 的条目,然后点击 Download 将该证书下载到本地计算机。
- 在 Set up Google Cloud 卡片上,查找 Login URL。稍后需要使用此网址。
- 在 Attributes & Claims 卡片上,点击 edit 图标。
- 删除 Additional claims 下列出的所有声明。可以通过点击 … 按钮并选择 Delete 来删除记录。
- 现在,Attributes & Claims 列表如下所示:
- 点击 X 关闭该对话框。
四、配置 Google Workspace 帐号以进行单点登录
4.1、配置Google Workspace账号的单点登录
现在已准备好 Azure AD 进行单点登录,接下来可以在 Cloud Identity 或 Google Workspace 中启用单点登录:
- 打开管理控制台,然后使用超级用户登录。
- 在菜单中,点击展开,然后转到安全性 > 身份验证 > 第三方身份提供商的单点登录服务。
- 点击添加单点登录配置文件。注意:请勿使用添加 SAML 配置文件按钮。
- 将设置采用第三方身份提供商的单点登录设置为已启用。
- 输入以下设置:
- 登录页面网址:输入 Azure 门户的 Set up Google Cloud 卡片中的 Login URL。
- 退出页网址:https://login.microsoftonline.com/common/wsfederation?wa=wsignout1.0
- 更改密码网址:https://account.activedirectory.windowsazure.com/changepassword.aspx
- 在验证证书下,点击上传证书,然后选择先前下载的令牌签名证书。
- 点击保存。
更新 Automation 组织部门的 SSO 设置以停用单点登录:
- 在管理 SSO 配置文件分配下方,点击管理。
- 展开组织部门,然后选择 Automation 组织部门。
- 将 SSO 配置文件分配从组织的第三方 SSO 配置文件更改为无。
- 点击保存。
至此已在 Azure AD 和 Google Workspace 中都完成了单点登录配置,接下来可以进行验证了。
Validation(如何验证)
可以通过以下两种方式访问通过Azure AD单点登录Google Cloud:
- 通过直接打开。
- 通过 Microsoft “我的应用” 门户 https://myapps.microsoft.com/中的应用列表。
一、直接访问https://console.cloud.google.com
- 选择已预配到 Cloud Identity 或 Google Workspace 且未被分配超级用户权限的 Azure AD 用户。由于具有超级用户权限的用户始终必须使用 Google 凭据登录,因此不适合测试单点登录。
- 打开新的浏览器窗口,然后转到 https://console.cloud.google.com/。
- 在显示的“Google 登录”页面中,输入用户的电子邮件地址,然后点击下一步。
- 自动重定向到 Azure AD 并将看到另一个登录Microsoft的提示。 输入用户的电子邮件地址,然后点击下一步。
- 输入密码。
- 成功进行身份验证后,Azure AD 应将重定向回“Google 登录”。由于这是首次使用此用户登录,因此系统会询问是否接受 Google 服务条款和隐私权政策。
- 如果同意这些条款,请点击接受。
- 将被重定向到 Google Cloud 控制台,Google Cloud 控制台会要求确认偏好设置并接受 Google Cloud 服务条款。
- 如果同意这些条款,请选择是,然后点击同意并继续。
- 点击页面左上角的头像图标,然后点击退出登录。
- 将被重定向到 Azure AD 页面,确认已成功退出。
二、通过 Microsoft “我的应用” 门户 https://myapps.microsoft.com/中的应用列表
- 选择已预配到 Cloud Identity 或 Google Workspace 且未被分配超级用户权限的 Azure AD 用户。由于具有超级用户权限的用户始终必须使用 Google 凭据登录,因此不适合测试单点登录。
- 打开新的浏览器窗口,然后转到Microsoft 门户 https://myapps.microsoft.com/。
- 打开新的浏览器窗口,点击应用图标Google Cloud。
- 在新的浏览器窗口中登录,会使用Azure AD验证。
- 验证成功后,跳转到Google Cloud页面。
- 注销后,将重定向到 Azure AD 页面,确认已成功退出。
Discussion/Analysis(讨论、分析)
一、Azure AD的”我的应用”门户中还可以集成更多的Google应用并配置单点登录。
下表列出了常见的 Google 服务、Azure AD 中对应的名称,以及可用于实现 SSO 的链接。
对于要添加到 Azure AD 的“我的应用”门户的每项 Google 服务,请创建一个新的企业应用:
- 在 Azure 门户中,转到 Azure Active Directory > 企业应用。
- 点击新建应用。
- 如之前,还是选择Google Cloud / G Suite Connector by Microsoft。
- 根据需要自定义应用的名称,然后点击创建。
- 选择属性。
- 将徽标更改为表中链接的文件。
- 点击保存。
- 在左侧菜单中,选择单一登录。
- 选择已链接。
- 输入表中列出的网址,例如 http://docs.google.com/a/DOMAIN。
- 将 DOMAIN 替换为 Cloud Identity 或 Google Workspace 帐号的主域名,例如 example.com。
- 点击保存。
请注意,不必在应用中配置基于 SAML 的单点登录。所有单点登录操作均由之前为其创建单点登录的应用进行处理。
如果希望只有一部分用户可以在 Azure AD 的“我的应用”门户中看到链接,请按以下方式配置用户分配:
- 在左侧菜单中,选择属性。
- 将需要使用用户分配设置为是。
- 点击保存。
- 在左侧菜单中,点击管理 > 用户和组。
- 点击添加用户。
- 选择用户。
- 选择要预配的用户或组。如果选择组,则系统会预配该组的所有成员。
- 点击选择。
- 点击分配。
- 可能需要几分钟才会在“我的应用”门户中显示链接。
- 点击Google Docs应用图标,SSO到Google文档。
Summary(总结)
一、可以通过联合Cloud Identity或Google Workspace与外部身份提供商 (IdP)(如Azure AD),在访问Google的各个服务和产品时,重定向到Azure AD等外部IdP进行身份验证。
- 可以通过打开网址或Azure AD我的应用门户中的应用来访问 Google 服务,Google 及其服务将充当服务提供商。
- 系统显示 Google 登录屏幕,提示输入 Google 身份的电子邮件地址。
- 被重定向到 Azure AD(充当 IdP)。
- 登录 Azure AD。
- Azure AD 重定向到最初尝试访问的 Google 服务。