LDAP e Active Directory¶
O Drovio Server pode autenticar os utilizadores junto de um diretório LDAP ou de um Active Directory da Microsoft. As contas são criadas automaticamente no primeiro início de sessão, não havendo portanto nada a aprovisionar à mão. O detalhe dos campos é descrito na referência de configuração.
O LDAP pode coabitar com as contas locais e com o SSO. Só diz respeito à aplicação Drovio, uma vez que o cliente web não exige qualquer conta.
Desenrolar de um início de sessão¶
Cada início de sessão segue a sequência clássica ligação, pesquisa, ligação:
- O Drovio Server liga-se ao diretório com a conta de serviço.
- Procura o utilizador sob
base, com a ajuda desearch_filter, onde{0}é substituído pelo endereço de e-mail introduzido no formulário. - Liga-se uma segunda vez com o nome distinto do utilizador e a palavra-passe fornecida. É esta segunda ligação que autentica.
Três consequências a ter em conta ao escrever o seu filtro
- A pesquisa incide sobre toda a subárvore situada sob
base. - O filtro deve resolver para uma entrada e uma só. Se encontrar várias, o início de sessão é recusado em vez de autenticar sobre uma correspondência arbitrária.
- Os utilizadores iniciam sessão com um endereço de e-mail. O valor é
despojado dos seus espaços e passado a minúsculas, e deve ser
sintaticamente válido: um simples
sAMAccountNameé rejeitado ainda antes de o diretório ser contactado.
Apenas o nome distinto é relido a partir do diretório. Nenhum atributo é recuperado, e o mecanismo de ligação é simples, pelo que o Kerberos e os outros mecanismos SASL não estão disponíveis.
Configurar a ligação¶
As definições encontram-se sob Users no painel de administração, na secção LDAP / Active Directory.
| Campo do painel | Chave de configuração | Exemplo |
|---|---|---|
| Status | enabled |
true |
| URL | url |
ldaps://ldap.example.com:636 |
| Service Account DN | service_account_dn |
cn=drovio,ou=services,dc=example,dc=com |
| Service Account Password | service_account_password |
|
| Base | base |
ou=users,dc=example,dc=com |
| Search Filter | search_filter |
ver abaixo |
| CA Certificate | ca_certificate_path |
/etc/drovio-server/ldap-ca.pem |
A conta de serviço só precisa do direito de pesquisar na subárvore situada sob
base, nada mais.
O valor fornecido por predefinição é (&(objectClass=*)(mail={0})). Funciona, mas
restringir a classe de objeto torna a pesquisa menos dispendiosa e a restrição de
unicidade mais fácil de satisfazer.
As alterações produzem efeito no início de sessão seguinte. Nenhum reinício é necessário.
Não existe botão de teste
O painel não sabe validar a configuração por si próprio. Guarde-a, peça a um utilizador que tente iniciar sessão, depois leia o registo do servidor. Cada falha aí é consignada com o passo em causa, que a tabela de Resolução de problemas faz corresponder ao campo a verificar.
Ligar-se em LDAPS¶
Utilize ldaps:// na porta 636. O simples ldap:// faz circular as credenciais
em claro, e o servidor avisa uma vez no registo.
O StartTLS não é suportado. Os dois modos são o texto em claro sobre ldap://
e o TLS implícito sobre ldaps://.
ca_certificate_path designa o certificado a considerar de confiança. Aceita PEM
como DER, bem como um conjunto PEM que contenha toda uma cadeia. Pode aí colocar
uma autoridade de certificação ou diretamente o certificado do diretório, o que
permite fazer funcionar um certificado autoassinado.
O ficheiro substitui o arquivo do sistema, não o completa
Quando ca_certificate_path está preenchido, a ligação LDAP só confia no
que esse ficheiro contém. Um certificado de diretório emitido por uma
autoridade pública reconhecida deixa de ser validado se a sua cadeia aí não
figurar igualmente. Deixe a definição vazia para utilizar o arquivo de
confiança do Java.
O certificado deve, aliás, corresponder ao anfitrião indicado em url, e a
definição só é lida para os URL em ldaps://. Preenchê-la ao lado de um URL
em ldap:// fica sem efeito.
Criação automática das contas¶
No primeiro início de sessão bem-sucedido, o Drovio Server cria a conta:
| Campo da conta | Valor |
|---|---|
| O endereço introduzido no formulário | |
| Nome de utilizador | A parte local desse endereço, jane.doe@example.com dando jane.doe |
Nenhum atributo do diretório é retomado, ao contrário do SAML e do OIDC, que
dispõem das suas próprias definições email_attribute e username_attribute. Os
utilizadores podem mudar o seu nome de utilizador em seguida, e os inícios de
sessão posteriores deixam essa alteração intacta.
Nenhuma palavra-passe é alguma vez armazenada para uma conta LDAP, e nenhum e-mail de verificação é enviado. As mudanças de palavra-passe, as reposições e a política de palavra-passe permanecem inteiramente da alçada do seu diretório: o painel de administração não oferece qualquer edição de credenciais para estas contas.
Verifique o seu pool de licenças antes de abrir o LDAP a um diretório extenso
A criação de conta segue
users.license_allocation
como qualquer outra conta. Se nenhum lugar estiver livre, a conta é criada
mesmo assim, simplesmente sem licença. O utilizador é avisado disso na
aplicação Drovio e o registo do servidor consigna:
Restringir o acesso a um grupo ou a uma unidade organizacional¶
Não existe qualquer definição dedicada, e não é necessária. Os dois campos existentes bastam:
- Por subárvore. Faça apontar
basepara o ramo que contém os utilizadores autorizados, por exemploOU=Drovio Users,DC=example,DC=com. Tudo o que estiver fora torna-se invisível para a pesquisa. -
Por pertença a um grupo. Adicione uma cláusula ao filtro:
Em Active Directory, utilize a regra de correspondência
memberOf:1.2.840.113556.1.4.1941:=em vez dememberOfpara incluir os grupos aninhados.
O controlo tem lugar a cada início de sessão. Retirar alguém do grupo bloqueia-o, portanto, imediatamente. Tenha presente que o filtro deve continuar a corresponder a uma entrada e uma só.
Combinar com os outros métodos de início de sessão¶
| Combinação | Comportamento |
|---|---|
| LDAP e contas locais | O diretório é interrogado em primeiro lugar. Se rejeitar as credenciais, o mesmo e-mail e a mesma palavra-passe são em seguida experimentados na conta local |
| LDAP e SAML | Suportados, seguem caminhos distintos |
| LDAP e OIDC | Suportados, seguem caminhos distintos |
Para impor a autenticação apenas pelo diretório, desative
users.auth.local.
Revogar um acesso¶
Eliminar ou desativar a conta no diretório bloqueia o início de sessão logo na
tentativa seguinte. O que isso não faz é eliminar o que quer que seja do lado
do Drovio: não existe qualquer tarefa de reconciliação. A ficha do utilizador e o
seu lugar de licença subsistem ambos, se
users.license_allocation
estiver desativado ou definido em modo new_user.
Para libertar o lugar, elimine o utilizador a partir do separador Users do
painel de administração, ou ative
users.remove_inactive para
que as contas não utilizadas sejam limpas periodicamente.
Limites de exploração¶
Alguns comportamentos são fixos e merecem ser conhecidos no momento de dimensionar a implantação ou de abrir a firewall:
| Comportamento | Valor |
|---|---|
| Ligações por autenticação | Duas, uma para a conta de serviço e uma para o utilizador. Não são partilhadas |
| Tempo limite de ligação | 30 segundos |
| Tempo limite de leitura | 60 segundos |
| Reencaminhamentos | Ignorados |
Os reencaminhamentos ignorados contam numa floresta Active Directory
multidomínio: os utilizadores cuja conta reside num domínio diferente daquele
indicado em url não são encontrados. Faça antes apontar o Drovio Server para um
catálogo global, em ldaps:// na porta 3269, ou implante um servidor por
domínio. O catálogo global só expõe uma parte dos atributos, o que basta aqui uma
vez que apenas o nome distinto é utilizado.