gpt4 book ai didi

java - 使用 ldap 凭证并在 postgresql 表中搜索

转载 作者:行者123 更新时间:2023-12-02 10:27:43 27 4
gpt4 key购买 nike

我是 LDAP 的初学者,我想在未来的项目中将其与 PostgreSQL 数据库一起使用。

假设我将使用 LDAP 服务器进行身份验证,因此用户表不会插入到 PostgreSQL 数据库中,在 PostgreSQL 数据库中我将​​有其他必须与用户身份相关的表(这将从 LDAP 检索),因此我必须在每个名为 uid 的表中添加一列,用于存储用户的 uid 值。我的想法正确吗?

最佳答案

你所描述的完全没问题。请注意,您使用哪个属性作为唯一标识符取决于您使用的 LDAP 目录。

我真的只知道 Active Directory,它根本不使用 uid 属性。 AD 有一些强制唯一的属性:

  • distinguishedName:描述对象在目录中的位置。它看起来类似于:CN=Gabriel Luci,OU=Users,DC=domain,DC=com。这对于一般 LDAP 来说很常见,但在其他 LDAP 目录中可能有不同的名称。
  • sAMAccountName:这通常称为“用户名”。它在域中必须是唯一的,但可以更改。
  • userPrincipalName:使用格式username@domain.com。这在 AD 林中必须是唯一的,但可以更改(“林”是指同一组织中有多个 AD 域)
  • objectSid:(通常称为 SID )。它存储为字节数组,但可以转换为类似于 S-1-5-32-##########-########## 的字符串#-##########-#####。这是 Windows 在安全权限中使用的内容来授予帐户对文件等的权限。这是无法更改的。
  • objectGuid:创建帐户时自动分配的 GUID。这是无法更改的。

前三个是人类可读的(它们通常包含该人的名字)。另外两个不是,但它们在对象的生命周期中也保持不变(如果该人更改了姓名,SID 和 GUID 仍将相同)。

您使用哪一个取决于您的要求。 distinguishedName 是唯一的,允许您在需要时直接绑定(bind)到对象(而不是必须搜索 sAMAccountName 来查找帐户)。但如果您想要即使人名发生变化也永远不会改变的东西,那么 objectSidobjectGUID 是最好的。

关于java - 使用 ldap 凭证并在 postgresql 表中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53807113/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com