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

最終更新日: 2019 年 2 月 7 日

Amazon Cognito ユーザープールでセキュリティアサーションマークアップ言語 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 を含める必要があります。