点击关注我的Telegram群组和微信公众号

MENU

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

2019 年 03 月 10 日 • 阅读: 3060 • 技术,教程

本篇文章是基于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.srf
Entity 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设置

Map Attributes

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

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

Azure Active Directory设置

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

onmicrosoft

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中,注意复制证书时不要带空格和换行

dfs-pf-samlp.xml

  • 导入文件至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登陆设置结束。

最后编辑于: 2021 年 03 月 30 日
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码