> ## 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 Apps を Google Workspace に接続する方法

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

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

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

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

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

  * 適切な **Application Type** を選択します。
  * **Allowed Callback URL** に `{https://yourApp/callback}` を追加します。
  * アプリケーションの [Grant Types](/docs/ja-jp/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 コンソールでアプリケーションを登録する必要があります。

<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="/docs/ja-jp/glossary?term=OAuth">OAuth</Tooltip> 同意画面**の **Authorized domains** で、`auth0.com` を追加します。

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

  | Field                         | Description                           |
  | ----------------------------- | ------------------------------------- |
  | Name                          | アプリケーションの名前。                          |
  | Authorized JavaScript origins | `https://{yourDomain}`                |
  | Authorized redirect URIs      | `https://{yourDomain}/login/callback` |

  [カスタムドメイン](/docs/ja-jp/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="/docs/ja-jp/glossary?term=Client+ID">Client ID</Tooltip>** と **<Tooltip tip="Client ID: Auth0 から登録済みリソースに付与される識別値。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Client+Secret">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 > Authentication > Enterprise**](https://manage.auth0.com/#/connections/enterprise) で **Google Workspace** を探し、**Create** を選択します。

    <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="Auth0 Dashboard - 接続 - Enterprise" width="600" height="561" data-path="docs/images/cdy7uua7fh8z/1fSTcrZpkgkPR64NnI1lr8/b3454e60a4463e99353603fd11a71983/Enterprise_Connections_-_EN.png" />
    </Frame>
  </Step>

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

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

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

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

    | フィールド             | 説明                                                                                                                                                                                                                                                                              |
    | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **ホームレルムディスカバリー** | ユーザーのメールドメインを、指定した **IDプロバイダーのドメイン** と比較します。詳細については、[Identifier First Authentication を設定する](/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first) をご覧ください。                                                                                                     |
    | **接続ボタン**         | **Display connection as a button** をオンにすると、この接続用のボタンをアプリケーションのログインページに表示できます。有効にすると、次の 2 つのオプションをカスタマイズできます。<ul><li>**Button display name**  (任意) : ボタンで "Continue with" の後に表示されるテキスト。</li><li>**Button logo URL**  (任意) : ボタンテキストの左側に 20px x 20px の正方形で表示される画像の URL。</li></ul> |

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

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

    * Google の Admin API を使用するように Google Workspace の設定を構成するための管理者権限がある場合は、**Continue** リンクに進みます。

    * それ以外の場合は、必要な設定を調整できるよう、表示された URL を管理者に渡します

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

  <Step title="接続を有効にしてテストする">
    Auth0アプリケーションの[接続を有効にしたら](/docs/ja-jp/authenticate/identity-providers/enterprise-identity-providers/enable-enterprise-connections)、[接続をテストして](/docs/ja-jp/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** タブでは、ユーザープロファイルの更新方法を設定できます。

* ユーザーのログイン時に Google がユーザープロファイルを同期できるようにするには、**Sync User Profile Attributes at Login** を有効にします。

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

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

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

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

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

Google Workspace の場合、Auth0 はアクセストークンとリフレッシュトークンを、個々のユーザーについては `user` オブジェクトに、ワークスペース管理者については `connection` オブジェクトに保存します。これらには、Management API の [Get a connection endpoint](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 の [Get a connection endpoint](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 を使用して](/docs/ja-jp/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') {
        // ソーシャル（organization以外）アカウントをブロック
        if (!event.user.idp_tenant_domain) {
            api.access.deny('Social accounts are not allowed to log in');
        }

        // 許可リストに登録されたorganizationアカウントのみ許可
        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>

* [認証フローの詳細はこちら](/docs/ja-jp/get-started/authentication-and-authorization-flow)
* [アイデンティティプロバイダーに追加のパラメーターを渡す](/docs/ja-jp/authenticate/identity-providers/pass-parameters-to-idps)
* [ユーザーに権限の再許可を求める](/docs/ja-jp/authenticate/identity-providers/social-identity-providers/reprompt-permissions)

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

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

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

* 接続ボタンはクラシックログインでは利用できません。接続ボタンを有効にしてカスタマイズするには、Universal Login を使用してください。
