代码之家  ›  专栏  ›  技术社区  ›  BERGUIGA Mohamed Amine

使用ldap凭据并在postgresql表中搜索

  •  0
  • BERGUIGA Mohamed Amine  · 技术社区  · 5 年前

    我是一个初学者 LDAP ,我想在未来的项目中使用它 PostgreSQL数据库 .

    假设我将使用LDAP服务器进行身份验证,因此用户表不会插入到PostgreSQL数据库中,在PostgreSQL数据库中,我将有其他必须与用户身份相关的表(将从LDAP检索),因此我必须在每个表中添加一个名为 液体

    1 回复  |  直到 5 年前
        1
  •  1
  •   Gabriel Luci    5 年前

    你所描述的很好。请注意,使用哪个属性作为唯一标识符取决于使用哪个LDAP目录。

    我只知道Active Directory,它不使用 uid 属性。AD有几个强制唯一的属性:

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

    前三个是人类可读的(通常会有人的名字)。其他两个不是,但它们在对象的生命周期中也保持不变(如果用户更改了名称,SID和GUID仍将保持不变)。

    您使用哪一种取决于您的需求。这个 区分名称 是唯一的,允许您在需要时直接绑定到对象(而不是必须搜索 sAMAccountName 查找帐户)。但是如果你想要的东西即使名字改变也不会改变,那么 对象SID objectGUID 这是最好的。