Azure AD SSO with Google Cloud Identity
Microsoft AAD和Google Cloud Identity 都是企业常用的目录服务,之前探讨过AD作为Identity provider采用ADFS实现SSO的配置。这里介绍Google Cloud Identity 作为Identity provider,ADD通过SAML实现SSO的实现过程。
一 SAML介绍
安全断言标记语言(英语:Security Assertion Markup Language,简称SAML)是一个基于XML的开源标准数据格式,它在当事方之间交换身份验证和授权数据,尤其是在身份提供者和服务提供者之间交换。SAML是OASIS安全服务技术委员会的一个产品,始于2001年。SAML 解决的最重要的需求是网页浏览器单点登录(SSO)。
SAML包含三个元素:
- Service Provider,在本文中是Azure的各种服务,比如Azure的Portal
- User,指用户的浏览器
- Identity Provider,在本文环境中指的是Google Cloud Identity 的用户管理系统
上图描述了通过SAML框架,如何实现用户的Azure App基于Google Cloud Identity 的单点登录。
二 环境说明
1 Google Cloud Identity 用户管理系统包括
- 用户域名:Jameswei.net
- 用户:test@jameswei.net
- SAML认证的Web application
2 Azure AD系统包括
- External identity provider SAML/WS IdP – Google Cloud Identity (jameswei.net)
- Guest用户 – test@jameswei.net
三 Google Cloud Identity 配置
1 域名和用户
在Google Cloud Identity 用户管理中心https://admin.google.com中,已经添加好自定义域名jameswei.net:
添加相应的用户test@jameswei.net:
2 添加SAML Web APP
在APP中添加Web APP:
选择添加自定义SAML应用
(1)填写应用详情:
(2)在Google身份提供商详细信息处,下载IdP元数据:
(3)服务提供商详细信息处,根据微软AAD联合认证文档,填写ACS和EntityID信息:
其中EntityID中需要Tenants ID,这个ID在AAD中获取:
(4)在属性映射中,添加如下映射:
三个映射关系为:
Basic Information Primary Email: IDPEmail*
Basic Information Primary Email: urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
Basic Information Primary Email: http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
完成后,相应开的对所有用户的访问权限:
四 Azure AD配置
1 添加External Identity Provider
在Azure AD上选择外部标识:
在所有标识提供者处添加SAML/WS-联合身份认证IdP:
填写相关的信息:
点击文件后,选择相应的文件,必须的配置项会自动显示通过:
点击保存,就配置成功了:
2 邀请用户
在用户中点击新来宾用户:
输入邮箱信息,点击邀请:
3 用户激活
创建完用户后,点击进用户的配置文件中,可以看到颁发者是本AAD,并还没有接受邀请。在已接受邀请处点击管理:
会获得邀请的URL:
打开无痕页面,用获得的URL进行登录,此时的登录页面是Google的页面:
登录成功后,进入MyApps页面:
五 查看用户信息
1 Google Cloud Identity 上相关信息
在Google Cloud Identity 上,可以看到用户登录成功的记录:
2 AAD相关信息
在AAD上,可以看到邀请已经接受邀请,且颁发者以及变成Google的issuer:
3 登录Azure Portal
选择Sign-in options:
选择Sign in to an organization
域名填写AAD的tenent域名:
输入test@jameswei.net的用户名和密码后,登录Azure Portal:
六 总结
在以及使用了Google Cloud Identity 的用户,可以采用Azure AD和Google做联合认证的方式,实现单点登录。