はじめに
アカウント管理や認証の管理は1か所で統合管理できるのが望ましいです。システム管理者の負荷だけでなく、利用者はサービスごとにIDやパスワードを管理するのはなかなかの負担になると思います。色々ありまして直近で対応しましたので記事にしていきたいと思います。
前提条件
本作業を行うにあたり、以下の前提条件を守っていただく必要がございます。GoolgeからMicrosoft365へアカウントをプロビジョニングしていただくことで処理が簡単になりますが、この記事では先にMicrosoft365にユーザーが作成されてしまっている前提で進めていきます。
- Google WorkspaceとMicrosoft365で同一ドメインを登録して所有権確認を完了する
- GoogleおよびMicrosoft365の全体管理者アカウントで操作が可能
- Microsoft Graph Powershellが実行できる環境を用意する
ImmutableIDの登録
事前にMicrosoft365管理コンソールでユーザーが作成されている場合、ImmutableIDに値を登録する必要があります。値の登録にはPowershellの利用が必須になります。
利用するコマンド
本設定で利用するコマンドはUpdate-MgUserになります。下記はコマンド例です。
Connect-MgGraph -Scopes "User.ReadWrite.All" Update-MgUser -UserId <メールアドレス> -OnPremisesImmutableId <メールアドレス>
Google Cloud Identityの情報を取得
Google Workspaceの管理コンソールにログインして、[セキュリティ]-[認証]ー[SMALアプリケーションによるSSO]にアクセスします。下記3つの値をコピーします。
- SSOのURL
- エンティティID
- 証明書
サービスプロバイダ(Entra ID)の設定
Entra IDのログインをフェデレーションできるように設定します。利用するコマンドはNew-MgDomainFederationConfigurationです。
値の設定
前章で取得した値を基に、変数に初期値を登録します。
変数名 | 値 |
---|---|
$DomainName | 利用するドメイン名 |
$FederatedIdpMfaBehavior | SupportsMfa: この値は、IdP(Identity Provider)が多要素認証(MFA)をサポートしていることを示します。 EnforceMfaByFederatedIdp: (この例ではこちら) この値は、MFAがIdPによって強制されることを示します。 |
$PassiveLogOnUrl | 前章で取得したSSOのURLを指定 |
$ActiveLogOnUri | 前章で取得したSSOのURLを指定 |
$SigningCertificate | 前章で取得した証明書の値を指定(改行は消してください) |
$IssuerURI | 前章で取得したエンティティIDを指定 |
$LogOffUri | https://accounts.google.com/logout(固定) |
$PreferredAuthenticationProtocol | wsFed: WS-Federation プロトコルを使用します。 saml: SAML 2.0 プロトコルを使用します。(この例はこちら) unknownFutureValue: 将来の未知の値を示します。 |
実際にコマンドの実行例を見てみましょう。
# 接続 Connect-MgGraph -Scopes "Directory.AccessAsUser.All", "Domain.ReadWrite.All","User.ReadWite.All" # ドメイン名 $DomainName = "<ドメイン>" # フェデレーションサービス名(固定) $FederatedIdpMfaBehavior = "acceptIfMfaDoneByFederatedIdp" # GWS上のSSOのURLを記載 $PassiveLogOnUrl = "<SSOのURL>" $ActiveLogOnUri = "<SSOのURL>" # 証明書を貼り付け(改行は消してください。エラーになります) $SigningCertificate = "<証明書>" # GWS上のエンティティID $IssuerURI = "<エンティティID>" # ログアウトURL(固定) $LogOffUri = "https://accounts.google.com/logout" # プロトコル指定(固定) $PreferredAuthenticationProtocol = "saml" New-MgDomainFederationConfiguration -DomainId $DomainName ` -DisplayName $DomainName ` -FederatedIdpMfaBehavior $FederatedIdpMfaBehavior ` -PassiveSignInUri $PassiveLogOnUrl ` -ActiveSignInUri $ActiveLogOnUri ` -SigningCertificate $SigningCertificate ` -IssuerUri $IssuerURI ` -SignOutUri $LogOffUri ` -PreferredAuthenticationProtocol $PreferredAuthenticationProtocol ;
IDプロバイダ(Google)の設定
以下の手順でIdPの設定を行います。
ここまでの設定でEntra IDでのログインを試みるとGoogleのログイン画面にリダイレクトされ、Googleアカウントを使ってログインすることでMicrosoftへもログインできる状況かと思います。
まとめ
世の中にはEntra IDをIdPにして、Google Workspaceをシングルサインオンする設定方法はいっぱい転がっています。が、Google WorkspaceをIdPにしてEntra IDをシングルサインオンする方法は情報として少ないです。グループウェアはGoogle Workspaceだけど、OfficeソフトだけApps for Enterpriseを使ってますみたいな企業様もいらっしゃるとは思いますのでご参考になりましたら幸いです。