在使用本地用户存储中的JIT创建联盟用户之后,我正在开发UserOperationEventListener
来执行一些操作。
在doPostAddUser方法中,我必须读取身份验证上下文属性FrameworkConstants
。
UNFILTERED_IDP_CLAIM_VALUES
,因为某些声明被DefaultClaimHandler过滤掉,并且在 Map <字符串>,<字符串>声明变量中不可用。
我知道我可以为IdP添加声明映射,但是我更喜欢通过代码来操纵这些声明:如何访问当前的AuthenticationContext?
doPostAddUser
吗?
谢谢。
答案 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编写索赔转换逻辑,请使用第一个选项,否则此解决方案也可以根据您的要求自行决定。
[2] https://docs.wso2.com/display/IS570/Configuring+User-Age-Based+Adaptive+Authentication