SAML と IAM とのフェデレーションをトラブルシューティングする - AWS Identity and Access Management

SAML と IAM とのフェデレーションをトラブルシューティングする

この情報を使用して、AWS Identity and Access Management で SAML 2.0 とフェデレーションを操作するときに発生する可能性がある問題を診断して修復します。

エラー: Your request included an invalid SAML response。To logout, click here。

このエラーは、ID プロバイダーからの SAML レスポンスに、Namehttps://aws.amazon.com/SAML/Attributes/Role に設定された属性が含まれない場合に発生することがあります。属性には、それぞれにカンマ区切りの文字列のペアを持つ、1 つ以上の AttributeValue エレメントが含まれている必要があります。

  • ユーザーをマッピングできるロールの ARN

  • SAML プロバイダーの ARN

詳細については、「認証レスポンス用の SAML アサーションを設定する」を参照してください。ブラウザで SAML レスポンスを表示するには、「ブラウザに SAML レスポンスを表示する」のステップに従います。

エラー: RoleSessionName is required in AuthnResponse (service: AWSSecurityTokenService; status code: 400; error code: InvalidIdentityToken)

このエラーは、ID プロバイダーからの SAML レスポンスに、Namehttps://aws.amazon.com/SAML/Attributes/RoleSessionName に設定された属性が含まれない場合に発生することがあります。属性値は、ユーザーの ID で、通常は ID または E メールアドレスです。

詳細については、「認証レスポンス用の SAML アサーションを設定する」を参照してください。ブラウザで SAML レスポンスを表示するには、「ブラウザに SAML レスポンスを表示する」のステップに従います。

エラー: Not authorized to perform sts:AssumeRoleWithSAML (service: AWSSecurityTokenService; status code: 403; error code: AccessDenied)

このエラーは、SAML レスポンスで指定された IAM ロールのスペルが間違っているか存在しない場合に発生することがあります。ロール名は大文字と小文字が区別されるため、ロールの正確な名前を使用してください。SAML サービスプロバイダー設定のロール名を修正します。

ロール信頼ポリシーに sts:AssumeRoleWithSAML アクションが含まれる場合にのみ、アクセスが許可されます。SAML アサーションが PrincipalTag 属性を使用するように設定されている場合、信頼ポリシーにも sts:TagSession アクションを含める必要があります。セッションタグの詳細については、「AWS STS でセッションタグを渡します」を参照してください。

このエラーは、ロール信頼ポリシーに sts:SetSourceIdentity アクセス許可がない場合に発生する可能性があります。SAML アサーションが SourceIdentity 属性を使用するように設定されている場合、信頼ポリシーにも sts:SetSourceIdentity アクションを含める必要があります。ソース ID の詳細については、「引き受けたロールで実行されるアクションのモニタリングと制御」を参照してください。

このエラーは、フェデレーションユーザーにロールを引き受けるアクセス権限がない場合に発生することがあります。ロールには、IAM SAML ID プロバイダーの ARN を Principal として指定する信頼ポリシーが必要です。ロールには、ロールを引き受けることができるユーザーを管理する条件も含まれています。ユーザーが条件を満たすことを確認します。

このエラーは、SAML レスポンスに Subject を含む NameID がない場合に発生することがあります。

詳細については、「フェデレーティッドユーザーのために AWS でアクセス許可を確立する」および「認証レスポンス用の SAML アサーションを設定する」を参照してください。ブラウザで SAML レスポンスを表示するには、「ブラウザに SAML レスポンスを表示する」のステップに従います。

エラー: RoleSessionName in AuthnResponse must match [a-zA-Z_0-9+=,.@-]{2,64} (service: AWSSecurityTokenService; status code: 400; error code: InvalidIdentityToken)

このエラーは、RoleSessionName 属性値が長すぎるか、無効な文字が含まれる場合に発生することがあります。有効な最大長は 64 文字です。

詳細については、「認証レスポンス用の SAML アサーションを設定する」を参照してください。ブラウザで SAML レスポンスを表示するには、「ブラウザに SAML レスポンスを表示する」のステップに従います。

Error: Source Identity must match [a-zA-Z_0-9+=,.@-]{2,64} and not begin with "aws:" (service: AWSSecurityTokenService; status code: 400; error code: InvalidIdentityToken)

