我应该如何从 SAML 响应中提取用户名?
How should I extract a username from a SAML response?
我正在编写 SAML SP,但无法找到一种统一的方法从 IdP 返回的 SAML 响应中提取用户的 username/login。看起来此信息可能位于不同 IdP 的不同位置(NameID、Attribute),而且 IdP 元数据似乎没有提供任何提示。
现在,我正在使用包含 XPath 的额外配置指令来检索用户名,但我想消除它。这是我可以在 SP 元数据中指定的内容吗?
它与 SAML 元数据无关,而是您的 SP 的专有配置。
如您所述,您可以使用 NamedID 的值或属性语句的值。如果您的 SP 允许与不同的 IdP 进行 SSO,则此设置可能基于 IdP-entity。例如。一个 IdP 可能只支持 'transient NameId Format' 然后你不能使用这个值,因为它是一个不透明的句柄,必须一直改变。要了解一些想法,您可以查看 OpenAM 的文档,它为此目的使用 'Account Mapper' (https://backstage.forgerock.com/docs/openam/13.5/admin-guide/chap-federation#sp-account-mapper)
我正在编写 SAML SP,但无法找到一种统一的方法从 IdP 返回的 SAML 响应中提取用户的 username/login。看起来此信息可能位于不同 IdP 的不同位置(NameID、Attribute),而且 IdP 元数据似乎没有提供任何提示。
现在,我正在使用包含 XPath 的额外配置指令来检索用户名,但我想消除它。这是我可以在 SP 元数据中指定的内容吗?
它与 SAML 元数据无关,而是您的 SP 的专有配置。 如您所述,您可以使用 NamedID 的值或属性语句的值。如果您的 SP 允许与不同的 IdP 进行 SSO,则此设置可能基于 IdP-entity。例如。一个 IdP 可能只支持 'transient NameId Format' 然后你不能使用这个值,因为它是一个不透明的句柄,必须一直改变。要了解一些想法,您可以查看 OpenAM 的文档,它为此目的使用 'Account Mapper' (https://backstage.forgerock.com/docs/openam/13.5/admin-guide/chap-federation#sp-account-mapper)