ユーザープールによる SAML ID プロバイダーの使用 - Amazon Cognito

ユーザープールによる SAML ID プロバイダーの使用

ウェブアプリケーションおよびモバイルアプリケーションのユーザーに対して、Microsoft Active Directory フェデレーションサービス (ADFS)Shibboleth などの SAML ID プロバイダー (IdP) を通じてサインインすることを許可できます。SAML 2.0 標準をサポートする SAML IdP を選択します。

ホストされた UI とフェデレーションエンドポイントを使用すると、Amazon Cognito はローカルユーザーとサードパーティー IdP ユーザーを認証し、JSON ウェブトークン (JWT) を発行します。Amazon Cognito が発行するトークンを使用すると、複数の ID ソースを、すべてのアプリケーションにわたるユニバーサル OpenID Connect (OIDC) 標準に統合できます。Amazon Cognito は、サードパーティープロバイダーからの SAML アサーションを、その SSO 標準に処理できます。AWS CLI を通じて、または Amazon Cognito API で、AWS Management Console 内の SAML IdP を作成および管理できます。AWS Management Console内で最初の SAML IdP を作成するには、「ユーザープールでの SAML ID プロバイダーの追加と管理」を参照してください。

SAML サインインによる認証の概要
注記

サードパーティー IdP を通じたサインインによるフェデレーションは、Amazon Cognito ユーザープールの機能です。Amazon Cognito フェデレーティッド ID と呼ばれる Amazon Cognito アイデンティティプールは、各アイデンティティプールで個別に設定する必要があるフェデレーションの実装です。ユーザープールは、アイデンティティプールへのサードパーティー IdP にすることができます。詳細については、「Amazon Cognito アイデンティティプール」を参照してください。

IdP 設定のクイックリファレンス

リクエストを受け入れ、ユーザープールにレスポンスを送信するように SAML IdP を設定する必要があります。ユーザープールを SAML 2.0 IdP の依拠しているパーティーまたはアプリケーションとして追加する方法に関する情報は、SAML IdP のドキュメントに含まれています。次のドキュメントでは、SP エンティティ ID とアサーションコンシューマーサービス (ACS) URL に対して指定する必要がある値を示します。

ユーザープール SAML 値のクイックリファレンス
SP エンティティ ID
urn:amazon:cognito:sp:us-east-1_EXAMPLE
ACS URL
https://Your user pool domain/saml2/idpresponse

ID プロバイダーをサポートするためにユーザープールを設定する必要があります。外部 SAML IdP を追加する大まかなステップは次のとおりです。

  1. IdP から SAML メタデータをダウンロードするか、メタデータエンドポイントへの URL を取得します。「サードパーティー SAML ID プロバイダーの設定」を参照してください。

  2. ユーザープールに新しい IdP を追加します。SAML メタデータをアップロードするか、メタデータ URL を指定します。「ユーザープールでの SAML ID プロバイダーの追加と管理」を参照してください。

  3. IdP をアプリケーションクライアントに割り当てます。「アプリケーションクライアントによるアプリケーション固有の設定」を参照してください。

SAML ユーザー名の大文字と小文字の区別

フェデレーションユーザーがサインインしようとすると、SAML ID プロバイダー (IdP) はユーザーの SAML アサーションで Amazon Cognito に一意の NameId を渡します。Amazon Cognito は、SAML フェデレーティッドユーザーを NameId クレームによって識別します。ユーザープールの大文字と小文字の区別の設定にかかわらず、Amazon Cognito では、大文字と小文字を区別する一意の NameId クレームを渡すときに、SAML IdP の既存フェデレーションユーザーを認識します。email のような属性を NameId にマッピングし、ユーザーが E メールアドレスを変更すると、アプリケーションにサインインできません。

変更されない値を持つ IdP 属性から SAML アサーションに NameId をマッピングします。

例えば、Carlos は、Carlos@example.comNameId 値を渡した Active Directory フェデレーションサービス (ADFS) SAML アサーションからの大文字と小文字を区別しないユーザープールにユーザープロファイルを持っているとします。次回 Carlos がサインインしようとすると、ADFS IdP は carlos@example.comNameId 値を渡します。NameId は大文字と小文字が完全に一致する必要があるため、サインインは成功しません。

NameID を変更した後、ユーザーがログインできない場合は、ユーザープールからそのユーザーのプロファイルを削除してください。Amazon Cognito は、次回サインインしたときに新しいユーザープロファイルを作成します。