web-dev-qa-db-ja.com

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]
    ...

また、いくつか設定しました マニュアルによる基本認証

すべてがうまく機能します。

今、私は問題を抱えています。このLDAPへのアクセスを必要とするAtlassianCrowdを実行している別のサーバーがあり、アクセス権を分割するために、そのサービスに独自のLDAP認証エントリを付与したいと思います。しかし、それはユーザーではなく、サービスです。

サービスIDに使用されるobjectClassは何ですか?

(LDAPの初心者として、groupOfUniqueNamesがグループに使用され、inetOrgPersonがユーザーエントリに使用されていることをどのように確認しますか?それは標準のようです。)

3
Jason S

サービスIDに使用されるobjectClassは何ですか?

あなたが望むものは何でも、本当に。 Crowd(またはその他のもの)が認証されるためには、ツリーのどこかに識別名が必要であり、userPassword属性が必要です。

スキーマを見ると(OpenLDAPを使用している場合、通常は/etc/openldap/schemaです)、この条件を満たすobjectClassesを見つけることができます。

最も単純なのはおそらくpersonオブジェクトクラスであり、その定義は次のようになります。

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

つまり、sn属性とcn属性が必要であり、オプションで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はcn=crowd,ou=serviceAccountrs,o=myOrganizationとして認証され、このDNに適切なアクセス許可を与えるようにLDAPディレクトリを構成する必要があります。

11
larsks

サービスアカウントには、オブジェクトクラスaccount(構造)とsimpleSecurityObject(補助)を使用します。このように、サービスアカウントにはuiduserPasswordがあり、どちらも認証と承認を行うときに便利です。

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

RFC 2256/RFC 4519は、この種のことに対して_objectClass: applicationProcess_を推奨しています。

'applicationProcess'オブジェクトクラス定義は、コンピュータシステムで実行されているアプリケーションを表すエントリの基礎です。

関連する属性:cn(必須)、seeAlsooul、およびdescription(オプション)。

RDNにcnの代わりにuidを使用する利点の1つは、ldap_filter: (uid=%U)のようなものを使用している場合、サービスアカウントがユーザーアカウントとして誤って照合されないことです。ユーザールックアップクエリ。

4
Joe English