> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# エンタープライズ接続を使用して Auth0 アプリを Google Workspace に接続する方法

> Auth0 アプリ用に Google Workspace のエンタープライズ接続を設定して、ユーザーが Google の認証情報でログインできるようにします。

Auth0 アプリケーションを Google Workspace に接続すると、ユーザーは Google の認証情報でログインできるようになります。これを有効にするには、まず Google にアプリケーションを登録してから、Auth0 で Google Workspace のエンタープライズ接続を設定する必要があります。

<div id="prerequisites">
  ## 前提条件
</div>

始める前に、以下が必要です。

* [Auth0 にアプリケーションを登録する](/ja/docs/get-started/auth0-overview/create-applications)。

  * 適切な **Application Type** を選択します。
  * **Allowed Callback URL** に `{https://yourApp/callback}` を追加します。
  * アプリケーションの [Grant Types](/ja/docs/get-started/applications/update-grant-types) に、適切なフローに対応するグラントタイプが含まれていることを確認します。

* 有効な Google Workspace アカウントと、ご自身の Google Workspace 組織。

* Google Workspace 組織の管理者権限。

<div id="register-your-application-with-google">
  ## Google でアプリケーションを登録する
</div>

Google Workspace を使用してユーザーがログインできるようにするには、Google Cloud Console でアプリケーションを登録する必要があります。

