Entra ID × Workforce Identity Federation で実現するGemini Enterprise / NotebookLM Enterprise SSO完全構築ガイド

はじめに

「Entra IDアカウントのまま、GCP/Google側にユーザーを同期せずに、GeminiとNotebookLMをSSOで使いたい」

これはMicrosoft 365中心の企業がGoogle AIツールを採用する際に必ず直面する要件です。本記事では Workforce Identity Federation(WIF) を使ってこれを実現する構成を、システムアーキテクチャから構築手順、よくある疑問まで徹底解説します。


システムアーキテクチャ全体像

graph TB subgraph "Microsoft環境" USER["👤 社員\n(Entraアカウント)"] ENTRA["Microsoft Entra ID\n(OIDC IdP)"] CA["条件付きアクセス\nポリシー"] SPO["SharePoint Online\n(コンテンツソース)"] MIP["MIP感度ラベル\n暗号化ファイル"] end subgraph "Google Cloud環境" WIF["Workforce Identity\nFederation\n(Workforce Pool)"] STS["Security Token\nService(STS)"] IAM["Cloud IAM\n(ロール割り当て)"] subgraph "Gemini Enterprise" GE["Gemini Enterprise\n(Agentspace)"] NLM["NotebookLM\nEnterprise"] end CONNECTOR["SharePoint\nコネクター"] VSEARCH["Vertex AI Search\n(インデックス)"] end USER -->|"① アクセス要求"| GE GE -->|"② OIDC認証リダイレクト"| ENTRA ENTRA -->|"③ CA評価(MFA/デバイス)"| CA CA -->|"④ IDトークン(JWT)発行"| WIF WIF --> STS STS -->|"⑤ 属性マッピング+\n短命GCPトークン発行"| IAM IAM -->|"⑥ ロールに基づきアクセス許可"| GE IAM --> NLM SPO -->|"ACL付きクロール"| CONNECTOR CONNECTOR -->|"コンテンツ+ACL取り込み"| VSEARCH VSEARCH -->|"パーミッションアウェア検索"| GE VSEARCH --> NLM MIP -.->|"⚠ 暗号化ファイルは\n読み取り不可"| CONNECTOR style USER fill:#0078d4,color:#fff style ENTRA fill:#0078d4,color:#fff style CA fill:#0078d4,color:#fff style SPO fill:#0078d4,color:#fff style MIP fill:#cc0000,color:#fff style WIF fill:#4285f4,color:#fff style STS fill:#4285f4,color:#fff style GE fill:#34a853,color:#fff style NLM fill:#34a853,color:#fff style VSEARCH fill:#fbbc05,color:#000

認証フローの詳細

sequenceDiagram actor User as 👤 社員(Entraアカウント) participant App as Gemini Enterprise
/ NotebookLM participant Entra as Microsoft Entra ID participant CA as 条件付きアクセス participant WIF as Workforce Identity
Federation(STS) participant IAM as Cloud IAM User->>App: ① アクセス App->>Entra: ② OIDC認証リダイレクト
(Workforce Pool Providerへ) Entra->>CA: ③ CAポリシー評価 Note over CA: MFA・準拠デバイス
リスクポリシー適用 CA-->>Entra: ④ 認証許可 Entra-->>WIF: ⑤ IDトークン(JWT)送信
(sub, email, groups等) WIF->>WIF: ⑥ 属性マッピング
google.subject = assertion.email WIF-->>App: ⑦ 短命GCPアクセストークン発行 App->>IAM: ⑧ IAMロール確認 IAM-->>App: ⑨ アクセス許可(ロール付き) App-->>User: ✅ Gemini / NotebookLM 利用可能

構築手順

前提条件

項目内容
Microsoft側Entra ID P1以上(CA使用の場合)、SharePoint Online
Google側GCPプロジェクト(課金有効)、Gemini Enterprise or NotebookLM Enterpriseライセンス
権限GCP プロジェクトオーナー、Entraグローバル管理者またはアプリケーション管理者

Step 1: GCPプロジェクトの準備

1
2
3
4
# 必要なAPIを有効化
gcloud services enable iam.googleapis.com
gcloud services enable cloudresourcemanager.googleapis.com
gcloud services enable iamcredentials.googleapis.com

Step 2: Workforce Pool の作成

1
2
3
4
5
6
# Workforce Pool の作成
gcloud iam workforce-pools create "entra-id-pool" \
  --organization="YOUR_ORG_ID" \
  --location="global" \
  --display-name="Entra ID Workforce Pool" \
  --description="Microsoft Entra ID users for Gemini Enterprise"

