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

前提条件

始める前に、以下が必要です。
  • Auth0 にアプリケーションを登録する
    • 適切な Application Type を選択します。
    • Allowed Callback URL{https://yourApp/callback} を追加します。
    • アプリケーションの Grant Types に、適切なフローに対応するグラントタイプが含まれていることを確認します。
  • 有効な Google Workspace アカウントと、ご自身の Google Workspace 組織。
  • Google Workspace 組織の管理者権限。

Google でアプリケーションを登録する

Google Workspace を使用してユーザーがログインできるようにするには、Google Cloud Console でアプリケーションを登録する必要があります。
アプリケーションが機密性の高い OAuth スコープをリクエストする場合、Google による審査の対象となることがあります。
Google の Setting up OAuth 2.0 ドキュメントに従い、次の設定を使用してください。
  • 同意画面Authorized domains で、auth0.com を追加します。
  • アプリケーションの種類を選択するよう求められたら、Web application を選択し、次のパラメーターを設定します。
    フィールド説明
    名前アプリケーションの名前
    承認済みの JavaScript 生成元https://{yourDomain}
    承認済みのリダイレクト URIhttps://{yourDomain}/login/callback
    カスタムドメイン を使用していない場合、テナントのドメイン名は <TENANT NAME>.<REGIONAL SUBDOMAIN>.auth0.com です。たとえば、example-name という名前の米国リージョンのテナントのドメイン名は example-name.us.auth0.com です。2020 年 6 月より前に作成されたテナントでは、リージョンのサブドメインは含まれません。
  • Google Workspace のエンタープライズドメインに接続する予定がある場合は、Admin SDK API を有効にする必要があります。
Google がアプリケーション用に生成する を保存します。これらの値は、次の手順で Auth0 のエンタープライズ接続を作成する際に必要です。

Auth0 で Google Workspace のエンタープライズ接続を設定する

1

Google Workspace のエンタープライズ接続を作成する

Auth0 Dashboard > 認証 > エンタープライズGoogle Workspace を探し、作成 を選択します。
Dashboard - 接続 - エンタープライズ
2

接続の設定を選択します

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

ユーザーのログイン方法を設定する

Login Experience タブで、この接続を使用したユーザーのログイン方法を設定します。
FieldDescription
Home Realm Discoveryユーザーのメールアドレスのドメインを、指定した IDプロバイダーのドメイン と比較します。詳しくは、識別子ファースト認証を設定するを参照してください。
Connection buttonDisplay connection as a button を選択すると、この接続用のボタンがアプリケーションのログインページに表示されます。選択すると、次の 2 つのオプションをカスタマイズできます:
  • Button display name (任意): ボタン上で “Continue with” の後に表示されるテキスト。
  • Button logo URL (任意): ボタンのテキストの左側に、20px × 20px の正方形で表示する画像の URL。
設定を入力したら、Save をクリックします。
4

Google 管理者の同意を確認する

Setup タブで、次のいずれかを行います。
  • Google の Admin API を使用するように Google Workspace の設定を構成する管理者権限がある場合は、続行 リンクを選択するか、
  • 必要な設定を調整できるよう、指定された URL を管理者に渡します
Google Workspace 管理者が削除された場合、その管理者が承認した Google Workspace エンタープライズ接続は、ログイン エラーを回避するために、別の Google Workspace 管理者が再承認する必要があります。再承認するには、現在の管理者に Google Workspace エンタープライズ接続の Setup タブにあるリンクを使用してもらってください。
5

接続を有効化してテストする

Auth0 アプリケーションで接続を有効にして、次に接続をテストし、正しく機能することを確認します。

次のステップ

ユーザープロフィールの同期をカスタマイズまたは自動化する

接続の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 を参照してください。

アクセストークンとリフレッシュトークンを取得する

ユーザーの認証が完了すると、Google はアクセストークンを発行します。このアクセストークンを使用して、Google の API を呼び出すことができます。 Google から追加で を要求するには、認可リクエストに access_type=offline&approval_prompt=force を追加します。 Google Workspace の場合、Auth0 は個々のユーザーのアクセストークンとリフレッシュトークンを user オブジェクトに、ワークスペース管理者のトークンを connection オブジェクトに保存します。これらのトークンには、Management API の接続を取得するエンドポイントを使用してアクセスできます。

追加のユーザーおよびグループの詳細を取得する

Auth0 がデフォルトで取得する内容を超えて、追加のユーザー情報やグループ情報を取得するには、Google の Directory Admin API を使用して、ユーザーの拡張グループプロパティを取得できます。
  1. エンタープライズ接続の Settings タブで、General セクションの Extended Attributes にある Groups を有効にします。
  2. Setup タブで、提供されているリンクを使用して管理者の同意手続きを完了します。
  3. Management API の 接続を取得するエンドポイント を使用して、connection オブジェクトに保存されている管理者アクセストークンを取得します。
  4. アクセストークンを使用して、Google の Manage Groups エンドポイント を呼び出します。例:
    curl -H "Authorization: OAuth {admin_access_token}" \
        https://admin.googleapis.com/admin/directory/v1/groups\?userKey={user_key}
    

Actions で認証を検証する

認証イベントが Google 組織に属する正当なユーザーによるものであることを検証すると、すでに組織から外れたユーザーによるアプリケーションへの不正アクセスを防ぐのに役立ちます。 Google 認証を検証するには、post-login Action を使用して、ユーザーに関連付けられた idp_tenant_domain claim が想定する組織と一致することを確認できます。例:
Example post-login Action code to validate Google authentications
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

詳細情報

制限

  • アプリケーションに既存のGoogle ソーシャル接続があり、同じドメインに対して新しい Google Workspace エンタープライズ接続を作成すると、ソーシャル接続に関連付けられたユーザーはエンタープライズ接続経由でログインします (その接続を有効にしていなくても) 。
  • Google Workspace エンタープライズ接続では、Auth0 ユーザープロフィールに最大 200 個のグループを含めることができます。ユーザープロフィールに 200 個を超えるグループがある場合、それらは表示されないことがあります。認可に Google グループを使用する場合は、権限のないユーザーがグループを変更できないようにワークスペースを保護する必要があります。
  • 接続ボタンは Classic Login では使用できません。接続ボタンを有効にしてカスタマイズするには、Universal Login を使用します。