1. Leonn 的博客首页
  2. 教程

通过SAML设置G Suite和Office365之间的单点登录(SSO)

本篇文章是基于 IAmFrench 的设置进行翻译和补充。原文地址:天雨的博客

前言

Google Apps 和 Office365 都是功能强大并且完善的办公套件,但如果同时使用两个套件并且使用同一域名则不得不面对两个 ID 的问题,为了方便管理和使用,启用 SSO 使两套或者更多的系统使用同一账号 ID 是一个理想的选择。但如果从安全性以及统一管理角度考虑,企业或者组织应该减少使用 SSO。目前 G Suite 和 Office365 之间的 SSO 可以通过这些方式进行:

  1. 基于 SAML 设置
  2. 同时进行 Google Apps 和 Office 的 SSO 设置,这个选项下可以使用第三方 SSO 服务
  3. 基于 Azure Active Directory 设置

本文使用的方式是基于 SAML 的设置,但无论使用哪种方法都应该阅读微软和谷歌的相关文档进行基本了解,官方文档都没有给出对方侧平台的设置流程:
Tutorial: Azure Active Directory integration with G Suite
Office 365 cloud application

正文

添加域

本文略过这一步骤,你首先需要在 G Suite 和 Office365 的管理员后台添加域名并且完成验证以及解析。这里只提醒一下 SPF 解析只能有一条,如果使用了双平台则需要了解 SPF 多条解析时的规范写法。具体请看 RFC 规范,我的设置为:

v=spf1 include:spf.protection.outlook.com v=spf1 a mx include:_spf.google.com ~all

SAML 设置

  • 打开 Google Admin 后台,进入 App,进入 SAML App
  • 添加一个应用,在列表中搜索关键词后选择 Microsoft Office365
  • 设置界面中修改ACS URLEntity ID成如下设置(通常默认值和此一样,无需修改)
ACS URL: https://login.microsoftonline.com/login.srfEntity 
ID: urn:federation:MicrosoftOnline
  • 下一步,确认添加应用
  • 进入应用设置,点击Service Provider Detail
  • Signed Response启用,Name ID选择 Basic Information 和 Primary Email,Name ID Format选择 PERSISTENT
  • 进入 User Provisioning
  • 选择Set Up User Provisioning进行授权,登陆你的 Office365 管理员帐号后进行 Map Attributes 设置

通过SAML设置G Suite和Office365之间的单点登录(SSO)

  • 完成设置后自动返回到 Office365 SAML 页面,选择ACTIVATE PROVISIONING

至此,谷歌侧设置结束,但不要关掉页面,后面还有用

Azure Active Directory 设置

  • 保持你的 onmicrosoft 域名为主要(Primary)

通过SAML设置G Suite和Office365之间的单点登录(SSO)

Install-Module MSOnline
Import-Module MSOnline
$Msolcred = Get-credential
Connect-MsolService -Credential $MsolCred
  • $Msolcred = Get-credential后需要输入的凭证是 Office365 的管理员帐号和密码(此时应当是 onmicrosoft 的域帐号)
  • 从 Github 下载dfs-pf-samlp.xml文件
  • 从 GoogleIDPMetadata 文件中复制GOOGLESAMLID和证书到dfs-pf-samlp.xml中,注意复制证书时不要带空格和换行

通过SAML设置G Suite和Office365之间的单点登录(SSO)

  • 导入文件至 PowerShell 并且上传配置文件,设置自定义域名为捆绑域名
$wsfed = Import-Clixml dfs-pf-samlp.xml
Set-MsolDomainAuthentication -DomainName "{your-domain}" -FederationBrandName $wsfed.FederationBrandName -Authentication Federated -PassiveLogOnUri $wsfed.PassiveLogOnUri -ActiveLogOnUri $wsfed.ActiveLogonUri -SigningCertificate $wsfed.SigningCertificate -IssuerUri $wsfed.IssuerUri -LogOffUri $wsfed.LogOffUri -PreferredAuthenticationProtocol "SAMLP"
Get-MsolDomainFederationSettings -DomainName "{your-domain}" | Export-Clixml dfs-pf-samlp.xml
  • 至此,你已经应该已经可以通过命令查看到当前的 Azure 的 SSO 设置了
Get-MsolDomainFederationSettings -DomainName "{your-domain}" | Format-List *

至此,Office365 侧设置完成,全部 SSO 登陆设置结束。

本文来自投稿,不代表Leonn 的博客立场,如若转载,请注明出处:https://liyuans.com/2019/03/samlgsuiteoffice365sso.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

TG: PCCWGlobal
Mail: pccwbtn$gmail.com