实际情况:
我有一个运行我的JEE-应用程序的Liberty服务器。如果您输入应用程序,则自由会运行一个登录表单,您可以在其中输入您的用户名和密码,Ldap-Registry将对其进行检查,最终您将获得身份验证,自由会使用您的凭据创建会话。现在您可以看到该应用程序,并且该应用程序可以使用SessionContext并知道-您是谁...
由于我的公司现在已经改变了其安全理念,因此我们必须使用F5 APM。到目前为止:进入应用程序后,您将被重定向到F5 APM,后者将重定向到您可以登录的IDP。然后,使用Http-Header中的IV-User将其重定向回App。好消息是,我仍然可以从这里使用Lioberty Formlogin-但这有点愚蠢,因为您必须登录两次...
现在我的问题是,我该如何使用这个IV用户自由创建UserSession或检查LdapRegistry?
如果您不想查询注册表,则需要创建完整主题。所以代替这个:
return TAIResult.create(HttpServletResponse.SC_OK, userid);
您需要在TAI中执行以下操作:
// stash in hashtable
Hashtable hashtable = new Hashtable();
hashtable.put(AttributeNameConstants.WSCREDENTIAL_UNIQUEID,uniqueid);
hashtable.put(AttributeNameConstants.WSCREDENTIAL_SECURITYNAME,userid);
hashtable.put(AttributeNameConstants.WSCREDENTIAL_GROUPS, groupList);
hashtable.put(AttributeNameConstants.WSCREDENTIAL_CACHE_KEY, "myCustomAttribute" + uniqueid);
Subject subject = new Subject();
subject. getPublicCredentials().add(hashtable);
return TAIResult.create(HTTPServletResponse.SC_OK, "userid", subject);
有关更多信息,请检查以下页面:
成功的身份验证应该创建LTPA cookie,并且不需要其他身份验证,因此,如果您没有看到这种行为,则仍然配置错误。
我对F5 APM进行了快速浏览,看起来它支持OIDC,因此您至少也应该考虑该选项。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句