我需要针对组织 LDAP 实现 liferay 身份验证。用户成功登录后,我希望根据 liferay 中创建的本地组检查用户。
例如某些团队中的用户应该只能进入应用程序。由于LDAP中没有任何东西可以将这些用户与LDAP中的其他用户区分开来,我需要在liferay中本地实现一些东西。
当用户登录时,他/她应该通过 LDAP 进行身份验证,然后应该查找本地 liferay 组以检查用户是否属于该组。该组应该可以由 liferay 管理员配置。仅当他/她是该组应用程序主页的一部分时,才应显示数据。
对此的任何指示都会有帮助。谢谢。
最佳答案
这是我的理解:
- 用户存储在 LDAP 中。
- 用户未在 LDAP 中分类。不存在 LDAP 组。
- 因此,当您针对 LDAP 进行身份验证时,LDAP 中存在的所有用户都将登录到 Liferay。
- 但您想要的是,只有属于 Liferay 中特定组的用户才能登录,而其他用户则不能登录。
如果这是您想要的,那么这里是我的一些建议:
- 最好的办法就是拥有groups in LDAP本身。就维护而言,这会更好,因为身份验证已经通过 LDAP 进行。您可以这样做leverage Liferay with LDAP groups 。当然,如果您采用这种方法,则需要通过任何 LDAP 客户端(例如 LDAP admin 或 jExplorer)手动将用户分配到每个组。
- 但如果这是不可能的,那么您可以通过 Organizations 对用户进行分组或UserGroups或者可能是Site (with or without pages)在liferay中。
- 成功通过 LDAP 进行身份验证后,您可以检查特定用户是否属于所需的组织、用户组或站点。您可以使用
LoginPostAction hook
为此目的。 - 如果用户不是所需群组的成员,那么您可以将其从系统中注销,然后根据您的要求将其重新定向到登录页面或其他页面。
- 您还可以设置一个 Hook 来防止更新和删除用户组、组织或网站,这样管理员就不会意外删除或更新相关组,从而导致身份验证失败。
希望这对您有所帮助,请告诉我我所理解的是否正确。
关于java - 莱福瑞授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23421740/