Configurando grupos dinâmicos

Para usar grupos dinâmicos, siga essas etapas:
cad126br
Para usar grupos dinâmicos, siga essas etapas:
  1. Adicionar integrantes ao grupo dinâmico.
    Você pode executar uma ou ambas as ações a seguir:
    • Crie uma função de aplicativo.
    • Configure funções de diretório dinâmicas.
Ativar grupos dinâmicos
As funções dinâmicas têm como base o atributo
dxMemberURL
das seguintes classes de objeto:
  • dxDynamicGroupOfNames
  • dxDynamicGroupOfUniqueNames
Você pode adicionar esses atributos à classe de objeto 
groupOfNames
ou
groupOfUniqueNames
 respectivamente, para que 
dxMemberURL
 possa ser incluído.
Observação
: é um equívoco comum que
groupOfUniqueNames
seja escolhido em vez de
groupOfNames
para garantir que os valores do integrante sejam exclusivos. Ambas as classes de objeto 
groupOfNames
 e 
groupOfUniqueNames
garantem que os valores do integrante sejam exclusivos. Para 
groupOfUniqueNames
, o atributo 
uniqueMember
 define uma sintaxe diferente, 
nameAndOptionalUID
. Esse suporte é incluído para ajudar os clientes a mudarem de uma implantação existente do x.500 para o CA Directory. Nesse cenário, duas entradas podem existir na árvore de informações de diretório com o mesmo DN, mas essas entradas são diferenciadas com um identificador exclusivo. Para implantações somente com LDAP em que a parte de UID da sintaxe 
nameAndOptionalUID
 não seja usada, use 
groupOfNames/member
, já que esta funcionalidade é a mesma.
Siga estas etapas:
  1. Interrompa o DSA.
  2. Adicione os seguintes comandos às configurações do DSA:
    clear dynamic-group; set dynamic-group [tag] = { subtree = DN object-class = objectClass url-attr = attribute member-attr = attribute };
    Por exemplo:
    clear dynamic-group; # to allow command to be reloaded on dxserver init set dynamic-group GROUP = { subtree = <c AU><o Democorp><ou Groups> objectclass = dxDynamicGroupOfNames url-attr = dxMemberURL member-attr = member };
  3. Inicie o DSA.
  4. Certifique-se de que a DIT contenha uma subárvore na qual seja possível armazenar as entradas do grupo.
    Observação:
     usando o parâmetro [subtree = DN], você também pode especificar a subárvore dynamic-group para inspecionar o baseObject de cada solicitação recebida pelo DSA. Usando esse parâmetro, você pode restringir a pesquisa a apebas essa subárvore. Este parâmetro suporta a pesquisa de associação do grupo dinâmico e compara as solicitações sem precisar do comando 
    set use-dynamic-roles = true;
    .
    ou=Groups,o=Democorp,c=AU
Criar um grupo dinâmico
Como um grupo dinâmico é uma entrada de diretório, você pode criar um grupo dinâmico sem interromper o DSA.
Crie uma subárvore especial para as entradas do grupo. Essa etapa o ajudará a, posteriormente, implementar os controles de acesso e as funções.
Siga estas etapas:
  1. (Opcional) Se não existir uma subárvore, crie uma subárvore para as entradas do grupo.
  2. Crie uma entrada na subárvore de grupos com as seguintes informações:
    • Classe de objeto:
      groupOfNames
      ,
      dxDynamicGroupOfNames
    • Filtro de pesquisa LDAP: inclua este filtro no atributo
      dxMemberURL
      .
Exemplo: criar uma entrada de grupo dinâmico para os 
gerentes
Crie uma subárvore de grupo dinâmico e uma entrada de grupo dinâmico para os usuários que tenham a função de gerente.
dn: ou=Groups,o=Democorp,c=AU
objectClass: organizationalUnit
 
dn: cn=Managers,ou=Groups,o=Democorp,c=AU
objectClass: groupOfNames                    # structural objectClass that contains member
objectClass: dxDynamicGroupOfNames           # auxiliary objectClass that contains dxMemberURL
dxMemberURL: ldap://ou=Users,o=Democorp,c=AU??sub?(position=Manager)
Adicionar um integrante a um grupo dinâmico
Para adicionar um integrante a um grupo dinâmico, inclua informações na entrada do usuário para que o filtro daquela função seja satisfeito.
Exemplo: adicionar o usuário 
Craig Link
 ao grupo 
