AWS SSO - “请求 nameID 格式与我们的记录不匹配”

问题描述

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

Requeest nameID format does not match our record

Requeest nameID format does not match our record

我的请求包含:

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

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

我的问题:

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

解决方法

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

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

AWS SSO->Applications->My App Name

完成后,您可以通过 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 就起作用了!

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...