Google Workspace を IdP とし、Azure AD にサインイン(SSO)する

# はじめに
Azure Active Directory(Azure AD)とGoogle Workspace(旧GSuite)のアカウント連携を調べると、
「Azure ADをIdPとし、Google Workspaceにサインイン(SSO)する」というドキュメントがほとんどです。

※ちなみに上記パターンの設定手順を一つ一つ詳細に解説したおすすめ記事はこちら
https://qiita.com/Shinya-Yamaguchi/items/f90a70a035c243b25e9d

じゃあ逆のパターン「Google WorkspaceをIdPとし、Azure ADにサインイン(SSO)する」はどうやって設定するの？ということで試してみました。

# 設定方法
今回はAzure AD B2Bの直接フェデレーションを使用して、Google WorkspaceとSAML 連携を行います。
直接フェデレーションは2020年12月現在でプレビュー機能となります。
詳細については下記のドキュメントを参照してください。
https://docs.microsoft.com/ja-jp/azure/active-directory/external-identities/direct-federation

### 作業概要および前提条件
1. SAML メタデータの取得(Google Workspace側)
2. 直接フェデレーションの設定(Azure AD側)
3. SAML アプリケーション設定(Google Workspace側)
4. ゲストユーザーの招待(Azure AD側)
5. 動作確認

※Google Workspaceの契約は終了し管理者権限を保持していることが前提

### SAML メタデータの取得(Google Workspace側)
1. Google Workspaceの管理者ページ (https://admin.google.com) にログインし、「セキュリティ」⇒「SAML アプリケーションに対するシングル サインオン（SSO）の設定」に進む
![googleadmin1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/7693b822-c8ec-1dac-369e-d5307fc20dbc.png)
![googleadmin2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/aa1f6ace-c66f-0737-0da3-a43398de2238.png)

2. 画面下の「メタデータをダウンロード」をクリックし、SAML メタデータ(GoogleIDPMetadata.xml)をローカルに保存する
![googleadmin3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/da55a7b4-bde8-e239-59ac-751b66633e28.png)

### 直接フェデレーションの設定(Azure AD側)
1. Azure AD ポータル (https://aad.portal.azure.com/) にログインし、「Azure Active Directory」⇒「External Identities」⇒「すべての ID プロバイダー」に進み、「新しい SAML/WS-Fed IdP」をクリックする
![azuread1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/18793798-ad1c-5d4b-5173-d38b4f54892a.png)
![azuread2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/82145f5e-01ac-5276-de8e-3fd2471ed225.png)
![azuread3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/2730c7f0-4b8e-11a4-f8d8-86f20fb3ed3e.png)


2. 新しい SAML/WS-Fed IdP登録画面にて、以下の情報を入力および選択し「保存」をクリックする

* ID プロバイダー プロトコル：「SAML」を選択する
* フェデレーション IdP のドメイン名：Google Workspaceに登録したドメイン名を入力する
* メタデータを設定する方法を選択します：「メタデータファイルの解析」を選択する
* メタデータ ファイル：ダウンロードしたメタデータファイル(GoogleIDPMetadata.xml)を選択し「解析」ボタンをクリックする

![azuread4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/3ccb7d3d-473a-dd3a-adca-7a49d6bd7b37.png)

### SAML アプリケーション設定(Google Workspace側)
1. Google Workspaceの管理者ページ (https://admin.google.com) にログインし、「アプリ」⇒「SAML アプリ」をクリックする
![googleadmin4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/04527104-04f7-6be8-3b72-c073cd1ba2ef.png)
![googleadmin5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/c7464722-231d-e64f-919f-1f36e276bd9e.png)

2. ウェブアプリとモバイルアプリ画面にて「アプリを追加」⇒「アプリを検索」をクリックする
![googleadmin6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/cb0bb50d-2e42-5898-e66a-727a32df3e3b.png)

3. アプリの検索画面にてアプリ名「Microsoft」を検索し「Microsoft Office 365」を選択する
![googleadmin7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/2c0d07ec-acc5-8332-f609-e1610747fb77.png)

4. Google ID プロバイダの設定はすでに完了しているので、そのまま「続行」をクリックする
![googleadmin8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/c7a4bbc1-7a0a-66bb-1c8e-28131bf5522b.png)


5. サービスプロバイダの詳細はデフォルトのままで「続行」をクリックする
![googleadmin9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/4517ff86-4a1e-2971-9718-d70f2e5e846d.png)

6. 属性のマッピングで下記のマッピングを追加し「完了」をクリックする
![googleadmin10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/e7968b37-1825-e5d6-7014-d7634bea9ca7.png)
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`

7. アプリケーションの詳細画面にて「ユーザーアクセス」をクリックし、サービスのステータスを「オン (すべてのユーザー)」に変更し、「保存」をクリックする
![googleadmin11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/8a1a41ab-d41a-c035-8814-931e58d221ea.png)
![googleadmin12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/1dfa1164-4ef8-199a-1acc-8bd2724bd032.png)

### ゲストユーザーの招待(Azure AD側)
1. Azure AD ポータル (https://aad.portal.azure.com/) にログインし、「Azure Active Directory」⇒「ユーザー」⇒「すべてのユーザー」⇒「新しいゲストユーザー」をクリックする
![azuread5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/2d812ad9-c6f0-ea4d-8231-0caada2aec32.png)
![azuread6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/df500f7d-2fc4-4950-10a8-261dbe9077f4.png)

2. 新しいユーザー画面にて、招待するユーザー情報を入力し「招待」をクリックする
![azuread7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/118d7910-8d2e-c0c7-b8ea-b689eee6e154.png)

### 動作確認
実際にGoogle Workspaceにフェデレーションされるかを検証します

1. マイアプリ (https://myapps.microsoft.com/?tenantid=[テナントID]) にアクセスし、ユーザー名に招待したGoogle Workspaceユーザーを入力する
![test1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/a8de486b-dd83-da70-e5e9-8a78612dd897.png)

2. Googleの認証画面に自動的に遷移するので、Google Workspaceユーザーで認証する
![test2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/44388724-04a2-c160-687e-815f04397b06.png)

3. マイアプリが正しく表示されていることを確認する
![test3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41379/1d107912-c870-447a-9032-5a259493fc42.png)