Gerentes
Você criou um grupo dinâmico que usa o filtro a seguir:
ldap://ou=Users,o=Democorp,c=AU??sub?(position=Manager)
Para atribuir o grupo de gerentes a um usuário, siga as seguintes etapas:
  1. Adicione o atributo 
    position
     à entrada de um usuário.
  2. Adicione o valor 
    Gerente
    ao atributo position.
Na próxima vez que o grupo 
Gerente
 for avaliado, esse usuário será um integrante do grupo.
dn: cn=Craig Link,ou=Users,o=Democorp,c=AU
objectClass: inetOrgPerson
surname: Link
position: Manager
Excluir um integrante de um grupo dinâmico
Você pode impedir manualmente que o atributo de integrante de um grupo dinâmico seja preenchido. Às vezes, o atributo de integrante de um grupo dinâmico é preenchido com valores indesejados. Esses dados subjacentes fazem com que uma entrada corresponda ao URL LDAP do grupo dinâmico, que não pode ser alterado. Esses valores podem ser excluídos manualmente por meio do atributo
dxExcludeMember
dos grupos dinâmicos.
Exemplo: excluir o usuário 
Joe Bloggs
 do grupo 
Administradores
Considere um usuário que é um administrador fora do diretório (title=Administrator). Esse atributo também tem funções de diretório sobre as quais o usuário não deve ter privilégios de administrador.
Se tivermos o seguinte grupo dinâmico:
dn: cn=Administrators,ou=Groups,o=Democorp,c=AU
objectClass: groupOfNames
objectClass: dxDynamicGroupOfNames
dxMemberURL: ldap:///ou=Users,o=Democorp,c=AU??sub?(title=Administrator)
O grupo terá o seguinte usuário que satisfaz 
dxMemberURL
:
dn: cn=Joe Bloggs,ou=Users,o=Democorp,c=AU
objectClass: inetOrgPerson
surname: Bloggs
title: Administrator
Você pode excluir o usuário do grupo dinâmico, mas pode reter o valor do atributo de título, fazendo a seguinte alteração no grupo dinâmico:
dn: cn=administrators,ou=Groups,o=Democorp,c=AU
objectClass: groupOfNames
objectClass: dxDynamicGroupOfNames
dxMemberURL: ldap:///ou=Users,o=Democorp,c=AU??sub?(title=Administrator)
dxExcludeMember: cn=Joe Bloggs,ou=Users,o=Democorp,c=AU
Excluir um integrante da associação de grupo dinâmico afeta as seguintes operações que envolvem um grupo dinâmico:
  • Pesquisas de as
    sociação: se você excluir um integrante, a pesquisa na subárvore do grupo dinâmico com
    filter containing member=<DN>
     não retornará nenhum resultado.
  • Pesquisas de função
    : se o integrante for excluído explicitamente, a carga de funções quando um usuário se vincular a um DSA será afetada. As funções pertencentes ao integrante excluído não serão mais carregadas. (requer 
    set use-dynamic-roles = true;
  • Expansão do grupo dinâmico
    : retornar um grupo dinâmico que use uma pesquisa base-object-only que retorne todos os atributos não inclui o integrante excluído na lista de valores de atributos do integrante.
Observações:
  • Existe uma limitação ao retornar um grupo dinâmico usando uma pesquisa base-object-only. Se for especificada uma lista de atributos de retorno, ela deverá conter ao menos objectClass,
    dxMemberURL
     e 
    dxExcludeMember
     para que o atributo do integrante seja preenchido corretamente.
  • Se você usar 
    dxDynamicGroupOfUniqueNames
    , configure o grupo dinâmico para usar o atributo 
    dxExcludeUniqueMember
    .
  • Se você adicionar um grande número de valores (> 100) a 
    dxExcludeMember
    , talvez seja necessário refazer a configuração da entrada do grupo dinâmico. Esse recurso destina-se às exceções, não à regra.
  • Para grupos híbrido (que contenham integrantes estáticos e dinâmicos), um integrante estático será excluído se usado com
    dxExcludeMember
    . Em condições ideais, o valor do integrante estático deve ser removido explicitamente.
  • Para grupos estáticos,
    dxExcludeMember
    não é usado. Se o valor do integrante estático não for mais necessário, ele poderá simplesmente ser removido.
Exibir a configuração de um grupo dinâmico
Para exibir a configuração do grupo dinâmico em uso em um DSA, use o seguinte comando no console do DSA:
get dynamic-groups;
Este comando gera uma lista dos grupos dinâmicos em uso.
Exemplo: saída do comando get dynamic-groups
************** GROUP ************** Group object class : dxDynamicGroupsOfNames Group Search URL : dxMemberURL Member to Append : member Member to Exclude : dxExcludeMember