LDAP:服务条目?

(道歉,如果我有错误的术语,我是相当新的LDAP)

我使用以下结构设置本地LDAP服务器(Apache Directory Server):

o={my organization name} [objectClass=organization] ou=groups [objectClass=organizationalUnit] cn=someGroup [objectClass=groupOfUniqueNames] cn=otherGroup [objectClass=groupOfUniqueNames] ... ou=users [objectClass=organizationalUnit] cn=user1 [objectClass=inetOrgPerson] cn=user2 [objectClass=inetOrgPerson] cn=user3 [objectClass=inetOrgPerson] ... 

我也根据手册设置了一些基本的授权

一切都很好。

现在我有一个问题。 我有另一台运行Atlassian Crowd的服务器需要访问这个LDAP,我想给这个服务自己的LDAP授权条目来分区访问权限。 但这不是用户 ,而是服务

什么objectClass用于服务标识?

(作为LDAP的新手,你如何发现groupOfUniqueNames用于组,inetOrgPerson用于用户input?这似乎是常态。)

什么objectClass用于服务标识?

无论你想要什么,真的。 为了让Crowd(或其他)进行身份validation,您需要在您的目录树中的某个专有名称,并且它需要具有一个userPassword属性。

如果你看看你的模式(如果你使用OpenLDAP,通常是/etc/openldap/schema ),你可以find满足这个条件的objectClass。

最简单的可能是person对象类,其定义如下所示:

 objectclass ( 2.5.6.6 NAME 'person' DESC 'RFC2256: a person' SUP top STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) ) 

这就是说它需要sncn属性,并且可以有一个userPassword属性(以及其他一些属性)。 所以也许你会添加一个这样的条目:

 dn: cn=crowd,ou=serviceAccounts, o=myOrganization objectClass: person cn: crowd sn: Service Account description: Service account for Crowd access to LDAP userPassword: {SSHA}MZO/eoDUg/nFJDAZBvawCRYIxSeQUm3U 

这假设你有一个serviceAccounts OU,你可以放置这样的事情,这可能是一个好主意(因为这明显地将服务帐户与用户帐户分开)。

Crowd将authentication为cn=crowd,ou=serviceAccountrs,o=myOrganization ,并且您将需要configuration您的LDAP目录,为此DN提供适当的访问权限。

我使用对象类account (结构)和simpleSecurityObject (辅助)的服务帐户。 这样服务帐户有一个用户名和一个用户密码,这两者在进行身份validation和授权时都是很好的。

 dn: uid=kerberos,ou=services,dc=example,dc=com objectClass: account objectClass: simpleSecurityObject objectClass: top uid: kerberos userPassword: {SSHA}xxxxxxxxxx