LDAP: entradas para serviços?

2

(Desculpas se a terminologia está errada, sou relativamente novo no LDAP)

Estou configurando um servidor LDAP local (Apache Directory Server) com a seguinte estrutura:

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

Eu também configurei algumas autorização básica de acordo com o manual .

Tudo funciona muito bem.

Agora tenho um problema. Eu tenho outro servidor executando Atlassian Crowd que precisa de acesso a este LDAP, e gostaria de dar a esse serviço sua própria entrada de autorização LDAP, para particionar os direitos de acesso. Mas não é um usuário , é um serviço .

O que objectClass é usado para identidades de serviço?

(e como novato no LDAP, como você descobre que groupOfUniqueNames é usado para grupos, inetOrgPerson é usado para entradas do usuário? Essa parece ser a norma.)

    
por Jason S 28.09.2011 / 17:53

2 respostas

8

What objectClass is used for service identities?

O que você quiser, realmente. Para que Crowd (ou qualquer outra coisa) autenticar, você precisa de um nome distinto em algum lugar da sua árvore e ele precisa ter um atributo userPassword .

Se você observar seu esquema (se estiver usando o OpenLDAP, normalmente /etc/openldap/schema ), você pode encontrar objectClasses que atendem a essa critério.

O mais simples é provavelmente a classe de objeto person , a definição para que se parece com isso:

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

Isso exige os atributos sn e cn e pode opcionalmente tem um atributo userPassword (assim como alguns outros). Então, talvez você adicione uma entrada como esta:

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

Isso pressupõe que você tem um serviceAccounts OU onde você colocar esse tipo de coisa, o que provavelmente é uma boa ideia (porque isso separa claramente as contas de serviço das contas de usuários).

A multidão se autenticaria como cn=crowd,ou=serviceAccountrs,o=myOrganization , e você precisaria configure seu diretório LDAP para dar a este DN o acesso apropriado permissões.

    
por 28.09.2011 / 18:30
4

Eu uso classes de objeto account (estrutural) e simpleSecurityObject (auxiliar) para contas de serviço. Dessa forma, a conta de serviço tem um uid e um userPassword , ambos bons para fazer ao fazer autenticação e autorização.

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