Step 3: Workforce Pool Provider(OIDC)の作成

Entra IDのテナント情報を使って OIDC プロバイダーを登録します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Entra ID の OIDC エンドポイント
# https://login.microsoftonline.com/{TENANT_ID}/v2.0

gcloud iam workforce-pools providers create-oidc "entra-id-provider" \
  --workforce-pool="entra-id-pool" \
  --location="global" \
  --display-name="Microsoft Entra ID" \
  --issuer-uri="https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0" \
  --client-id="YOUR_ENTRA_APP_CLIENT_ID" \
  --attribute-mapping="google.subject=assertion.email.lowerAscii(),google.display_name=assertion.name,google.groups=assertion.groups,attribute.email=assertion.email" \
  --attribute-condition="assertion.email.endsWith('@yourdomain.com')"

ポイント: google.subject には必ず小文字のメールアドレスを使用してください。大文字が混在するとライセンス割り当てに失敗します。


Step 4: Entra ID アプリ登録

Azure PortalでOIDC用のアプリを登録します。

  1. Azure Portal → Entra ID → アプリの登録 → 新規登録
  2. リダイレクトURI(Web)を追加:
    https://auth.cloud.google.com/authorize
    
  3. クライアントシークレットを作成し、GCP側の --client-secret に設定
  4. トークン構成 → 省略可能な要求 → IDトークンに以下を追加:
    • email
    • family_name
    • given_name
    • groups(グループクレームの場合は「グループ」タブで設定)
  5. APIのアクセス許可openid, email, profile を付与

Step 5: IAMロールの割り当て

Workforce Pool のユーザーに Gemini Enterprise 用のロールを付与します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# Gemini Enterprise ユーザーロールの付与(個人)
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member="principal://iam.googleapis.com/locations/global/workforcePools/entra-id-pool/subject/[email protected]" \
  --role="roles/cloudaicompanion.user"

# グループ単位での付与(推奨)
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member="principalSet://iam.googleapis.com/locations/global/workforcePools/entra-id-pool/group/[email protected]" \
  --role="roles/cloudaicompanion.user"

# NotebookLM Enterprise ユーザーロール
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member="principalSet://iam.googleapis.com/locations/global/workforcePools/entra-id-pool/group/[email protected]" \
  --role="roles/cloudnotebooklm.user"

Step 6: Gemini Enterprise の IdP 設定

Google Admin Console または Gemini Enterprise 管理画面で以下を設定します。

  1. Gemini Enterprise 管理コンソール → Identity Provider → Third-party Identity を選択
  2. Workforce Pool 名と Provider 名を入力
  3. ユーザーのログインURLとして以下が生成されます:
    https://gemini.cloud.google.com/
    
    (初回アクセス時にEntra IDへリダイレクトされる)

Step 7: SharePoint Online コネクターの設定

Gemini Enterprise / Agentspace の管理画面でSharePoint接続を設定します。

  1. Agentspace 管理コンソール → データソース → Microsoft SharePoint Online を追加
  2. Entra IDにSharePoint用アプリを登録し、以下のGraph API権限を付与:
    • Sites.Read.All(読み取り専用の場合)または Sites.Selected(特定サイトのみ)
    • Files.Read.All
    • User.Read.All(ACL連携用)
  3. クローリングスケジュールとACL同期を設定
  4. インデックス構築完了後、Gemini Enterprise / NotebookLM Enterprise から利用可能

よくある疑問への回答

Q1. Entraの条件付きアクセス(CA)でアクセス制御できるか?

できます。 WIF経由のアクセスであっても、ユーザーはまずEntra IDで認証を行うため、その時点でCAポリシーが評価されます。

制御できる内容詳細
MFA要求✅ Gemini/NotebookLM アクセス時にMFAを強制可能
準拠デバイス要件✅ Intuneで管理された準拠デバイスのみ許可
場所ベース制御✅ 特定IPレンジや国からのみアクセス許可
リスクベース制御✅ サインインリスク・ユーザーリスクに基づく制御
アプリ単位の制御✅ Entraに登録したGoogle Cloud用アプリに対してCA適用

注意: CAはEntra IDの認証時点で適用されます。Google Cloud側の細かいサービス制御(どのデータソースにアクセスできるか等)はWIF AttributeConditionやIAMポリシーで制御します。両方を組み合わせることで多層防御が実現できます。


