AWS 单点登录 - "Request nameID format does not match our record"

AWS SSO - "Request nameID format does not match our record"

我正在尝试使用 AWS 单点登录服务获取测试应用程序。当我点击 SSO 登录 url 并输入我的凭据时,它登录正常,但随后亚马逊显示错误:

Requeest nameID format does not match our record

我的请求包含:

<samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" AllowCreate="true" />

Amazon 为我的应用提供的 IdP 元数据 xml 有一个空白 <md:NameIDFormat/> 标签。我猜这与它有关。但是,我在亚马逊 UI 的任何地方都看不到可以指定 nameIDFormat 的地方。

我的问题:

  1. How/where 我可以指定我的 AWS SSO 应用程序接受的 nameIDFormat 吗?这是假设空白 <md:NameIDFormat/> 是(部分)问题。也许这与问题无关,在这种情况下:
  2. 上面的错误信息是什么意思?

您可以在 AWS SSO“应用程序”页面更改 NameID 格式:

  1. 转到 AWS SSO->应用程序->我的应用程序名称
  2. ${user:subject} 设置为属性值(第二列)并在第三列设置 select 必要的 NameID 格式。

完成后,您可以通过 NameIDPolicy 标签发送相应的 NameID 格式:

<saml2p:NameIDPolicy 
        Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>

顺便说一句:通过使用 NameIDPolicy 标记,SP 从 IdP 请求相应的 NameID 格式(电子邮件、瞬时、持久等)。您的 AWS IdP 没有请求的映射并且不知道默认情况下应返回什么或允许什么并抛出您看到的错误。

我遇到了同样的问题,与 Twilio 的技术支持人员交谈,他们给我安装了一个插件,可以让你跟踪 SAML 内容 -> https://chrome.google.com/webstore/detail/saml-tracer/mpdajninpobndbfcldcmbpnnbhibjmch

一旦我纠正了我的问题,nameid-format:unspecified to emailAddress 就起作用了!