AWS Identity and Access Management
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

SAML 2.0 与 AWS 联合的问题排查

使用此处的信息可帮助您诊断和修复在将 SAML 2.0 与 IAM 联合使用时可能遇到的问题。

错误:您的请求包含无效的 SAML 响应。要注销,请单击此处。

当来自身份提供商的 SAML 响应没有包含将 Name 设置为 https://aws.amazon.com/SAML/Attributes/Role 的属性时,会出现此错误。属性必须包含一个或多个 AttributeValue 元素,每个元素中包含以逗号分隔的一对字符串:

  • 用户可以映射到的角色的 ARN

  • SAML 提供商的 ARN

有关更多信息,请参阅 为身份验证响应配置 SAML 断言。要在浏览器中查看 SAML 响应,请按照如何在浏览器中查看 SAML 响应以排查问题中列出的步骤操作。

错误:AuthnResponse 中需要 RoleSessionName (服务:AWSSecurityTokenService;状态代码:400;错误代码:InvalidIdentityToken)

当来自身份提供商的 SAML 响应没有包含将 Name 设置为 https://aws.amazon.com/SAML/Attributes/RoleSessionName 的属性时,会出现此错误。属性值是用户的标识符,通常是用户 ID 或电子邮件地址。

有关更多信息,请参阅 为身份验证响应配置 SAML 断言。要在浏览器中查看 SAML 响应,请按照如何在浏览器中查看 SAML 响应以排查问题中列出的步骤操作。

错误:未授权执行 sts:AssumeRoleWithSAML (服务:AWSSecurityTokenService;状态代码:403;错误代码:AccessDenied)

当在 SAML 响应中指定的 IAM 角色有拼写错误或者不存在时,会出现此错误。在 SAML 服务提供商配置中更正角色的名称。

如果联合身份用户没有担任该角色的权限,则会出现此错误。该角色必须具有将 IAM SAML 身份提供商的 ARN 指定为 Principal 的信任策略。角色还包含控制哪些用户可以担任该角色的条件。确保您的用户满足条件要求。

如果 SAML 响应中没有包含 NameIDSubject,也会出现此错误。

有关更多信息,请参阅在 AWS 中为联合身份用户建立权限为身份验证响应配置 SAML 断言。要在浏览器中查看 SAML 响应,请按照如何在浏览器中查看 SAML 响应以排查问题中列出的步骤操作。

错误:AuthnResponse 中的 RoleSessionName 必须匹配 [a-zA-Z_0-9+=,.@-]{2,64} (服务:AWSSecurityTokenService;状态代码:400;错误代码:InvalidIdentityToken)

如果 RoleSessionName 属性值太长或者包含无效字符,则会出现此错误。最大有效长度为 64 个字符。

有关更多信息,请参阅 为身份验证响应配置 SAML 断言。要在浏览器中查看 SAML 响应,请按照如何在浏览器中查看 SAML 响应以排查问题中列出的步骤操作。

错误:响应签名无效 (服务:AWSSecurityTokenService;状态代码:400;错误代码:InvalidIdentityToken)

在身份提供商的联合身份元数据与 IAM 身份提供商的元数据不匹配时,会出现此错误。例如,身份服务提供商的元数据文件可能已更改,以便更新过期的证书。从身份服务提供商下载更新后的 SAML 元数据文件。然后在 AWS 身份提供商实体中更新它,该实体在 IAM 中使用 aws iam update-saml-provider 跨平台 CLI 命令或 Update-IAMSAMLProvider PowerShell cmdlet 定义。

错误:无法担任角色:指定提供商中没有发布者 (服务:AWSOpenIdDiscoveryService;状态代码:400;错误代码:AuthSamlInvalidSamlResponseException)

如果 SAML 响应中的发布者与在 IAM 中创建身份提供方时上传到 AWS 的联合身份元数据文件中声明的发布者不匹配,则会出现此错误。

错误:无法解析元数据。

如果您的元数据文件没有正确格式化,则可能发生此错误。

在 AWS 管理控制台 中创建或管理 SAML 身份提供商时,您必须从您的身份提供商处检索 SAML 元数据文档。此元数据文件包括发布者名称、过期信息以及可用来验证从 IdP 处收到的 SAML 身份验证响应 (断言) 的密钥。元数据文件必须采用不含字节顺序标记 (BOM) 的 UTF-8 格式编码。此外,作为 SAML 元数据文档一部分,x.509 证书必须使用长度至少为 1024 位的密钥。如果密钥过短,则 IdP 将创建失败,并显示“无法解析元数据”这一错误消息。要删除 BOM,您可以使用 Notepad++ 等文本编辑工具以 UTF-8 格式对文件进行编码。