Saml 断言响应不包含所有属性

问题描述 投票:0回答:1
  • 我正在开发 CAS APEREO SSO IDP 5.3.X。
  • IDP已连接到AD,SPNEGO和KERBEROS已启用。
  • 我设置了一个服务提供商以使用 SAML2 协议来验证用户身份(生成元数据、配置服务等)。
  • 身份验证工作正常。
  • 在浏览器上使用隐身模式时,所有属性都会在 SAML 响应中返回: email 、 memberOf 等。
  • 在正常模式下仅返回用户 ID。即使 NameId 中需要电子邮件地址,CAS 也会返回用户 ID,表明它无法检索电子邮件属性。
  • 我认为这与使用 Kerberos cookie 进行身份验证有关,但无法找出在正常模式下不返回属性的原因。
  • 我使用了两种解决方法来返回所有属性: -- 声明服务时停用 SSO。 或者 -- 使用 http 标头停用 Kerberos。

有什么方法可以在正常模式下获取所有属性而不停用 SSO/KERBEROS。

谢谢你。

single-sign-on kerberos saml-2.0 cas apereo
1个回答
0
投票

只是为了让您了解该决议。 这与 ldap 过滤器之间的差异有关。

cas.authn.attributeRepository.ldap[0].searchFilter=
cas.authn.ldap[0].searchFilter=

在启用 Kerberos 的 SSO 中,使用了 attributeRepository 过滤器。 当不使用 Kerberos 时,使用 Ldap 过滤器 (cas.authn.ldap[0].searchFilter)。

此外,我应该定义要在属性存储库中映射的属性列表:

cas.authn.attributeRepository.ldap[0].attributes.mail= mail
cas.authn.attributeRepository.ldap[0].attributes.cn= cn
cas.authn.attributeRepository.ldap[0].attributes.givenName= givenName
...

这个答案和 CAS 调试日志级别很有帮助。

由于子场景(缓存响应等),这在某种程度上很棘手。每次我都必须重新启动服务器并清理cookie才能重新开始调查..

希望它可以帮助别人。 最好的问候。

© www.soinside.com 2019 - 2024. All rights reserved.