我们正在考虑在SAML声明中发送一些会话信息。
会话信息将由所选(自定义)身份验证器接收,例如HTTP标头的值(X509 DN),登录屏幕上提供的额外信息等等。
目前(默认情况下)所有声明都是从用户区读取的(由声明映射映射)。
我目前发现传递会话信息的唯一方法是实现/覆盖SAML2SSOManager实现。
是否有更简单的方法从身份验证器传递一些用户属性,这些属性将作为默认SAML2SSOManager实现的声明处理?
我看到联合身份验证器使用context.getSubject()。getUserProperties()将远程声明传递给SAML响应。这是一种方式吗? (无论我将任何ClaimMapping放入userProperties并根据需要声明声明,我都无法将其作为SAML响应声明)
提前谢谢
答案 0 :(得分:3)
显然,要采用http://pushpalankajaya.blogspot.be/2014/07/adding-custom-claims-to-saml-response.html
所述的方式实现自定义ClaimHandler本地身份验证器可以将声明设置为(主题的)用户属性。
在这种情况下,扩展handleLocalClaims应该足够了,不要弄乱联合映射(联邦身份验证器也使用主题userAttributes)