web-dev-qa-db-ja.com

AWSCognitoユーザープールでSAMLIDPとしてOktaを設定するにはどうすればよいですか?

OktaをSAML2.0ベースのIDPとして使用し、AWS Cognitoをサービスプロバイダーとして使用し、Cognitoユーザープールを使用してIDP構成を統合したいと思います。

以下にリストされているAWSサイトに記載されているすべての手順を実行しました-

Oktaはサポートやドキュメントを提供していません--- https://support.okta.com/help/answers?id=9062A000000QucAQAS&feedtype=SINGLE_QUESTION_DETAIL&dc=xSAML&criteria=OPENQUESTIONS&

OktaをIDPとして試し、AWS IAMとの信頼を確立し、Oktaユーザーを使用してAWSアカウントにログインしたことに注意してください。これは、Oktaが提供する詳細なドキュメントに従って正常に機能します。ただし、AWScognitoユーザープールでSAMLIDPとしてOktaを使用したい場合はニーズが異なります。

AWSとOktaなどの両端で実行する構成を含む詳細なドキュメントが役立ちます。

7
Martin

私は次のようにSAMLを介してCognitoでOktaをセットアップしました:

オクタ側:

  • URLのシングルサインオンは、次の形式のコグニトSAMLエンドポイントになります:https://<yourDomainPrefix>.auth.<region>.amazoncognito.com/saml2/idpresponse(URLの最初の部分については、ユーザープールの下の「アプリの統合」->「ドメイン名」を参照してください)。
  • オーディエンスURI(SPエンティティID)は、コグニートユーザープールのURNになります:urn:Amazon:cognito:sp:<yourUserPoolID>(そのプールIDについては、ユーザープールの「一般設定」を参照してください)。
  • 属性ステートメント。プールで必須として設定した属性を追加します。私の場合はメールです。

コグニート側-ユーザープール:

  • フェデレーション-> IDプロバイダー:SAMLを選択し、Oktaからmetadata.xmlをインポートします。
  • [アプリの統合]でアプリのクライアント設定にアクセスし、新しく作成したIDPを有効にします

コグニート側-アイデンティティプール:

  • 認証プロバイダーの[SAML]タブで、IAMで信頼できるプロバイダーとして既に使用していると述べたように、[Oktaプロバイダー]チェックボックスをオンにできます。 。

それはそれについてであるはずです。役に立ったリソース: https://docs.aws.Amazon.com/cognito/latest/developerguide/cognito-user-pools-saml-idp.html

編集:オーディエンスURI /オーディエンス制限Okta設定で説明が必要だったようです。下記のジュリアンはurn:Amazon:cognito:sp:region_randomid(つまり、urn:Amazon:cognito:sp:eu-west-1_SdsSdwSD3e)の形式であるため、自分でリージョンを追加する必要はありません。

6
WenWolf

免責事項:私はSAMLエキスパートではありません

ここでも同じ問題に直面しなければなりませんでした。 Oktaでの認証後、Cognitoのログイン画面にリダイレクトされました。私はWenWolfからのアドバイスに従おうとしましたが、成功しませんでした。

Firefoxの SAML-tracer 拡張機能を使用してSAMLフローを分析しました。アサーションPOSTの後、リダイレクトURIにエラーメッセージが隠されていました。

GET https:// XXXXX?error_description = Error + in + SAML + response + processing%3A + Audience + restriction + in + SAML + Assertion + does + now + allow + it + for + urn%3Aamazon%3Acognito %3Asp%3Aeu-west-1_YYYYYYYY +&state = e4314f8a-e321-4302-91fe-2a4657a9c582&error = server_error HTTP/1.1

それはあなたに与えます:

SAML応答処理のエラー:SAMLアサーションのオーディエンス制限により、urn:Amazon:cognito:sp:eu-west-1_YYYYYYYYが許可されるようになりました

Oktaで修正するには:

  • ドキュメント および ブログ で最初に推奨された値を置き換えることにより、Oktaのオーディエンス制限フィールドを変更します。 =
    • urn:Amazon:cognito:sp:IDFoundInAppIntegrationAppClientSettings
  • エラーメッセージに示されている値によって
    • urn:Amazon:cognito:sp:eu-west-1_YYYYYYYY

このIDは、Cognitoの自動生成されたグループにも表示されます[一般設定]> [ユーザーとグループ]

PS:NameIdに関する他のアドバイスと、両側で一貫している必要がある必要な属性マッピングを保持してください。

2
Julien