您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

钩住容器要求LDAP用户角色的过程

钩住容器要求LDAP用户角色的过程

您所要求的取决于您使用的特定于供应商的功能所提供的灵活性。您的产品可能会也可能不会允许您扩展那个/这些LoginModule// Realm/ 的行为,IdentityStore无论它是什么/被称为专有类,甚至可能只是在某些管理UI的输入字段中键入SQL查询。最重要的是,它是非标准功能

在标准Java EE方面,有 JASPIC用户/消息身份验证)和 JACC (授权)SPI。两者都可用于从某些外部存储中检索与您的用户有关的安全性相关信息。JASPIC不能做的就是 验证 更改用户的角色;也就是说,在经过 身份验证的请求 1的持续时间内,用户的角色是 固定的 。JASPIC也不能赋予这些角色以 含义 ;因为它们仅仅String是AS将以某种专有方式派生groupPrincipal的原因。另一方面,JACC可以做这些事情,因为它建立了“规则库”(认为Policy),它将角色,主体和Permissions精确地关联起来,并且可以在每次用户与系统的每次交互中查询。JACC还可以覆盖或更改对通过部署描述符和批注表示的Java EE安全约束的解释。

我将在这文章包括一个基于JASPIC的解决方案,而在很大程度上忽略了JACC,因为:

关于以下内容的一些评论

进一步阅读:

1 JASPIC是非常通用的SPI,从理论上讲,当插入有能力的消息处理运行时时,它就可以对JMS,SAML-over- SOAP和任何其他类型的消息进行身份验证。即使它主要用于 Servlet容器配置文件 也不会过度限制它。

JASPIC的低级别,灵活的特性使您不了解特定于协议的功能,例如HTTP会话。因此,ServerAuthContext运行时将触发s / SAM,以对每个请求执行身份验证。

但是,该规范通过允许SAM 通过运行时通过 Callback属性 请求发起 容器身份验证会话 来对此潜在的缺陷作了规定。当要求对同一客户端的后续请求进行身份验证时,SAM可以通过要求运行时重用先前建立的AS身份验证会话,从而避免用户身份(调用方和/或组)重用,从而避免重复整个过程。这是通过执行示例代码的中所示的“不做/离开身份验证状态为协议”来完成的。MessageInfo __Principal``HttpServletSam

最后应该指出的是,JASPIC和Servlet规范都没有明确定义什么是 容器认证会话 。对于SAM身份验证的用户,出于所有实际目的,我将认为AS身份验证会话与HTTP会话等效,只要a)身份验证涉及单个应用程序上下文,b)SAM,如上所述,表示在每个请求上重复使用AS身份验证会话。

其他 2022/1/1 18:26:23 有346人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