Amazon Cognito ユーザープールを使用して AD FS を SAML ID プロバイダーとして設定するにはどうしたらよいですか?

最終更新日: 2021 年 6 月 23 日

Amazon Cognito ユーザープールで Security Assertion Markup Language 2.0 (SAML 2.0) ID プロバイダー (IdP) として Active Directory Federation Services (AD FS) を使用したいと考えています。どのように設定すればよいですか?

簡単な説明

Amazon Cognito ユーザープールでは、AD FS などの SAML IdP を含め、サードパーティー (フェデレーション) を介してサインインすることができます。詳細については、「サードパーティーを介したユーザープールサインインの追加」および「ユーザープールへの SAML ID プロバイダーの追加」をご参照ください。

Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスに AD FS サーバーとドメインコントローラーを設定し、Amazon Cognito のホストされたウェブの UI を使用して設定をユーザープールと統合できます。

重要: この解決方法では、所有しているドメイン名が必要です。ドメインを所有していない場合は、Amazon Route 53 または別のドメインネームシステム (DNS) サービスを使って新しいドメインを登録できます。

解決方法

アプリクライアントを使用して Amazon Cognito ユーザープールを作成する

詳細については、「チュートリアル: ユーザープールの作成」と「Amazon Cognito コンソールでホストされた UI を設定する」をご参照ください。

注: ユーザープールを作成する場合、標準属性の E メールがデフォルトで選択されます。ユーザープールの属性の詳細については、「ユーザープールの属性の設定」をご参照ください。

EC2 Windows インスタンスを設定する

EC2 Windows インスタンスを設定して起動し、そのインスタンスに AD FS サーバーとドメインコントローラーをセットアップします。詳細については、「Amazon Cognito ユーザープールのフェデレーションと連携するように Amazon EC2 Windows インスタンスで AD FS を設定する方法」をご参照ください。

Amazon Cognito で AD FS サーバーを SAML IdP として設定する

詳細については、「ユーザープールの SAML ID プロバイダーの作成と管理 (AWS マネジメントコンソール) 」をご参照いただき、「ユーザープールで SAML 2.0 ID プロバイダーを設定する方法」の手順に従ってください。

SAML IdP を作成する場合、メタデータドキュメントについては、メタデータドキュメントのエンドポイント URL を貼り付けるか、.xml メタデータファイルをアップロードします。

E メールアドレスを IdP 属性からユーザープール属性へマッピングする

詳細については、「ユーザープールの ID プロバイダー属性マッピングの指定」をご参照いただき、「SAML プロバイダー属性マッピングを指定する方法」の指示に従ってください。

SAML 属性を追加する場合、[SAML Attribute] (SAML 属性) に、http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress と入力します。[User pool attribute] (ユーザープール属性) で、リストから [Email] (E メール) を選択します。

Amazon Cognito でアプリクライアントの設定を変更する

  1. Amazon Cognito コンソールのユーザープールの管理ページの [App integration] (アプリの統合) で、[App client settings] (アプリクライアントの設定) を選択します。次に、以下を実行します。
    [Enabled identity providers] で、設定した SAML IdP のチェックボックスをオンにします。例えば、[ADFS] です。
    コールバック URL には、ログイン後にユーザーをリダイレクトする URL を入力します。
    サインアウト URL には、ログアウト後にユーザーをリダイレクトする URL を入力します。
    [Allowed OAuth Flows] で、[Authorization code grant] および [Implicit Grant] チェックボックスをオンにします。
    Allowed OAuth Scopes で、すべてのチェックボックスをオンにします。
  2. [Save changes] (変更を保存) を選択します。詳細については、「アプリクライアントの設定の概要」をご参照ください。

Amazon Cognito がホストするウェブ UI を使用して設定をテストする

  1. この URL をウェブブラウザで入力します:
    https://domainNamePrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=appClientId&redirect_uri=https://www.example.com

    注:
    URL については、ユーザープールとアプリクライアントの値を使用してください。[App integration] ページの [Amazon Cognito console] で、ユーザープールのドメイン (ドメイン名のプレフィックスと AWS リージョンを含む) を探します。アプリクライアント ID を [App client settings] で見つけます。https://www.example.com を SAML IdP のコールバック URL に置き換えます。
  2. 設定した SAML IdP の名前を選択します。AD FS 認証ページにリダイレクトされます。
  3. [Sign in with your organizational account] で、Active Directory ユーザーのユーザー名とパスワードを入力します。
  4. [サインイン] を選択します。サインインが成功した場合、Amazon Cognito はユーザープールトークンと成功した SAML レスポンスを返します。SAML レスポンスの表示について詳しくは、「トラブルシューティングのためにブラウザで SAML レスポンスを表示する方法」をご参照ください。
    注:
    デコードされた場合、SAML 応答には必須の属性 NameID を含める必要があります。