Googleのソーシャル接続やエンタープライズ接続を使用する
アプリケーションにGoogleのソーシャル接続が既にある場合、同じドメインに対して新しいGoogle Workspace接続を作成すると、ソーシャル接続のユーザーが新しいエンタープライズ接続でログインできるようになります。これは、Google Workspaceのエンタープライズ接続が有効に設定されているかに左右されません。
前提条件
-
Auth0にアプリケーションを登録します。
- 適切な [Application Type(アプリケーションタイプ)] を選択します。
{https://yourApp/callback}の [Allowed Callback URL(許可されているコールバックURL)] を追加します。- アプリケーションの[Grant Types(付与タイプ)]に適切なフローが必ず含まれていることを確認してください。
ステップ
Google Workspaceアカウント
事前に、有効なGoogle Workspaceアカウントと、管理者として 独自に所有 しているGoogle Workspaceの組織部門が必要です。
Googleでアプリを設定する
新規アプリケーションを登録する
-
同意画面 で、** [Authorized domains(承認されたドメイン)]** の下に、
auth0.comを追加します。 -
アプリケーションの種類を選択するよう指示された場合は、 [Webアプリケーション] を選び、以下のパラメーターを設定します:
フィールド 説明 Name(名前) アプリケーションの名前。 Authorized JavaScript origins(認可されたJavaScriptオリジン) https://{yourDomain}Authorized redirect URIs(認可されたリダイレクトURI) https://{yourDomain}/login/callbackリダイレクト用のAuth0ドメイン名を見つける
上記で、 カスタムドメイン機能を使っていないのにAuth0ドメイン名が表示されない場合は、ドメイン名がテナント名、地域のサブドメイン、および「auth0.com」をドット記号(「.」)で区切って連結したものだからです。たとえば、テナント名が「exampleco-enterprises」でテナントがUS地域にある場合、Auth0ドメイン名は「exampleco-enterprises.us.auth0.com」、Redirect URI(リダイレクトURI) は「https://exampleco-enterprises.us.auth0.com/login/callback」になります。ただし、テナントがUS地域にあり、2020年6月よりも前に作成された場合、Auth0ドメイン名は「exampleco-enterprises.auth0.com」、Redirect URI(リダイレクトURI) は「https://exampleco-enterprises.auth0.com/login/callback」になります。カスタムドメインを使っている場合、Redirect URI(リダイレクトURI) は「https://<YOUR CUSTOM DOMAIN>/login/callback」になります。
Admin SDK Serviceを有効化する
Auth0でエンタープライズ接続を作成する
-
[Auth0 Dashboard]>[Authentication(認証)]>[Enterprise(エンタープライズ)]に移動し、Google Workspace の[
+]記号をクリックします。
-
接続の詳細を入力し、 [Create(作成)] をクリックします。
フィールド 説明 Connection name(接続名) 接続の論理識別子。テナントに対して一意である必要があります。一度設定すると、この名前は変更できません。 Google Workspace Domain(Google Workspaceドメイン) 組織のGoogle Workspaceドメイン名。 Client ID(クライアントID) 登録済みのGoogleアプリケーションの一意の識別子。Google開発者コンソールで登録したアプリの Client ID(クライアントID) の保存値を入力します。 Client Secret(クライアントシークレット) 登録済みのGoogleアプリケーションへのアクセスに使用する文字列。Google開発者コンソールで登録したアプリの Client Secret(クライアントシークレット) の保存値を入力します。 Attributes(属性) アプリがアクセスできるサインイン済みユーザーの基本属性。Auth0ユーザープロファイルにどの程度情報を保管したいかを示します。オプションには、Basic Profile(基本プロファイル)( email、email verifiedフラグ)とExtended Profile(拡張プロファイル)(名前、公開プロファイルURL、写真、性別、生年月日、国、言語、タイムゾーン)があります。Extended Attributes(拡張属性)(任意) アプリがアクセスできるログイン済みユーザーの拡張属性。オプションには、Groups(グループ)(ユーザーが属する配布リスト。グループ名、グループのメールアドレス、一意のグループIDを取得する拡張グループ属性形式オプションを含む)、Is Domain Administrator(ドメイン管理者か)(ユーザーがドメイン管理者であるかどうかを示す)、Is Account Suspended(アカウントが一時停止されているか)(ユーザーのアカウントが停止されているかどうかを示す)、Agreed to Terms(利用規約に同意済み)(ユーザーが利用規約に同意したかどうかを示す)があります。 Auth0 APIs(Auth0 API)(任意) Enable Users API(ユーザーAPIを有効にする) が選択されている場合は、Google Directory APIを呼び出す機能が必要であることを示します。 Auth0 User ID(Auth0ユーザーID)(任意) デフォルトでは、Auth0の user_idはemailにマッピングされます。Use ID instead of Email for Auth0 User ID(Auth0ユーザーIDにメールの代わりにIDを使用する) を有効にすると、user_idはidにマッピングされます。これは新しい接続に対してのみ設定でき、構成後は変更できません。Sync user profile attributes at each login(ログインの度にユーザープロファイル属性を同期する) 有効にすると、Auth0はユーザープロファイルデータを各ユーザーログインと自動的に同期し、接続ソースで行われた変更がAuth0で自動的に更新されるようにします。 
- Google Workspaceを設定するための適切な管理者権限をお持ちの場合は、GoogleのAdmin APIを使って [Continue(続行)] をクリックします。管理者権限を持っていない場合には、提示されたURLを管理者に提供して必要な設定を調整してもらってください。
- [Login Experience(ログインエクスペリエンス)] タブでこの接続でのユーザーログインの方法を設定できます。
| フィールド | 説明 |
|---|---|
| ホームレルムディスカバリー | ユーザーのメールドメインを、指定されたIDプロバイダードメインと比較します。詳細については、[識別子優先認証の構成]を参照してください。(https://auth0.com/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first) |
| 接続ボタンを表示 | このオプションでは、アプリケーションの接続ボタンをカスタマイズするため次の選択肢が表示されます。 |
| Button display name(ボタン表示名) (オプション) | ユニバーサルログインのログインボタンをカスタマイズするために使用されるテキスト。設定されるとボタンは以下を読み取ります:“Continue with {Button display name}” |
| Button logo(ボタンロゴ)URL (任意) | ユニバーサルログインのログインボタンをカスタマイズするために使用される画像のURL。設定されると、ユニバーサルログインのログインボタンは、20px×20pxの四角で画像を表示します。 |
任意のフィールドは、New Universal Loginでのみ使用することができます。Classic Loginを使用している場合、[Add(追加)]ボタン、ボタンの表示名、ボタンロゴのURLは表示されません。
接続を使用する
Auth0アプリケーションでエンタープライズ接続を有効化する
接続をテストする
Googleにリフレッシュトークンを要求する
access_type=offline&approval_prompt=forceを認証要求に追加すると、Auth0はこれらのパラメーターをGoogleに転送します。その後Googleはやはりユーザープロファイルに保存されているリフレッシュトークンを返します。
GoogleからのIDプロバイダートークンの使用
ユーザーオブジェクトとワークスペース管理者の接続オブジェクト上にアクセストークンとリフレッシュトークンを保存します。
GoogleのDirectory Admin APIでユーザーの拡張されたグループプロパティを取得するには、Auth0 DashboardでGoolgle Workspace接続まで移動し、 [Groups(グループ)] の拡張属性を有効にします。次に [Setup(設定)] タブを使って管理者の合意を完了します。
これらのステップを完了後、Auth0 のGet a connection(接続取得)エンドポイントを使って接続オブジェクトの管理者アクセストークンを取得します。その後、 このトークンを使ってGoogleのManage Groupsエンドポイントを呼び出すことができます。
呼び出し例 :
Actionsで認証を検証する
ログイン後のActionsを使って、認証イベントがGoogle組織の一員である正規ユーザーからのものかどうかを検証できます。その結果、組織の一員でなくなったユーザーがアプリケーションに不正アクセスすることを防ぐことで、脆弱性の可能性を最小限に抑えることができます。
正規のGoogle認証であることを検証するには、ログイン後のActionsを使って、ユーザーに関連付けられたidp_tenant_domainクレームを検証し、その値がそのユーザーに対して予想される組織と合致するかどうか確認します。
idp_tenant_domainを検証できるのは、以下の接続タイプの認証を使うユーザーに限ります:
- Googleソーシャル
- Google Workspace
- Google OIDC
例
idp_tenant_domainをログイン後Actionsを使って検証する方法を示します。