Show Menu
TÓPICOS×

Configuração do LDAP com o AEM 6

O LDAP (o ​Lightweight ​Diretory ​Access ​Protocol) é usado para acessar os serviços de diretório centralizados. Isso ajuda a reduzir o esforço necessário para gerenciar contas de usuário, pois elas podem ser acessadas por vários aplicativos. Um desses servidores LDAP é o Ative Diretory. O LDAP é frequentemente usado para obter o Single Sign On, que permite que o usuário acesse vários aplicativos depois de fazer logon uma vez.
As contas de usuário podem ser sincronizadas entre o servidor LDAP e o repositório, com os detalhes da conta LDAP sendo salvos no repositório. Isso permite que as contas sejam atribuídas a grupos de repositório para alocar as permissões e os privilégios necessários.
O repositório usa a autenticação LDAP para autenticar esses usuários, com credenciais sendo enviadas ao servidor LDAP para validação, o que é necessário antes de permitir o acesso ao repositório. Para melhorar o desempenho, as credenciais validadas com êxito podem ser armazenadas em cache pelo repositório, com um tempo limite de expiração para garantir que a revalidação ocorra após um período apropriado.
Quando uma conta é removida do servidor LDAP, a validação não é mais concedida e, portanto, o acesso ao repositório é negado. Detalhes das contas LDAP salvas no repositório também podem ser expurgados.
O uso dessas contas é transparente para os usuários, eles não veem diferença entre as contas de usuário e de grupo criadas a partir do LDAP e as criadas exclusivamente no repositório.
No AEM 6, o suporte a LDAP vem com uma nova implementação que requer um tipo de configuração diferente do das versões anteriores.
Todas as configurações LDAP agora estão disponíveis como configurações OSGi. Eles podem ser configurados pelo console de Gerenciamento da Web em: https://serveraddress:4502/system/console/configMgr
Para que o LDAP funcione com o AEM, é necessário criar três configurações OSGi:
  1. Um provedor de identidade LDAP (IDP).
  2. Um Manipulador De Sincronização.
  3. Um módulo de logon externo.
Assista ao módulo de logon externo do Oak: autenticação com LDAP e muito mais para aprofundar os módulos de logon externo.
Para ler um exemplo de configuração do Experience Manager com o Apache DS, consulte Configuração do Adobe Experience Manager 6.5 para usar o Apache Diretory Service.

Configurando o provedor de identidade LDAP

O Provedor de identidade LDAP é usado para definir como os usuários são recuperados do servidor LDAP.
Ele pode ser encontrado no console de gerenciamento sob o nome do provedor ​de identidade LDAP Apache Jackrabbit Oak.
As seguintes opções de configuração estão disponíveis para o provedor de identidade LDAP:
Nome do provedor LDAP Nome desta configuração de provedor LDAP.
Nome do host do servidor LDAP Nome do host do servidor LDAP
Porta do servidor LDAP Porta do servidor LDAP
Usar SSL Indica se uma conexão SSL (LDAPs) deve ser usada.
Usar TLS Indica se o TLS deve ser iniciado em conexões.
Desativar verificação de certificado Indica se a validação do certificado do servidor deve ser desativada.
Ligar DN DN do usuário para autenticação. Se isso for deixado em branco, um vínculo anônimo será executado.
Vincular senha Senha do usuário para autenticação
Tempo limite de pesquisa Tempo até que a pesquisa atinja o tempo limite
Máximo de ativos do pool de administração O tamanho máximo ativo do pool de conexões administrativas.
Máximo de ativos do pool de usuários O tamanho máximo ativo do pool de conexões do usuário.
DN base do usuário O DN para pesquisas de usuários
Classes de objetos de usuário A lista de classes de objetos que uma entrada de usuário deve conter.
Atributo de ID do usuário Nome do atributo que contém a ID do usuário.
Filtro extra do usuário Filtro LDAP extra a ser usado ao procurar usuários. O filtro final é formatado da seguinte forma: '(&(<idAttr>=<userId>)(objectclass=<objectclass>)<extraFilter>)' (user.extraFilter)
Caminhos de DN do usuário Controla se o DN deve ser usado para calcular uma parte do caminho intermediário.
DN base do grupo O DN de base para pesquisas de grupo.
Classes de objetos de grupo A lista de classes de objetos que uma entrada de grupo deve conter.
Atributo do nome do grupo Nome do atributo que contém o nome do grupo.
Filtro extra do grupo Filtro LDAP extra a ser usado ao procurar grupos. O filtro final está formatado como: '(&(<nameAttr>=<groupName>)(objectclass=<objectclass>)<extraFilter>)'
Caminhos de DN de grupo Controla se o DN deve ser usado para calcular uma parte do caminho intermediário.
Atributo do membro do grupo Atributo de grupo que contém os membros de um grupo.

