認証の仕組み
- ユーザーがアプリケーションでログインを開始します。
- アプリケーションが Amazon Cognito に認証リクエストを送信します。
- Amazon Cognito がそのユーザーをエンタープライズユーザーとして識別し、リクエストを Auth0 B2B Connect にルーティングします。
- Auth0 B2B Connect が、SAML または OpenID Connect (OIDC) を使用して、ユーザーのエンタープライズIDプロバイダー (Okta や Microsoft Entra ID など) に認証リクエストを送信します。
- ユーザーがエンタープライズIDプロバイダーで社内の認証情報を使って認証を行います。
- エンタープライズIDプロバイダーが SAML アサーションまたは OIDC トークンを Auth0 B2B Connect に返します。
- Auth0 B2B Connect がドメインディスカバリーを実行し、フェデレーション結果を Amazon Cognito に返します。
- Amazon Cognito がアプリケーションにトークンを発行します。
- アプリケーションがトークンを検証し、セッションを初期化して、ユーザーにアクセスを許可します。
前提条件
- B2B Connect - Enterpriseが有効化されたAuth0テナント
- エンタープライズ接続 (Oktaなど) へのドメインディスカバリーが有効化されたAuth0 Organization。詳細については、Organizationドメインを作成するをお読みください。
- 有効なAmazon Cognitoユーザープールを持つAWSアカウント
- 有効なCognitoドメインが構成されたCognitoアプリケーションクライアント
Auth0 B2B Connectを構成する
新しいB2B Connect統合を作成するには、次の手順に従います。- Auth0 Dashboard > Applications > B2B Connectに移動し、+Create Integrationを選択してB2B Connectウィザードを開始します。
- Integration Name (統合名) を入力します (例:「AWS Cognito」) 。
- Integration Typeで、Third-party Managed Authorization Serverを選択します。
- Continueを選択します。
- 認証 Protocolで、認可サーバーがサポートするフェデレーションの方式 (OIDCまたはSAML) を選択します。
- Continueを選択します。

認証プロトコルを選択して構成する
ウィザードでは、OIDCまたはSAMLを選択できます。認証プロトコルを選択し、構成手順に従ってください。- OIDC
- SAML
- CognitoユーザープールのApplication Callback URLを入力します:
- **[続行]**を選択します。
- 確認画面で**[完了]**を選択し、ウィザードを終了します。
[設定]タブからcredentialsをコピーする
セットアップウィザードが完了したら、作成した統合を選択し、AWSの構成に使用する値を[設定]タブからコピーします。コピーする項目は次のとおりです:- Client ID
- Client Secret
- 発行者URL

AWS Cognito の設定
外部IDプロバイダーを追加する
AWS Cognito コンソールで、対象のユーザープールを選択します。左側のナビゲーションパネルで認証に移動し、Social and external providersを選択します。続いてAdd identity providerを選択します。- OIDC
- SAML
- IDプロバイダーで**OpenID Connect (OIDC)**を選択します。
- Provider nameには、エンドユーザーがログイン画面で目にするラベルを設定します (例:「Auth0」) 。
- B2B Connectの設定タブに表示されているClient IDを入力します。
- B2B Connectの設定タブに表示されているClient secretを入力します。
- アプリケーションの要件に応じてAuthorized scopesを更新します (例:
openid profile email) 。 - エンタープライズユーザーをAuth0へ自動的にリダイレクトさせるには、Identifiersにそのユーザーのメールドメインを入力します (例:
acme.com) 。 - B2B Connectの設定タブに表示されている発行者URLを発行者URLフィールドに入力します。
- Add identity providerを選択します。
属性のmappingを設定する (推奨)
属性のmappingにより、Auth0のユーザーID属性がCognitoユーザープール内のローカルユーザーレコードに関連付けられます。これにより、emailアドレスと名前が自動的にプロビジョニングされます。-
Attribute mapping で Edit を選択し、アプリケーションで必要となるユーザー属性をmapします。
- OIDC:
usernameをsubに、emailをemailにmapします - SAML:
emailをhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressにmapします
- OIDC:
- Save changes を選択します。
IDプロバイダーでのユーザーのサインインを許可する
- AWS Cognito コンソールでユーザープールを選択し、左側のナビゲーションで Applications に移動して App clients を選択し、対象のアプリケーションを選択します。
- Login pages タブを選択し、Edit を選択します。
- Identity providers で、ドロップダウンからIDプロバイダー (例:「Auth0」) を選択します。
- Save changes を選択します。
IDプロバイダーを検証する
- アプリケーションのログインページを開き、Continue with Auth0ボタンが表示され、Auth0へ正しくリダイレクトされることを確認します。
- Auth0のログイン画面でメールアドレスを入力します。Auth0のドメインディスカバリーがトリガーされ、認証を完了するためにアップストリームのIdPへリダイレクトされます。
OIDC サイレントリダイレクト (任意)
AWS Cognito と Auth0 の両方のログインページをスキップし、ユーザーをエンタープライズ IdP へサイレントにルーティングするには、認可リクエストでlogin_hint と idp_identifier を渡すようにアプリケーションを設定します。
-
email アドレスの入力フィールドを追加するようにアプリケーションを更新します。フォーム送信時に email を取得し、AWS Cognito への authorize リクエストで
login_hintとidp_identifierの両方を渡します。 -
この設定により、アプリケーションが
login_hintとidp_identifierを AWS Cognito に渡し、AWS Cognito と Auth0 を経由してサイレントにリダイレクトされ、アップストリームのエンタープライズ IdP に直接到達します。