LDAP:服务条目?

LDAP:服务条目?

(如果我的术语有误,请原谅,我对 LDAP 还很陌生)

我正在设置具有以下结构的本地 LDAP 服务器(Apache 目录服务器):

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 用于用户条目?这似乎是常态。)

答案1

什么 objectClass 用于服务身份?

真的,随你便吧。为了让 Crowd(或其他任何东西)进行身份验证,你需要在树中的某个地方有一个可分辨的名称,并且它需要有一个userPassword属性。

如果您查看您的模式(如果您使用 OpenLDAP,通常是 /etc/openldap/schema),您可以找到符合此条件的对象类。

最简单的可能是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

这假定您有一个serviceAccountsOU,您将在其中放置此类东西,这可能是一个好主意(因为这将服务帐户与用户帐户明确分开)。

Crowd 将以 的身份进行身份验证 cn=crowd,ou=serviceAccountrs,o=myOrganization,您需要配置 LDAP 目录以授予此 DN 适当的访问权限。

答案2

RFC 2256 / RFC 4519objectClass: applicationProcess对此类事情提出建议:

“applicationProcess”对象类定义是表示在计算机系统中执行的应用程序的条目的基础。

相关属性:cn(必需)、、、、seeAlso和(ou可选)。ldescription

使用cn而不是uidRDN 的一个优点是,如果您使用类似ldap_filter: (uid=%U)用户查找查询的内容,服务帐户就不会被错误地匹配为用户帐户。

答案3

我对服务帐户使用对象类account(结构) 和simpleSecurityObject(辅助)。这样,服务帐户就有uiduserPassword,在进行身份验证和授权时,这两个都是很好的。

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

相关内容