Google Worksapce をIdPにしてMicrosoft365にログインする

目次

はじめに

アカウント管理や認証の管理は1か所で統合管理できるのが望ましいです。システム管理者の負荷だけでなく、利用者はサービスごとにIDやパスワードを管理するのはなかなかの負担になると思います。色々ありまして直近で対応しましたので記事にしていきたいと思います。

Google Workspace IdP

前提条件

本作業を行うにあたり、以下の前提条件を守っていただく必要がございます。GoolgeからMicrosoft365へアカウントをプロビジョニングしていただくことで処理が簡単になりますが、この記事では先にMicrosoft365にユーザーが作成されてしまっている前提で進めていきます。

  • Google WorkspaceとMicrosoft365で同一ドメインを登録して所有権確認を完了する
  • GoogleおよびMicrosoft365の全体管理者アカウントで操作が可能
  • Microsoft Graph Powershellが実行できる環境を用意する

ImmutableIDの登録

事前にMicrosoft365管理コンソールでユーザーが作成されている場合、ImmutableIDに値を登録する必要があります。値の登録にはPowershellの利用が必須になります。

この作業にはEntra IDの特権管理者アカウントが必要です。

利用するコマンド

本設定で利用するコマンドはUpdate-MgUserになります。下記はコマンド例です。

Connect-MgGraph -Scopes "User.ReadWrite.All"
Update-MgUser -UserId <メールアドレス> -OnPremisesImmutableId <メールアドレス>

Google Cloud Identityの情報を取得

この作業にはGoogle WorkspaceまたはCloud Identityの特権管理者アカウントが必要です。

Google Workspaceの管理コンソールにログインして、[セキュリティ]-[認証]ー[SMALアプリケーションによるSSO]にアクセスします。下記3つの値をコピーします。

  • SSOのURL
  • エンティティID
  • 証明書
Google Cloud Identity IdPパラメータ

サービスプロバイダ(Entra ID)の設定

Entra IDのログインをフェデレーションできるように設定します。利用するコマンドはNew-MgDomainFederationConfigurationです。

値の設定

前章で取得した値を基に、変数に初期値を登録します。

変数名
$DomainName利用するドメイン名
$FederatedIdpMfaBehaviorSupportsMfa:
この値は、IdP(Identity Provider)が多要素認証(MFA)をサポートしていることを示します。
EnforceMfaByFederatedIdp: (この例ではこちら)
この値は、MFAがIdPによって強制されることを示します。
$PassiveLogOnUrl前章で取得したSSOのURLを指定
$ActiveLogOnUri前章で取得したSSOのURLを指定
$SigningCertificate前章で取得した証明書の値を指定(改行は消してください)
$IssuerURI前章で取得したエンティティIDを指定
$LogOffUrihttps://accounts.google.com/logout(固定)
$PreferredAuthenticationProtocolwsFed:
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の設定を行います。

STEP
管理コンソールへのログイン

Google Workspaceの管理コンソールにログインして、[アプリ]-[ウェブアプリとモバイルアプリ]にアクセスします。

STEP
[アプリを追加]-[アプリを検索]をクリックします
アプリ追加
STEP
検索ウィンドウに「Office 365」と入力します。Microsoft Office 365 ウェブ(SAML)をマウスオーバーして出てくる[選択]をクリックします。
SPの検索
STEP
[続行]をクリックします
IdPの設定情報
STEP
[署名付き応答]にチェックをいれ、[続行]をクリックします
サービスプロバイダの詳細設定
STEP
[Basic Infomation]のプルダウンからPrimary Emailを選択して[完了]をクリックします
属性マッピング
STEP
ユーザーアクセスをクリックして、割り当てする組織を選択して[オン]にします
設定の有効化

ここまでの設定でEntra IDでのログインを試みるとGoogleのログイン画面にリダイレクトされ、Googleアカウントを使ってログインすることでMicrosoftへもログインできる状況かと思います。

まとめ

世の中にはEntra IDをIdPにして、Google Workspaceをシングルサインオンする設定方法はいっぱい転がっています。が、Google WorkspaceをIdPにしてEntra IDをシングルサインオンする方法は情報として少ないです。グループウェアはGoogle Workspaceだけど、OfficeソフトだけApps for Enterpriseを使ってますみたいな企業様もいらっしゃるとは思いますのでご参考になりましたら幸いです。

弊社では、サービスの新規導入、設計変更や運用のご支援を行っております。サービス提供ご希望のお客様は下記よりお問い合せください

目次