WSO2 IS 5.7.0 AuthenticationContext和UserOperationEventListener

时间:2019-03-09 11:51:43

标签: wso2 wso2is wso2carbon

在使用本地用户存储中的JIT创建联盟用户之后,我正在开发UserOperationEventListener来执行一些操作。

在doPostAddUser方法中,我必须读取身份验证上下文属性FrameworkConstants

UNFILTERED_IDP_CLAIM_VALUES,因为某些声明被DefaultClaimHandler过滤掉,并且在 Map <字符串>,<字符串>声明变量中不可用。

我知道我可以为IdP添加声明映射,但是我更喜欢通过代码来操纵这些声明:如何访问当前的AuthenticationContext?  doPostAddUser吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

在UserOperationEventListener中无法访问AuthenticationContext,根据WSO2 Identity Server设计架构,这是我们不应该执行的操作。如果要通过代码修改索赔处理逻辑,最好的方法是按照[1]编写自定义索赔处理程序。

[1] https://docs.wso2.com/display/IS570/Writing+a+Custom+Claim+Handler

答案 1 :(得分:1)

另一种可能的解决方案是,由于您使用的是Identity Server 5.7.0,因此可以在JIT期间将自适应身份验证功能用于声明转换。

看看[1]

user.localClaims[“<local_claim_url>”] 

user.remoteClaims[“<remote_claim_url”]

您还可以从[2]中获得有关javascript配置的想法。如果您更喜欢使用Java编写索赔转换逻辑,请使用第一个选项,否则此解决方案也可以根据您的要求自行决定。

[1] https://docs.wso2.com/display/IS570/Adaptive+Authentication+JS+API+Reference#AdaptiveAuthenticationJSAPIReference-userObject

[2] https://docs.wso2.com/display/IS570/Configuring+User-Age-Based+Adaptive+Authentication