Configuração Do Manipulador De Sincronização

O manipulador de sincronização definirá como os usuários e grupos do Provedor de identidades serão sincronizados com o repositório.
Ele está localizado no nome Apache Jackrabbit Oak Default Sync Handler no console de gerenciamento.
As seguintes opções de configuração estão disponíveis para o Manipulador de sincronização:
Nome do manipulador de sincronização Nome da configuração de sincronização.
Tempo de expiração do usuário Duração até que um usuário sincronizado expire.
Associação automática do usuário Lista de grupos aos quais um usuário sincronizado é adicionado automaticamente.
Mapeamento de propriedades do usuário Lista mapeamento definição de propriedades locais de propriedades externas.
Prefixo do caminho do usuário O prefixo de caminho usado ao criar novos usuários.
Expiração da associação do usuário Hora após a qual a associação expira.
Profundidade de aninhamento da associação do usuário Retorna a profundidade máxima de aninhamento de grupo quando as relações de associação são sincronizadas. Um valor de 0 desativa a pesquisa de associação de grupo. Um valor de 1 só adiciona os grupos diretos de um usuário. Esse valor não tem efeito ao sincronizar grupos individuais somente ao sincronizar um ancestral de associação de usuários.
Tempo de expiração do grupo Duração até que um grupo sincronizado expire.
Associação automática de grupo Lista de grupos aos quais um grupo sincronizado é adicionado automaticamente.
Mapeamento de propriedades do grupo Lista mapeamento definição de propriedades locais de propriedades externas.
Prefixo do caminho do grupo O prefixo de caminho usado ao criar novos grupos.

O módulo de logon externo

O módulo de logon externo está localizado no Módulo ​de logon externo Apache Jackrabbit Oak sob o console de gerenciamento.
O módulo de logon externo do Apache Jackrabbit Oak implementa as especificações do Java Authentication and Authorization Service (JAAS). Consulte o Oracle Java Security Reference Guide JAASRefGuide.html oficial para obter mais informações.
Seu trabalho é definir qual provedor de identidade e manipulador de sincronização usar, vinculando efetivamente os dois módulos.
As seguintes opções de configuração estão disponíveis:
Classificação JAAS
Especificação da classificação (ou seja, ordem de classificação) desta entrada do módulo de logon. As entradas são classificadas em ordem decrescente (ou seja, as configurações classificadas com valor mais alto vêm primeiro).
Sinalizador de controle JAAS
Propriedade que especifica se um LoginModule é OBRIGATÓRIO, REQUISITO, SUFICIENTE ou OPTIONAL.Consulte a documentação de configuração do JAAS para obter mais detalhes sobre o significado desses sinalizadores.
Realm JAAS
O nome do realm (ou nome do aplicativo) com base no qual LoginModule deve ser registrado. Se nenhum nome de realm for fornecido, LoginModule será registrado com um realm padrão, conforme configurado na configuração Felix JAAS.
Nome do provedor de identidade
Nome do provedor de identidade.
Nome do manipulador de sincronização
Nome do manipulador de sincronização.
Se você planeja ter mais de uma configuração LDAP com sua instância do AEM, é necessário criar provedores de identidade e manipuladores de sincronização separados para cada configuração.

Configurar LDAP por SSL

O AEM 6 pode ser configurado para autenticação com LDAP por SSL seguindo o procedimento abaixo:
  1. Marque as caixas de seleção Usar SSL ou Usar TLS ao configurar o Provedor de identidade LDAP.
  2. Configure o Manipulador de sincronização e o módulo de logon externo de acordo com sua configuração.
  3. Instale os certificados SSL na sua VM Java, se necessário. Isso pode ser feito usando keytool:
    keytool -import -alias localCA -file <certificate location> -keystore <keystore location>
  4. Teste a conexão com o servidor LDAP.