このエラーは、sourceIdentity 属性値が長すぎるか、無効な文字が含まれる場合に発生することがあります。有効な最大長は 64 文字です。ソース ID の詳細については、「引き受けたロールで実行されるアクションのモニタリングと制御」 を参照してください。

SAML アサーション作成の詳細については、「認証レスポンス用の SAML アサーションを設定する」 を参照してください。ブラウザで SAML レスポンスを表示するには、「ブラウザに SAML レスポンスを表示する」のステップに従います。

エラー: Response signature invalid (service: AWSSecurityTokenService; status code: 400; error code: InvalidIdentityToken)

このエラーは、ID プロバイダーのフェデレーションメタデータが、IAM ID プロバイダーのメタデータに一致しない場合に発生することがあります。たとえば、ID サービスプロバイダーのメタデータファイルが、失効した証明書を更新するために変更される場合があります。更新された SAML メタデータファイルを ID サービスプロバイダーからダウンロードします。次に、IAM で定義する AWS ID プロバイダーエンティティで、aws iam update-saml-provider クロスプラットフォーム CLI コマンドまたは Update-IAMSAMLProvider PowerShell コマンドレットを使ってこれを更新します。

エラー: Failed to assume role: Issuer not present in specified provider (service: AWSOpenIdDiscoveryService; status code: 400; error code: AuthSamlInvalidSamlResponseException)

このエラーは、SAML レスポンスの発行元がフェデレーションメタデータファイルで宣言されている発行者と一致しない場合に発生することがあります。メタデータファイルは、ID プロバイダーを IAM で作成したときに AWS にアップロードされました。

エラー: Could not parse metadata.

このエラーはメタデータファイルを適切にフォーマットしてない場合に発生することがあります。

AWS Management Console で、SAML ID プロバイダーを作成または管理する場合、ID プロバイダーから SAML メタデータドキュメントを取得する必要があります。

このメタデータファイルには発行者の名前、失効情報、およびキーが含まれており、これらを使用して、IdP から受け取った SAML 認証レスポンス (アサーション) を検証できます。メタデータファイルはバイトオーダーマーク (BOM) なしで UTF-8 形式でエンコードする必要があります。BOM を削除するには、Notepad++ などのテキスト編集ツールを使用して UTF-8 としてファイルをエンコードできます。

SAML メタデータドキュメントの一部として含まれている x.509 証明書では、少なくとも 1024 ビットのキーサイズを使用する必要があります。また、x.509 証明書には、拡張領域が繰り返されていないことが必要です。拡張領域は使用できますが、証明書に 1 回しか出現できません。x.509 証明書がいずれかの条件を満たしていない場合、IdP の作成は失敗し、「メタデータを解析できない」エラーが返されます。

SAML V2.0 メタデータ相互運用性プロファイルバージョン 1.0 で定義されているように、IAM はメタデータドキュメントの X.509 証明書の有効期限を評価したりアクションを実行したりすることはできません。

エラー: Specified provider doesn't exist.

このエラーは、SAML アサーションのプロバイダーの名前が IAM のプロバイダーの名前と一致しない場合に発生することがあります。プロバイダー名の表示の詳細については、「IAM で SAML ID プロバイダーを作成する」を参照してください。

エラー: Requested DurationSeconds exceeds MaxSessionDuration set for this role.

このエラーは、AWS CLI または API からロールを引き受ける場合に発生することがあります。

assume-role-with-saml CLI または AssumeRoleWithSAML API オペレーションを使用してロールを引き受ける場合は、DurationSeconds パラメータの値を指定できます。900 秒 (15 分) からロールの最大セッション期間設定までの値を指定できます。この設定よりも高い値を指定した場合、オペレーションは失敗します。たとえば、12 時間のセッションの期間を指定したが、管理者が最大のセッション期間を 6 時間に設定した場合、オペレーションは失敗します。ロールの最大値を確認する方法については、「ロールの最大セッション期間を更新する」を参照してください。

エラー: Response does not contain the required audience.

このエラーは、SAML 設定のオーディエンス URL と ID プロバイダーが一致しない場合に発生する可能性があります。ID プロバイダー (IdP) 依存パーティ識別子が SAML 設定で提供されたオーディエンス URL (エンティティ ID) と完全に一致することを確認してください。