Q2. Google Workspaceユーザーライセンスは必要か?

データソースがSharePoint Onlineのみなら、Google Workspaceライセンスは不要です。

構成Workspaceライセンス
Google Drive/Docsをデータソースに含む必要
SharePointのみをデータソースとして使用不要(WIF + Entra ID のみでOK)
Google DriveとSharePoint両方を使用必要

必要なライセンスは以下のみです:

  • Gemini Enterprise または NotebookLM Enterprise サブスクリプション
  • GCPプロジェクト(課金有効)

補足: Cloud Identity(無料版)の登録が技術的に必要かどうかはGoogle営業への確認を推奨します。多くの実装事例ではWIFのみで動作しています。


Q3. NotebookLM EnterpriseでSharePoint Online(SPO)をソース元に指定できるか?

できます(Public Preview)。 MicrosoftSharePoint OnlineはGemini Enterprise / Agentspaceの公式コネクターとして提供されており、NotebookLM Enterpriseのソース元として指定可能です。

対応コンテンツ:

  • ドキュメント(Word、PowerPoint、Excel、PDFなど)
  • SharePointリスト
  • サイトコレクション

現在の制限: 2025年初頭時点でPublic Previewステータスです。増分同期時に古いコネクター設定でファイルの重複が発生する既知の問題があります(回避策:フル同期を手動実行)。


Q4. SPO内のファイルがMIPで暗号化されているとNotebookLMのソース元に指定してもヒットしないか?

高確率でヒットしません(読み取り不可)。

MIP感度ラベルによる暗号化は、Microsoft Rights Management Service(RMS)によって保護されており、MIPクライアントまたはMicrosoft 365サービス以外は復号できません。GoogleのSharePointコネクターはEntraアプリとしてGraph API経由でアクセスしますが、RMS復号権限を持てないため、暗号化が有効なファイルは取り込み対象外になります

ラベル設定NotebookLMでの扱い
暗号化なし(分類・視覚マーキングのみ)✅ 読み取り・インデックス化可能
暗号化あり(MIP/RMS保護)❌ 読み取り不可(高確率)

対策案

  • 外部連携を想定するコンテンツは「暗号化なし」の感度ラベルを使用する
  • もしくは、暗号化済みファイルはSharePoint以外のソース(暗号化解除後にアップロードしたバケット等)を別途用意する

重要: Googleの公式ドキュメントにはこの挙動が明示されていません。導入前にPoC(概念実証)での動作確認を強く推奨します。


Q5. SPOをソース元にしたとき、検索インデックスはGoogle側で作られるか?

Googleの Vertex AI Search 側でインデックスが構築されます。

graph LR SPO["SharePoint Online\n(コンテンツ)"] CONN["Google SharePoint\nコネクター\n(定期クロール)"] VSEARCH["Vertex AI Search\n(Google側インデックス)"] NLM["NotebookLM Enterprise\n/ Agentspace"] SPO -->|"ACL付きコンテンツ取得"| CONN CONN -->|"チャンキング・ベクトル化"| VSEARCH VSEARCH -->|"RAG検索・参照"| NLM style VSEARCH fill:#fbbc05,color:#000 style NLM fill:#34a853,color:#fff
  • クロール: Googleコネクターが定期的にSPOをクロール(スケジュール or Webhookによるリアルタイム)
  • インデックス: Vertex AI SearchによるGoogle品質のセマンティック検索インデックスが構築される
  • 検索精度: Microsoft SharePointの検索エンジンではなく、Google品質のRAG(検索拡張生成)が適用されるため、精度向上が期待できる
  • データ保管: ユーザーのGCPプロジェクト内に保存。Googleの他サービスとは共有されない

Q6. Entraユーザーのアクセス権限に応じてSPO内の参照できる範囲をコントロールできるか?

できます。パーミッションアウェア(Permission-aware)検索として実装されています。

仕組み

graph TB subgraph "データ取り込み時" SPO2["SharePoint Online"] ACL["SharePointのACL情報\n(誰がどのファイルを参照可能)"] IDX["Vertex AI Search\n(コンテンツ+ACLをインデックス化)"] SPO2 -->|"コンテンツ"| IDX ACL -->|"アクセス権情報"| IDX end subgraph "検索時" USER2["👤 ユーザー\n(WIF認証済み)"] FILTER["ACLフィルタリング\n(ユーザーのIDに基づき\nアクセス可能ドキュメントのみ返却)"] RESULT["検索結果\n(権限のあるもののみ)"] USER2 -->|"検索クエリ"| FILTER FILTER -->|"権限チェック"| IDX IDX --> RESULT end style ACL fill:#0078d4,color:#fff style FILTER fill:#4285f4,color:#fff