Criação de certificados SSL

Certificados autoassinados podem ser usados ao configurar o AEM para autenticação com LDAP via SSL. Abaixo está um exemplo de um procedimento de trabalho para gerar certificados para uso com o AEM.
  1. Verifique se você tem uma biblioteca SSL instalada e funcionando. Este procedimento usará o OpenSSL como exemplo.
  2. Crie um arquivo personalizado de configuração OpenSSL (cnf). Isso pode ser feito copiando o arquivo de configuração padrão openssl.cnf e personalizando-o. Em sistemas UNIX, geralmente está localizado em /usr/lib/ssl/openssl.cnf
  3. Continue criando a chave raiz da CA executando o comando abaixo em um terminal:
    openssl genpkey -algorithm [public key algorithm] -out certificatefile.key -pkeyopt [public key algorithm option]
    
    
  4. Em seguida, crie um novo certificado autoassinado:
    openssl req -new -x509 -days [number of days for certification] -key certificatefile.key -out root-ca.crt -config CA/openssl.cnf
  5. Inspecione o certificado recém-gerado para verificar se tudo está na ordem:
    openssl x509 -noout -text -in root-ca.crt
  6. Verifique se todas as pastas especificadas no arquivo de configuração do certificado (.cnf) existem. Caso contrário, crie-os.
  7. Crie uma semente aleatória, executando, por exemplo:
    openssl rand -out private/.rand 8192
  8. Mova os arquivos .pem criados para os locais configurados no arquivo .cnf.
  9. Por fim, adicione o certificado ao armazenamento de chaves Java.

Ativação do registro de depuração

O registro de depuração pode ser ativado tanto para o provedor de identidade LDAP quanto para o módulo de logon externo, a fim de solucionar problemas de conexão.
Para ativar o registro de depuração, é necessário:
  1. Vá para o Console de gerenciamento da Web.
  2. Localize "Apache Sling Logging Logger Configuration" e crie dois loggers com as seguintes opções:
  • Nível de registro: Depuração
  • Arquivo de registro logs/ldap.log
  • Padrão de mensagem: {0,date,dd.MM.yyyy HH:mm:ss.SSS} &ast;{4}&ast; {2} {3} {5}
  • Logger: org.apache.Jackrabbit.oak.security.authentication.ldap
  • Nível de registro: Depuração
  • Arquivo de log: logs/external.log
  • Padrão de mensagem: {0,date,dd.MM.yyyy HH:mm:ss.SSS} &ast;{4}&ast; {2} {3} {5}
  • Logger: org.apache.Jackrabbit.oak.spi.security.authentication.external

Uma palavra sobre afiliação de grupo

Os usuários sincronizados por meio do LDAP podem fazer parte de grupos diferentes no AEM. Esses grupos podem ser grupos LDAP externos que serão adicionados ao AEM como parte do processo de sincronização, mas também podem ser grupos adicionados separadamente e que não fazem parte do esquema de afiliação do grupo LDAP original.
Na maioria dos casos, esses podem ser grupos adicionados por um administrador local do AEM ou por qualquer outro provedor de identidade.
Se um usuário for removido de um grupo no servidor LDAP, a alteração também será refletida no lado do AEM após a sincronização. No entanto, todas as outras afiliações de grupo do usuário que não foram adicionadas pelo LDAP permanecerão em vigor.
O AEM detecta e lida com a remoção de usuários de grupos externos, fazendo uso da rep:externalId propriedade. Essa propriedade é adicionada automaticamente a qualquer usuário ou grupo sincronizado pelo Manipulador de sincronização e contém informações sobre o provedor de identidade de origem.
Para obter mais informações, consulte a documentação do Apache Oak sobre Sincronização de usuários e grupos.

Problemas conhecidos

Se você planeja usar o LDAP sobre SSL, certifique-se de que os certificados que está usando sejam criados sem a opção de comentário do Netscape. Se essa opção estiver ativada, a autenticação falhará com um erro de handshake SSL.