Active directory LDAP:在应用程序中使用属性

Active directory LDAP:在应用程序中使用属性,active-directory,ldap,acl,openldap,Active Directory,Ldap,Acl,Openldap,这是一个关于在应用程序中使用目录服务(DS)的理论问题。我不在乎它是不是ActiveDirectory,OpenLDAP。。。但我建议使用LDAP协议。 我对DS这个话题还不熟悉,所以请原谅我的简单问题 大多数情况下,我认为应用程序只使用身份验证机制。将用户在“应用程序登录”对话框中输入的凭据传递到ldap绑定,并查看其是否有效 但我想了解如何在DS中设计和实现应用程序内部访问权限,而不仅仅是登录的身份验证。例如,检查是否允许用户单击按钮 它是否只是对已创建LDAP对象的查询,并对照指示通过或拒

这是一个关于在应用程序中使用目录服务(DS)的理论问题。我不在乎它是不是ActiveDirectory,OpenLDAP。。。但我建议使用LDAP协议。 我对DS这个话题还不熟悉,所以请原谅我的简单问题

大多数情况下,我认为应用程序只使用身份验证机制。将用户在“应用程序登录”对话框中输入的凭据传递到ldap绑定,并查看其是否有效

但我想了解如何在DS中设计和实现应用程序内部访问权限,而不仅仅是登录的身份验证。例如,检查是否允许用户单击按钮

它是否只是对已创建LDAP对象的查询,并对照指示通过或拒绝的预期值检查其属性值(仅在读取该对象的应用程序中有意义)? 这很简单,我不确定这就是所有的奇迹

是吗

附言:我不是说DS的企业特性(复制、性能等)

谢谢

大多数情况下,我认为应用程序只使用身份验证机制。将用户在“应用程序登录”对话框中输入的凭据传递到ldap绑定,并查看其是否有效

他们当然会这么做,但还有更多

但我想了解如何在DS中设计和实现应用程序内部访问权限,而不仅仅是登录的身份验证。例如,检查是否允许用户单击按钮

身份验证之后,应用程序将检索用户的属性,或他自己的DN出现在其中的DNs,例如角色

它是否只是对已创建LDAP对象的查询,并对照指示通过或拒绝的预期值检查其属性值(仅在读取该对象的应用程序中有意义)?这很简单,我不确定这就是所有的奇迹

如何实现这一点取决于LDAP服务器中角色的确切表示方式。您描述了一种方式:还有其他方式

大多数情况下,我认为应用程序只使用身份验证机制。将用户在“应用程序登录”对话框中输入的凭据传递到ldap绑定,并查看其是否有效

他们当然会这么做,但还有更多

但我想了解如何在DS中设计和实现应用程序内部访问权限,而不仅仅是登录的身份验证。例如,检查是否允许用户单击按钮

身份验证之后,应用程序将检索用户的属性,或他自己的DN出现在其中的DNs,例如角色

它是否只是对已创建LDAP对象的查询,并对照指示通过或拒绝的预期值检查其属性值(仅在读取该对象的应用程序中有意义)?这很简单,我不确定这就是所有的奇迹


如何实现这一点取决于LDAP服务器中角色的确切表示方式。您已经描述了一种方法:还有其他方法。

EJP总结了一切

但我想强调的一点是:

是否只是查询已创建的LDAP对象并检查其属性值

正如EJP所说,您可以这样做。在我看来,DS限制了LDAP实现服务器的功能。DS是一个层次化的面向对象数据库。因此,您可以存储角色、用户以及它们之间的规则/关系

但是还有更多,对于你提到的那一点,我非常欣赏其中一个,那就是ACL机制

我知道OpenLDAP实现,所以我将把它当作exmaple,但我相信其他人也有相同的机制

ACL允许您在DS中描述用户可以使用不同权限访问的内容:

  • 阅读
  • 执行
因此,您可以很容易地想象DS中描述应用程序的分支,并配置ACL以允许某些用户组对与应用程序对应的条目具有不同的访问权限

在实际使用中,您将能够搜索应用程序分支及其所有子级,DS将仅返回您能够读取的条目的分支/条目/属性

这是我曾为不同的应用程序设想过的,但从未将其推到如此极端,因此需要更多地考虑这一点来优化它,但它是可行的

我通常做的是,例如,您的DS包含一个存储分支,并且根据您用户的角色,并非存储的每个属性都是可读/写的,因此我在ACL中实现了这一机制,在实际代码中,我只是:

  • 检索存储:不会返回用户无法读取的属性
  • 写入对存储的更改:如果用户无法写入某个属性,DS将返回一个错误

因此,所有的访问权限逻辑都“内置”在DS中,您只需管理CRUD api。

EJP总结了所有内容

但我想强调的一点是:

是否只是查询已创建的LDAP对象并检查其属性值

正如EJP所说,您可以这样做。在我看来,DS限制了LDAP实现服务器的功能。DS是一个层次化的面向对象数据库。因此,您可以存储角色、用户以及它们之间的规则/关系

但是还有更多,对于你提到的那一点,我非常欣赏其中一个,那就是ACL机制

我知道OpenLDAP实现,所以我将把它当作exmaple,但我相信其他人也有相同的机制

ACL允许您在DS中描述用户可以使用不同权限访问的内容:

  • 阅读
  • 执行
因此,您可以很容易地想象DS中描述应用程序的分支