前提条件

  1. WIFの google.subject をユーザーのメールアドレス(UPN)に設定し、SharePointのユーザーIDと一致させる
  2. コネクターのアプリ(Entraアプリ登録)に User.Read.All 権限を付与し、ACL情報を取得できるようにする
  3. コネクター設定で「アクセス制御の同期」を有効化

SharePoint側のアクセス権(サイト・ライブラリ・フォルダー・ファイル単位)がGoogle側のインデックスに連携されるため、Entraのグループ管理をそのままGoogleのコンテンツアクセス制御として活用できます。


Q7. Agentspaceも使えるか?

使えます。 Google AgentspaceはGemini Enterpriseに統合されており、WIF + Entra ID構成でそのまま利用可能です。

名称整理:「Antigravity」はGoogle内部での旧称または別プロジェクト名です。現在の正式名称は Google Agentspace(2024年12月GA)です。

Agentspaceの主な機能

機能内容
エンタープライズ検索SharePoint、Confluence、Jira、Salesforce等100以上のコネクター
AIエージェントマルチステップタスクの自動実行
パーミッションアウェア各ソースのACLを尊重した結果返却
NotebookLM統合Agentspace内でNotebookLM Enterpriseの機能を利用可能

WIF対応の設定は cloud.google.com/agentspace/docs/configure-identity-provider に公式ドキュメントがあります。Gemini EnterpriseのWIF設定と共通の設定を使いまわすことができます。


Q8. 課金体系はどうなるか?

ライセンス費用

製品価格備考
NotebookLM Enterprise$9 /ユーザー/月単独購入可能
Gemini Enterprise(Agentspace含む)$25 /ユーザー/月NotebookLM機能含む
Gemini Enterprise Plus$45 /ユーザー/月高度なエージェント機能含む
Workforce Identity Federation無料GCP IAMの機能、追加コストなし

GCPインフラ費用

WIF自体は無料ですが、バックエンドのVertex AI Search使用に応じてGCPの従量課金が発生します。具体的な費用は取り込みデータ量・クエリ数によって変動します。GCPコンソールの料金計算ツールまたはGoogleの営業担当者に見積もりを依頼することを推奨します。

1ライセンスあたりの購入上限

  • 1回の購入:最大5,000ライセンス
  • 5,000ライセンス超:Googleとの個別契約が必要

まとめ:構成評価チェックリスト

項目結論備考
EntraアカウントでのSSO(ID同期なし)✅ 実現可能WIF + OIDC/SAMLで対応
Entra条件付きアクセスでの制御✅ 実現可能認証フロー上でCA評価
Google Workspaceライセンス不要✅ 不要(SPOのみの場合)Google Drive連携時は必要
SPOをNotebookLMのソース元に設定✅ 可能(Public Preview)増分同期の既知バグあり
MIP暗号化ファイルの読み取り❌ 不可(高確率)PoCでの確認必須
検索インデックスがGoogle側で構築✅ Vertex AI Searchで構築Google品質のRAGが適用
Entraユーザー権限に応じたSPO制御✅ ACL連携で実現UPN/メールのマッピングが前提
Agentspaceの利用✅ 利用可能Gemini Enterpriseに統合
WIFの追加費用✅ 無料GCPインフラ費用は別途

導入時の推奨アクション

  1. PoC環境の構築: 本記事の手順でWIF + Entra ID SSO環境を検証用に構築
  2. MIP暗号化ファイルの動作確認: 暗号化ファイルがSPOコネクターで読み取れるかPoC内で必ず検証
  3. ACL同期の動作確認: 複数のSharePoint権限レベル(サイト・ライブラリ・フォルダー)でパーミッションアウェア検索が正しく動作するか確認
  4. Google営業への確認: Cloud Identity最低限要件の有無、GCPバックエンドコストの見積もり
  5. 条件付きアクセスポリシーの設計: Gemini Enterprise用Entraアプリに対するCAポリシーを設計・テスト

本記事の情報は2026年4月時点のものです。Google CloudおよびMicrosoft Entra IDの仕様は変更される可能性があります。最新情報は各公式ドキュメントを参照してください。