我已经设置了Shibboleth IDPv3来测试我的SP实现。 SP发送SAML登录请求,并向用户显示Shibboleth IDP凭据页面,用户在该页面中输入其Kerberos凭据(我已使用KerberosAuthNConfiguration配置了Loginflow)。 SAML响应返回一个nameId,它看起来像一个编码值。但是,我想要的是NameId元素,用于包含用户用于登录IDP凭据页面的用户名。
尝试在各种XML配置文件中配置bean没有任何运气,我尝试了一些尝试。有没有人尝试类似的东西,这甚至可能实现?
答案 0 :(得分:0)
如果查看文件saml-nameid.properties
,您会看到参数idp.nameid.saml2.default
。我怀疑您的配置设置为默认值urn:oasis:names:tc:SAML:2.0:nameid-format:transient
,它不是编码值,而是随机字符串。
听起来您想要发送“持久”标识符而不是瞬态标识符。为此,
idp.nameid.saml2.default
更改为urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
。 saml-nameid.xml
中启用持久性NameID生成器。 idp.persistentId.sourceAttribute
属性在saml-nameid.properties
中设置要在nameid中使用的属性。 有关如何执行此操作的详细信息,请参阅Shibboleth IdP PersistentNameIDGenerationConfiguration page。