我正在从事一个项目,该项目涉及多年来有机发展的几个不同的安全框架。有兴趣组合角色信息而不迁移到单个 LDAP 或 ActiveDirectory。
理想情况下,我们需要 SSO 来整合来自这些来源的角色信息。做这个的最好方式是什么?我是否需要多个使用密码堆叠的 LoginModule,然后我会在什么时候发现身份存储 A 中的用户“wwkbf”与身份存储 B 中的“user8204”相同?我将如何解决身份存储 A 中的“经理”角色与身份存储 B 中的“经理”角色不同的问题?
在一种关注分离的情况下,LoginModule
为每个身份存储写一个。
如果您必须通过身份存储来分隔角色,请为每个身份存储创建一组唯一的(例如不同的包名称)Principal
和Credential
s。
根据您的上下文,用户映射可以是静态的或动态的。
Static
可以是一个映射文件或包含一个用户的所有用户 ID 的数据库。定义哪个 userId 是“主要”用户 ID(用户提供的 SSO 使用的用户 ID)。将此设置LoginModule
在堆栈的顶部并Subject
用所有Principal
s 填充(每个 userId 一个)。
Dynamic
意味着每个身份存储都知道以下身份存储的用户 ID。