Java - LDAP:为什么我们需要用于LDAP绑定的硬编码管理员用户凭据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - LDAP:为什么我们需要用于LDAP绑定的硬编码管理员用户凭据相关的知识,希望对你有一定的参考价值。
我正在编写一个Spring Boot应用程序,我想根据LDAP服务器对用户进行身份验证。我见过解决方案和API documentation,其中管理员用户凭据在代码中是硬编码的。
我的问题是:为什么我不能简单地使用我想要首先验证的用户的凭据?如果绑定成功,我可以确认身份验证并获取他们所属的组列表。有什么理由我不应该这样做吗?
答案
LDAP示例通常包括管理员用户的原因是因为LDAP并不总是用于身份验证(即,确定特定用户名/密码是否有效),但有时仅用于授权(即,检索用户指定的组,以确定是否当认证部分在其他地方完成时(例如,通过Kerberos SSO),他们应该有权访问受保护的资源)。如果您的唯一用例是bind,那么是的,您不应该需要admin用户。
编辑:但有一点需要注意 - LDAP服务器可能对绑定有限制(例如,参见this question),在这种情况下,无论如何都需要有管理员用户。
另一答案
通常,您希望拥有特定于应用程序的服务帐户:
- 执行绑定
- 查找用户
- 返回用户的组成员身份
- 应用程序授权用户根据结果
这有助于管理权威后端的访问控制,因为您只需为服务帐户而不是每个用户创建ACI。它也更安全,因为您授予单个帐户的权限,从而降低了错误配置单个用户权限的可能性。
以上是关于Java - LDAP:为什么我们需要用于LDAP绑定的硬编码管理员用户凭据的主要内容,如果未能解决你的问题,请参考以下文章