design do esquema LDAP

1

Sou bem novo no LDAP & tentando projetar um esquema para uma necessidade particular.

Eu tenho uma organização de suporte.

Existem três níveis P1 - permissões mais baixas P2 - meio P3 - permissões mais altas.

Eu dividi a equipe de suporte em subequipes.

TeamA gerencia clientes A1, A2, A3, etc TeamB gerencia clientes B1, B2, B3, etc.

O cliente A1 tem seus usuários internos. Usuários internos de cada cliente têm 2 níveis de permissões, P1 ou P2. Suas permissões P1 ou P2 são apenas para coisas relevantes para elas mesmas. ou seja, um P2 do Cliente A1 não terá nenhuma permissão para o Cliente A2.

As pessoas do TeamA (que gerenciam os clientes A1, A2, etc.) têm permissões P1 ou P2. Uma pessoa da TeamA que tenha permissões P2 terá permissões P2 para cada cliente gerenciado pela TeamA. Ou seja, uma equipe A P2 terá P2 para A1, A2, A3 (todos eles).

Depois, há uma equipe de suporte super. Aqui as pessoas não são específicas para grupos de clientes. Um P2 da equipe do SuperSupport terá permissões P2 para o Cliente A1, Cliente B1 - para tudo. Um P3 será semelhante.

Eu projetei um esquema

# Root node
dn: dc=myorg,dc=com
objectclass: organization
objectclass: dcObject
o: myorg.com
dc: myorg

# Groups
dn: ou=Groups, dc=myorg,dc=com
objectclass: organizationalUnit
ou: Groups

dn: cn=P1, ou=Groups, dc=myorg,dc=com
objectclass: organizationalRole
cn: P1
description: Lowest level

dn: cn=P2, ou=Groups,dc=myorg,dc=com
objectclass: organizationalRole
cn: P2
description: Higher level

dn: cn=P3, ou=Groups,dc=myorg,dc=com
objectclass: organizationalRole
cn: P3
description: Highest level of Support

# Teams
dn: ou=Team, dc=myorg,dc=com
objectclass: organizationalUnit
ou: partner
description: Teams

# Team A
dn: ou=teamB, ou=Team, dc=myorg,dc=com
objectclass: organizationalUnit
ou: teamA
description: Team A

# Team B
dn: ou=teamb, ou=Team, dc=myorg,dc=com
objectclass: organizationalUnit
ou: teamB
description: Team B

# Customers

# Customer A1 of Team A
dn: ou=custa1, ou=teama, ou=Team dc=myorg,dc=com
objectclass: organizationalUnit
ou: custa1
description: Some Org

# Customer B2 of Team B
dn: ou=custb2, ou=teamb, ou=Team, dc=myorg,dc=com
objectclass: organizationalUnit
ou: custb2
description: Some other Org

É correto até isso?

Estou ficando um pouco além disso - como coloco pessoas de equipes diferentes, clientes diferentes, super suporte etc, para que seja fácil descobrir facilmente depois de vincular o servidor ldap com um uname / passwd - quais permissões esse usuário em particular possui.

Alguém pode me ajudar ou me indicar um esquema de amostra para requisitos semelhantes?

    
por Genboy 27.01.2011 / 07:19

1 resposta

1

O pedante em mim é forçado a apontar que o que você está criando aqui não é um esquema, mas um layout. Um esquema define objetos-tipos e atributos nos objetos, um layout define onde os objetos estão e quais valores são atribuídos aos atributos.

Isso fora do caminho ...

Ao adicionar pessoas, você as associará às regras organizacionais definidas e as pessoas poderão pertencer a muitas delas. De fato, onde seu objeto realmente reside, não confere nenhum direito; é o ato de associar uma sala de cirurgia a eles. Quando eles ligam, eles ganham os direitos dos ORs dos quais são membros, independentemente de onde estejam seus objetos.

Para responder à sua pergunta sobre como descobrir os direitos, eles devem ser listados em dois lugares:

  • Em seu objeto de usuário
  • No objeto organizationalRole

Você formularia a consulta LDAP para extrair o atributo orMember do objeto de usuário ou consultar todos os objetos organizationalRole com um membro do usuário. O nome exato do atributo no usuário depende do esquema real do LDAP em uso.

    
por 27.01.2011 / 07:34

Tags