Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ldap凭据并在postgresql表中搜索_Java_Spring_Postgresql_Ldap - Fatal编程技术网

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

Java 使用ldap凭据并在postgresql表中搜索,java,spring,postgresql,ldap,Java,Spring,Postgresql,Ldap,我是LDAP的初学者,我想在将来的PostgreSQL数据库项目中使用它 假设我将使用LDAP服务器进行身份验证,因此用户表不会插入到PostgreSQL数据库中,在PostgreSQL数据库中,我将有其他表,这些表必须与将从LDAP检索的用户标识相关,因此我必须在每个表中添加一个名为uid的列,该列存储用户的uid值。我的想法正确吗?你所描述的很好。请注意,使用哪个属性作为唯一标识符取决于使用哪个LDAP目录 我只知道Active Directory,它根本不使用uid属性。AD有几个强制唯一

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


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

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

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

DifferentizedName:描述对象在目录中的位置。它看起来像:CN=gabrielluci,OU=Users,DC=domain,DC=com。这在LDAP中是常见的,但在其他LDAP目录中可能被称为不同的内容。 sAMAccountName:这通常称为用户名。它在域上必须是唯一的,但可以更改。 userPrincipalName:使用以下格式username@domain.com. 这在广告林中必须是唯一的,但当同一个组织中有多个广告域时,可以更改广告林 objectSid:通常只是调用。它存储为字节数组,但可以转换为类似于S-1-5-32--的字符串。这是Windows在安全权限中用于向帐户授予文件等权限的内容。这是无法更改的。 objectGuid:创建帐户时自动分配的GUID。这是无法改变的。 前三个是人类可读的,通常会有人的名字。其他两个不是,但它们在对象的生命周期中也保持不变。如果用户更改了名称,SID和GUID将仍然相同


您使用哪一种取决于您的需求。DifferentizedName是唯一的,允许您在需要时直接绑定到对象,而不必搜索sAMAccountName来查找帐户。但是,如果您想要的东西即使人名更改也不会更改,那么objectSid或objectGUID是最好的。

如果它符合您的要求,则是正确的:只有您可以回答。是的。有意义。只要参考键(例如uid)是唯一的,并且在创建后不会更改。我们的想法是在ldap用户条目中找到一个不会更改的属性…@Gabriel:是的,它符合我的要求,正如我说的,我是ldap初学者,所以我搜索与其他数据库通信的最佳方式我不能推荐任何东西。我们在工作中使用Active Directory,所以这就是我所用过的全部。我之所以这么问,是因为不同的服务器工作方式不同,例如Active Directory不使用uid属性。我添加了一个带有一些建议的答案。非常感兴趣的解释^非常感谢。