<Warning>
  アプリケーションが機密性の高い OAuth スコープをリクエストする場合、[Google による審査の対象となる](https://developers.google.com/apps-script/guides/client-verification)ことがあります。
</Warning>

Google の [Setting up OAuth 2.0](https://support.google.com/googleapi/answer/6158849) ドキュメントに従い、次の設定を使用してください。

* **<Tooltip tip="OAuth 2.0: 認可プロトコルとワークフローを定義する認可フレームワーク。" cta="用語集を見る" href="/ja/docs/glossary?term=OAuth">OAuth</Tooltip> 同意画面**の **Authorized domains** で、`auth0.com` を追加します。

* アプリケーションの種類を選択するよう求められたら、**Web application** を選択し、次のパラメーターを設定します。

  | フィールド                | 説明                                    |
  | -------------------- | ------------------------------------- |
  | 名前                   | アプリケーションの名前                           |
  | 承認済みの JavaScript 生成元 | `https://{yourDomain}`                |
  | 承認済みのリダイレクト URI      | `https://{yourDomain}/login/callback` |

  [カスタムドメイン](/ja/docs/customize/custom-domains) を使用していない場合、テナントのドメイン名は `<TENANT NAME>.<REGIONAL SUBDOMAIN>.auth0.com` です。たとえば、`example-name` という名前の米国リージョンのテナントのドメイン名は `example-name.us.auth0.com` です。2020 年 6 月より前に作成されたテナントでは、リージョンのサブドメインは含まれません。

* Google Workspace のエンタープライズドメインに接続する予定がある場合は、[**Admin SDK API** を有効にする](https://support.google.com/googleapi/answer/6158841)必要があります。

Google がアプリケーション用に生成する **<Tooltip tip="Client ID: Auth0 から登録済みリソースに付与される識別値。" cta="用語集を見る" href="/ja/docs/glossary?term=Client+ID">クライアントID</Tooltip>** と **<Tooltip tip="Client ID: Auth0 から登録済みリソースに付与される識別値。" cta="用語集を見る" href="/ja/docs/glossary?term=Client+Secret">クライアントシークレット</Tooltip>** を保存します。これらの値は、次の手順で Auth0 のエンタープライズ接続を作成する際に必要です。

<div id="configure-a-google-workspace-enterprise-connection-in-auth0">
  ## Auth0 で Google Workspace のエンタープライズ接続を設定する
</div>

<Steps>
  <Step title="Google Workspace のエンタープライズ接続を作成する">
    [**Auth0 Dashboard > 認証 > エンタープライズ**](https://manage.auth0.com/#/connections/enterprise) で **Google Workspace** を探し、**作成** を選択します。

    <Frame>
      <img src="https://mintcdn.com/translations/eVsQcTnbClN-oB7d/docs/images/cdy7uua7fh8z/1fSTcrZpkgkPR64NnI1lr8/b3454e60a4463e99353603fd11a71983/Enterprise_Connections_-_EN.png?fit=max&auto=format&n=eVsQcTnbClN-oB7d&q=85&s=d70364390d8c16ca8efe20e3e1795db4" alt="Dashboard - 接続 - エンタープライズ" width="600" height="561" data-path="docs/images/cdy7uua7fh8z/1fSTcrZpkgkPR64NnI1lr8/b3454e60a4463e99353603fd11a71983/Enterprise_Connections_-_EN.png" />
    </Frame>
  </Step>

  <Step title="接続の設定を選択します">
    新しい Google Workspace エンタープライズ接続の作成ページで、設定を行います。

    | Field                             | Description                                                                                                                                                                                                                                                                                                                          |
    | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
    | **目的**                            | 接続の用途です。ログイン、Connected Accounts、またはその両方に使用できます。詳しくは、[ユーザー認証と Connected Accounts の違い](/ja/docs/secure/tokens/token-vault/connected-accounts-for-token-vault#user-authentication-vs-connected-accounts)を参照してください。                                                                                                                      |
    | **接続名**                           | 接続の論理識別子です。テナント内で一意である必要があり、後から変更することはできません。                                                                                                                                                                                                                                                                                         |
    | **Google Workspace ドメイン**         | 組織の Google Workspace ドメイン名です。                                                                                                                                                                                                                                                                                                        |
    | **クライアントID**                      | 登録した Google アプリケーションの一意の識別子です。Google Cloud Console で登録したアプリのクライアントIDを入力します。                                                                                                                                                                                                                                                          |
    | **クライアントシークレット**                  | 登録した Google アプリケーションへのアクセスに使用する文字列です。Google Cloud Console で登録したアプリのクライアントシークレットを入力します。                                                                                                                                                                                                                                               |
    | **Attributes**                    | アプリがアクセスでき、Auth0 がユーザープロフィールに保存するサインイン済みユーザーの属性です。<ul><li>**Basic Profile**: `email`、`email verified` フラグ</li> <li>**Extended Profile**: 名前、公開プロフィール URL、写真、性別、生年月日、国、言語、タイムゾーン</li></ul>                                                                                                                                            |
    | **拡張属性** (省略可)                    | アプリがアクセスでき、Auth0 がユーザープロフィールに保存するサインイン済みユーザーの追加属性です。<ul><li>**グループ**: ユーザーの配布リスト。簡易形式 (グループ名) または拡張形式 (`name`、`id`、`email` を持つグループオブジェクト) のいずれかで取得できます</li> <li>**Is Domain Administrator**: ユーザーがドメイン管理者かどうか</li> <li>**Is Account Suspended**: ユーザーのアカウントが停止されているかどうか</li> <li>**Agreed to Terms**: ユーザーが利用規約に同意しているかどうか</li></ul> |
    | **Admin Directory API を使用** (省略可) | この設定を有効にすると、接続から Google Directory API を呼び出せるようになります。必要に応じて **Users** または **Users and Groups** のスコープを選択してください。                                                                                                                                                                                                                        |
    | **Auth0 User ID** (省略可)           | デフォルトでは、Auth0 の `user_id` は `email` にマッピングされます。**Use ID instead of Email for Auth0 User ID** を有効にすると、`user_id` は代わりに `id` にマッピングされます。この設定は新しい接続でのみ指定でき、構成後に変更することはできません。                                                                                                                                                             |

    設定の選択が完了したら、**Create** をクリックします。
  </Step>

  <Step title="ユーザーのログイン方法を設定する">
    **Login Experience** タブで、この接続を使用したユーザーのログイン方法を設定します。

    | Field                    | Description                                                                                                                                                                                                                                                                 |
    | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Home Realm Discovery** | ユーザーのメールアドレスのドメインを、指定した **IDプロバイダーのドメイン** と比較します。詳しくは、[識別子ファースト認証を設定する](/ja/docs/authenticate/login/auth0-universal-login/identifier-first)を参照してください。                                                                                                                       |
    | **Connection button**    | **Display connection as a button** を選択すると、この接続用のボタンがアプリケーションのログインページに表示されます。選択すると、次の 2 つのオプションをカスタマイズできます: <ul><li>**Button display name** (任意): ボタン上で "Continue with" の後に表示されるテキスト。</li><li>**Button logo URL** (任意): ボタンのテキストの左側に、20px × 20px の正方形で表示する画像の URL。</li></ul> |

    設定を入力したら、**Save** をクリックします。
  </Step>

  <Step title="Google 管理者の同意を確認する">
    **Setup** タブで、次のいずれかを行います。

    * Google の Admin API を使用するように Google Workspace の設定を構成する管理者権限がある場合は、**続行** リンクを選択するか、

    * 必要な設定を調整できるよう、指定された URL を管理者に渡します

    <Warning>
      Google Workspace 管理者が削除された場合、その管理者が承認した Google Workspace エンタープライズ接続は、ログイン エラーを回避するために、別の Google Workspace 管理者が再承認する必要があります。再承認するには、現在の管理者に Google Workspace エンタープライズ接続の **Setup** タブにあるリンクを使用してもらってください。
    </Warning>
  </Step>

  <Step title="接続を有効化してテストする">
    Auth0 アプリケーションで[接続を有効にして](/ja/docs/authenticate/identity-providers/enterprise-identity-providers/enable-enterprise-connections)、次に[接続をテストし](/ja/docs/authenticate/identity-providers/enterprise-identity-providers/test-enterprise-connections)、正しく機能することを確認します。
  </Step>
</Steps>

<div id="next-steps">
  ## 次のステップ
</div>

<div id="customize-or-automate-user-profile-synchronization">
  ### ユーザープロフィールの同期をカスタマイズまたは自動化する
</div>

接続の**Provisioning**タブでは、ユーザープロフィールの更新方法を設定できます。

* **Sync User Profile Attributes at Login** を有効にすると、ユーザーのログイン時に Google がユーザープロフィールを同期するようになります。

  有効にすると、**Sync Frequency** を選択できます。デフォルトでは、Auth0 はログインのたびにユーザープロフィールを更新します。初回ログイン時のみ同期するように設定することもできます。

* **Provision Users and Groups Using Directory Sync** を有効にすると、Google Workspace から Auth0 にユーザーとグループが自動的に同期されます。詳しくは、[Sync Google Workspace Users to Auth0 with Google Directory Sync](/ja/docs/authenticate/identity-providers/enterprise-identity-providers/google-directory-sync) を参照してください。

<div id="get-access-and-refresh-tokens">
  ### アクセストークンとリフレッシュトークンを取得する
</div>

ユーザーの認証が完了すると、Google はアクセストークンを発行します。この[アクセストークンを使用](/ja/docs/secure/tokens/access-tokens/identity-provider-access-tokens)して、Google の API を呼び出すことができます。

Google から追加で <Tooltip tip="リフレッシュトークン: ユーザーに再度ログインを求めることなく、新しいアクセストークンを取得するために使用されるトークン。" cta="用語集を見る" href="/ja/docs/glossary?term=Refresh+Token">リフレッシュトークン</Tooltip> を要求するには、認可リクエストに `access_type=offline&approval_prompt=force` を追加します。

Google Workspace の場合、Auth0 は個々のユーザーのアクセストークンとリフレッシュトークンを `user` オブジェクトに、ワークスペース管理者のトークンを `connection` オブジェクトに保存します。これらのトークンには、Management API の[接続を取得するエンドポイント](https://auth0.com/docs/api/management/v2/connections/get-connections-by-id)を使用してアクセスできます。

<div id="retrieve-additional-user-and-group-details">
  ### 追加のユーザーおよびグループの詳細を取得する
</div>

Auth0 がデフォルトで取得する内容を超えて、追加のユーザー情報やグループ情報を取得するには、Google の Directory Admin API を使用して、ユーザーの拡張グループプロパティを取得できます。

1. エンタープライズ接続の **Settings** タブで、**General** セクションの **Extended Attributes** にある **Groups** を有効にします。

2. **Setup** タブで、提供されているリンクを使用して管理者の同意手続きを完了します。

3. Management API の [接続を取得するエンドポイント](https://auth0.com/docs/api/management/v2/connections/get-connections-by-id) を使用して、`connection` オブジェクトに保存されている管理者アクセストークンを取得します。

4. アクセストークンを使用して、[Google の Manage Groups エンドポイント](https://developers.google.com/admin-sdk/directory/v1/guides/manage-groups#get_all_member_groups) を呼び出します。例:

   ```bash wrap theme={null}
   curl -H "Authorization: OAuth {admin_access_token}" \
       https://admin.googleapis.com/admin/directory/v1/groups\?userKey={user_key}
   ```

<div id="validate-authentication-with-actions">
  ### Actions で認証を検証する
</div>

認証イベントが Google 組織に属する正当なユーザーによるものであることを検証すると、すでに組織から外れたユーザーによるアプリケーションへの不正アクセスを防ぐのに役立ちます。

Google 認証を検証するには、[post-login Action を使用](/ja/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger)して、ユーザーに関連付けられた `idp_tenant_domain` claim が想定する組織と一致することを確認できます。例:

```js Example post-login Action code to validate Google authentications theme={null}
exports.onExecutePostLogin = async (event, api) => {
    if (event.connection.strategy === 'google-oauth2') {
        // ソーシャル（組織外）アカウントをブロックする
        if (!event.user.idp_tenant_domain) {
            api.access.deny('Social accounts are not allowed to log in');
        }

        // 許可リストに登録された組織アカウントのみを許可する
        if (event.user.idp_tenant_domain != 'example.com') {
            api.access.deny('Your Google Organization is not allowed to log in');
        }
    }
};
```

次の接続タイプで認証するユーザーに対してのみ、`idp_tenant_domain` を検証できます。

* Google Social
* Google Workspace
* Google OIDC

<div id="more-information">
  ### 詳細情報
</div>

* [認証フローの詳細を見る](/ja/docs/get-started/authentication-and-authorization-flow)
* [IDプロバイダーに追加のパラメーターを渡す](/ja/docs/authenticate/identity-providers/pass-parameters-to-idps)
* [ユーザーに権限の再承認を求める](/ja/docs/authenticate/identity-providers/social-identity-providers/reprompt-permissions)

<div id="limits">
  ## 制限
</div>

* アプリケーションに既存の[Google ソーシャル接続](https://marketplace.auth0.com/integrations/google-social-connection)があり、同じドメインに対して新しい Google Workspace エンタープライズ接続を作成すると、ソーシャル接続に関連付けられたユーザーはエンタープライズ接続経由でログインします (その接続を有効にしていなくても) 。

* Google Workspace エンタープライズ接続では、Auth0 ユーザープロフィールに最大 200 個のグループを含めることができます。ユーザープロフィールに 200 個を超えるグループがある場合、それらは表示されないことがあります。認可に Google グループを使用する場合は、権限のないユーザーがグループを変更できないようにワークスペースを保護する必要があります。

* 接続ボタンは Classic Login では使用できません。接続ボタンを有効にしてカスタマイズするには、Universal Login を使用します。
