Skip to main content
Amazon Cognitoは、Amazon Web Services (AWS) が提供するエンタープライズ級のID管理サービスで、Webアプリケーションおよびモバイルアプリケーション向けにユーザー認証、認可、フェデレーションの機能を提供します。既存のCognitoユーザープールにを追加するには、Amazon CognitoをまたはのとしてAuth0 B2B Connectにフェデレーションするよう構成します。

認証の仕組み

  1. ユーザーがアプリケーションでログインを開始します。
  2. アプリケーションが Amazon Cognito に認証リクエストを送信します。
  3. Amazon Cognito がそのユーザーをエンタープライズユーザーとして識別し、リクエストを Auth0 B2B Connect にルーティングします。
  4. Auth0 B2B Connect が、SAML または OpenID Connect (OIDC) を使用して、ユーザーのエンタープライズIDプロバイダー (Okta や Microsoft Entra ID など) に認証リクエストを送信します。
  5. ユーザーがエンタープライズIDプロバイダーで社内の認証情報を使って認証を行います。
  6. エンタープライズIDプロバイダーが SAML アサーションまたは OIDC トークンを Auth0 B2B Connect に返します。
  7. Auth0 B2B Connect がドメインディスカバリーを実行し、フェデレーション結果を Amazon Cognito に返します。
  8. Amazon Cognito がアプリケーションにトークンを発行します。
  9. アプリケーションがトークンを検証し、セッションを初期化して、ユーザーにアクセスを許可します。

前提条件

Auth0 B2B Connectを構成する

新しいB2B Connect統合を作成するには、次の手順に従います。
  1. Auth0 Dashboard > Applications > B2B Connectに移動し、+Create Integrationを選択してB2B Connectウィザードを開始します。
  2. Integration Name (統合名) を入力します (例:「AWS Cognito」) 。
  3. Integration Typeで、Third-party Managed Authorization Serverを選択します。
  4. Continueを選択します。
  5. 認証 Protocolで、認可サーバーがサポートするフェデレーションの方式 (OIDCまたはSAML) を選択します。
  6. Continueを選択します。
Auth0 DashboardのB2B Connectエンタープライズウィザード、統合名

認証プロトコルを選択して構成する

ウィザードでは、OIDCまたはSAMLを選択できます。認証プロトコルを選択し、構成手順に従ってください。
  1. CognitoユーザープールのApplication Callback URLを入力します:
  2. **[続行]**を選択します。
  3. 確認画面で**[完了]**を選択し、ウィザードを終了します。

[設定]タブからcredentialsをコピーする

セットアップウィザードが完了したら、作成した統合を選択し、AWSの構成に使用する値を[設定]タブからコピーします。コピーする項目は次のとおりです:
  • Client ID
  • Client Secret
  • 発行者URL
統合の設定からClient ID、Client Secret、発行者URLをコピーする

AWS Cognito の設定

外部IDプロバイダーを追加する

AWS Cognito コンソールで、対象のユーザープールを選択します。左側のナビゲーションパネルで認証に移動し、Social and external providersを選択します。続いてAdd identity providerを選択します。
  1. IDプロバイダーで**OpenID Connect (OIDC)**を選択します。
  2. Provider nameには、エンドユーザーがログイン画面で目にするラベルを設定します (例:「Auth0」) 。
  3. B2B Connectの設定タブに表示されているClient IDを入力します。
  4. B2B Connectの設定タブに表示されているClient secretを入力します。
  5. アプリケーションの要件に応じてAuthorized scopesを更新します (例:openid profile email) 。
  6. エンタープライズユーザーをAuth0へ自動的にリダイレクトさせるには、Identifiersにそのユーザーのメールドメインを入力します (例:acme.com) 。
  7. B2B Connectの設定タブに表示されている発行者URLを発行者URLフィールドに入力します。
  8. Add identity providerを選択します。
属性のmappingにより、Auth0のユーザーID属性がCognitoユーザープール内のローカルユーザーレコードに関連付けられます。これにより、emailアドレスと名前が自動的にプロビジョニングされます。
  1. Attribute mapping で Edit を選択し、アプリケーションで必要となるユーザー属性をmapします。
    • OIDC: username を sub に、email を email にmapします
    • SAML: email を http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress にmapします
  2. Save changes を選択します。

IDプロバイダーでのユーザーのサインインを許可する

  1. AWS Cognito コンソールでユーザープールを選択し、左側のナビゲーションで Applications に移動して App clients を選択し、対象のアプリケーションを選択します。
  2. Login pages タブを選択し、Edit を選択します。
  3. Identity providers で、ドロップダウンからIDプロバイダー (例:「Auth0」) を選択します。
  4. Save changes を選択します。

IDプロバイダーを検証する

  1. アプリケーションのログインページを開き、Continue with Auth0ボタンが表示され、Auth0へ正しくリダイレクトされることを確認します。
  2. Auth0のログイン画面でメールアドレスを入力します。Auth0のドメインディスカバリーがトリガーされ、認証を完了するためにアップストリームのIdPへリダイレクトされます。

OIDC サイレントリダイレクト (任意)

AWS Cognito と Auth0 の両方のログインページをスキップし、ユーザーをエンタープライズ IdP へサイレントにルーティングするには、認可リクエストで login_hint と idp_identifier を渡すようにアプリケーションを設定します。
  1. email アドレスの入力フィールドを追加するようにアプリケーションを更新します。フォーム送信時に email を取得し、AWS Cognito への authorize リクエストで login_hint と idp_identifier の両方を渡します。
  2. この設定により、アプリケーションが login_hint と idp_identifier を AWS Cognito に渡し、AWS Cognito と Auth0 を経由してサイレントにリダイレクトされ、アップストリームのエンタープライズ IdP に直接到達します。