Sobre a autenticação do LDAP para GitHub Enterprise Server
O LDAP é um protocolo popular do aplicativo para acesso e manutenção de serviços de informações de diretórios e é um dos protocolos mais comuns para integração de softwares de terceiros com grandes diretórios de usuários da empresa. Para obter mais informações, consulte "Lightweight Directory Access Protocol" na Wikipedia.
Se você usar um diretório do LDAP para autenticação centralizada, você poderá configurar a autenticação do LDAP para as pessoas que usam your GitHub Enterprise Server instance.
If you want to allow authentication for some people who don't have an account on your external authentication provider, you can allow fallback authentication to local accounts on your GitHub Enterprise Server instance. Para obter mais informações, consulte "Permitir a autenticação integrada para usuários de fora do seu provedor".
Serviços LDAP compatíveis
O GitHub Enterprise Server se integra aos seguintes serviços LDAP:
- Active Directory;
- FreeIPA;
- Oracle Directory Server Enterprise Edition;
- OpenLDAP;
- Open Directory;
- 389-ds.
Considerações de nome de usuário no LDAP
GitHub Enterprise Server normalizes a value from your external authentication provider to determine the username for each new personal account on your GitHub Enterprise Server instance. Para obter mais informações, consulte "Considerações de nome de usuário para autenticação externa".
Configurar o LDAP na your GitHub Enterprise Server instance
Depois que você configurar o LDAP, os usuários poderão acessar a instância com as credenciais LDAP. Quando os usuários acessarem pela primeira vez, seus nomes de perfil, endereços de e-mail e chaves SSH serão definidos com os atributos LDAP do diretório.
Quando você configurar o acesso LDAP dos usuários pelo Console de gerenciamento, suas licenças de usuário não serão usadas até que o primeiro usuário faça login na sua instância. No entanto, se você criar uma conta manualmente usando as configurações de administrador do site, a licença do usuário é imediatamente contabilizada.
Aviso: antes de configurar o LDAP na your GitHub Enterprise Server instance, verifique se o serviço LDAP oferece suporte a resultados paginados.
-
From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .
-
If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.
-
Na barra lateral esquerda, clique em Console de gerenciamento.
-
Na barra lateral esquerda, clique em Authentication.
-
Em "Authentication" (Autenticação), selecione LDAP.
-
Optionally, to allow people without an account on your external authentication system to sign in with built-in authentication, select Allow built-in authentication. Para obter mais informações, consulte "Permitir a autenticação integrada para usuários de fora do seu provedor".
-
Defina as configurações.
Atributos LDAP
Use estes atributos para finalizar a configuração LDAP na your GitHub Enterprise Server instance.
Nome do atributo | Tipo | Descrição |
---|---|---|
Host | Obrigatório | Host LDAP, por exemplo, ldap.example.com ou 10.0.0.30 . Se o nome do host só estiver disponível na rede interna, talvez seja necessário configurar antes o DNS da your GitHub Enterprise Server instance para que ele resolva o nome do host usando seus servidores de nomes internos. |
Porta | Obrigatório | Porta em que os serviços de host LDAP estão escutando. Por exemplo: 389 e 636 (para LDAPS). |
Criptografia | Obrigatório | Método de criptografia usado para proteger as comunicações com o servidor LDAP. Por exemplo, básico (sem criptografia), SSL/LDAPS (criptografia desde o início) e StartTLS (atualizar para comunicação com criptografia no momento da conexão). |
Usuário de pesquisa de domínio | Opcional | O usuário do LDAP que procura outros usuários que efetuam o login para permitir a autenticação. Em geral, é uma conta de serviço criada especificamente para integrações de terceiros. Use um nome totalmente qualificado, como cn=Administrador,cn=Usuários,dc=Exemplo,dc=com . Com o Active Directory, também é possível usar a sintaxe [DOMAIN]\[USERNAME] (por exemplo, WINDOWS\Administrator ) para o usuário de pesquisa de domínio. |
Senha de pesquisa de domínio | Opcional | Senha do usuário de pesquisa de domínio. |
Grupos de administradores | Opcional | Ao fazerem login no seu appliance, os usuários deste grupo são promovidos a administradores do site. Se você não configurar um grupo de administradores LDAP, a primeira conta de usuário LDAP que acessar seu appliance será automaticamente promovida a administrador do site. |
Base de domínio | Obrigatório | Distinguished Name (DN) totalmente qualificado de uma subárvore LDAP em que você pretende procurar usuários e grupos. Você pode adicionar quantos quiser, mas cada grupo deve ser definido na mesma base de domínio que os usuários pertencentes a ele. Se você especificar grupos de usuários restritos, somente os usuários pertencentes a esses grupos estarão no escopo. É recomendável especificar o nível superior da sua árvore de diretórios LDAP como base de domínio e usar grupos de usuários restritos para controlar o acesso. |
Grupos de usuários restritos | Opcional | Se especificados, somente os usuários desses grupos poderão efetuar login. Você só precisa especificar os nomes comuns (CNs, Common Names) dos grupos e adicionar quantos grupos quiser. Se não houver grupos especificados, todos os usuários no escopo da base de domínio especificada poderão fazer login na sua instância do GitHub Enterprise Server. |
ID de usuário | Obrigatório | Atributo LDAP que identifica o usuário LDAP que tenta fazer a autenticação. Quando houver mapeamento estabelecido, os usuários poderão alterar seus nomes de usuário no GitHub Enterprise Server. Este campo deve ser sAMAccountName para a maioria das instalações do Active Directory, mas pode ser uid para outras soluções LDAP, como OpenLDAP. O valor padrão é uid . |
Nome de perfil | Opcional | Nome exibido na págin de perfil do usuário no GitHub Enterprise Server. Se a Sincronização LDAP estiver habilitada, os usuários poderão alterar seus nomes de perfil. |
E-mails | Opcional | Endereço de e-mail para a conta de usuário no GitHub Enterprise Server. |
Chaves SSH | Opcional | Chaves SSH públicas vinculadas � conta de um usuário no GitHub Enterprise Server. As chaves devem estar no formato OpenSSH. |
Chaves GPG | Opcional | Chaves GPG vinculadas � conta de um usuário no GitHub Enterprise Server. |
Desabilitar autenticação LDAP em operações no Git | Opcional | Se estiver selecionada, essa opção desativa o recurso dos usuários para usar senhas LDAP a fim de autenticar as operações no Git. |
Habilitar verificação certificada LDAP | Opcional | Se estiver selecionada, essa opção desativa a verificação de certificado LDAP. |
Sincronização | Opcional | Se estiver selecionada, essa opção ativa a Sincronização LDAP. |
Desabilitar autenticação de senha nas operações no Git
Selecione Disable username and password authentication for Git operations (Desabilitar autenticação de nome de usuário e senha para operações do Git) nas configurações LDAP para impor o uso de tokens de acesso pessoal ou chaves SSH, o que pode ajudar a impedir a sobrecarga do servidor por solicitações de autenticação LDAP. Essa configuração é recomendável porque servidores LDAP com resposta lenta, especialmente combinados a um grande número de solicitações devido � sondagem, são uma causa comum de interrupções e problemas de desempenho.
Quando esta opção estiver selecionada, se tentar usar uma senha para as operações do Git pela linha de comando, o usuário receberá está mensagem de erro: A autenticação de senha não é permitida para operações do Git. Você deve usar um token de acesso pessoal.
Habilitar verificação certificada LDAP
Selecione Enable LDAP certificate verification (Habilitar verificação certificada LDAP) nas suas configurações LDAP para validar o certificado de servidor LDAP que você usa com o TLS.
Quando esta opção estiver selecionada, o certificado será validado para garantir o seguinte:
- Se o certificado contiver ao menos um nome alternativo da entidade (SAN, Subject Alternative Name), um dos SANs deve corresponder ao nome do host LDAP. Do contrário, o nome comum (CN) corresponderá ao nome de host LDAP.
- O certificado não deve estar expirado.
- O certificado deve estar assinado por uma autoridade de certificação (CA, Certificate Authority) confiável.
Habilitar a Sincronização LDAP
Observação: As equipes que usam Sincronização LDAP são limitadas a um máximo de 1499 integrantes.
A Sincronização LDAP permite sincronizar os usuários do GitHub Enterprise Server e a associação da equipe nos seus grupos LDAP estabelecidos. Assim, é possível estabelecer o controle de acesso baseado em função para os usuários do seu servidor LDAP, em vez de fazer isso manualmente no GitHub Enterprise Server. Para obter mais informações, consulte "Criar equipes".
Para habilitar a Sincronização LDAP, selecione Synchronize Emails (Sincronizar e-mails), Synchronize SSH Keys (Sincronizar chaves SSH) ou Synchronize GPG Keys (Sincronizar chaves GPG) nas configurações LDAP.
Depois que você habilitar a sincronização LDAP, um trabalho de sincronização será executado no período especificado para fazer as seguintes operações em cada conta de usuário:
- Se você tiver permitido a autenticação integrada para usuários de fora do provedor de identidade e o usuário estiver usando a autenticação integrada, vá para o próximo usuário.
- Se não houver mapeamento LDAP para o usuário, tente mapeá-lo para uma entrada LDAP no diretório. Se não for possível mapear o usuário para uma entrada LDAP, suspenda o usuário em questão e passe para o seguinte.
- Se houver um mapeamento LDAP e a entrada LDAP correspondente no diretório estiver ausente, suspenda o usuário e passe para o seguinte.
- Se a entrada LDAP correspondente tiver sido marcada como desativada e o usuário ainda não estiver suspenso, suspenda o usuário e passe para o seguinte.
- Se a entrada LDAP correspondente não estiver marcada como desabilitada, se o usuário estiver suspenso e se a opção Reativar usuários suspensos estiver habilitada na central do administrador, cancele a suspensão do usuário.
- Se um ou mais grupos restritos de usuários estiverem configurados na instância e a entrada do LDAP correspondente não for em um desses grupos, suspenda o usuário.
- Se um ou mais grupos restritos de usuários estiverem configurados na instância, a entrada do LDAP correspondente será em um desses grupos. e Reativar usuários suspensos estiver habilitado no Centro de Administração, cancele a suspensão do usuário.
- Se a entrada LDAP correspondente incluir um atributo
name
, atualize o nome do perfil do usuário. - Se a entrada LDAP correspondente estiver no grupo de administradores, promova o usuário a administrador do site.
- Se a entrada LDAP correspondente não estiver no grupo de administradores, rebaixe o usuário para uma conta regular.
- Se um campo LDAP User (Usuário LDAP) estiver definido para e-mails, sincronize as configurações de e-mail do usuário com a entrada LDAP. Defina a primeira entrada LDAP
mail
como e-mail principal. - Se um campo LDAP User (Usuário LDAP) estiver definido para chaves SSH públicas, sincronize as chaves SSH públicas do usuário com a entrada LDAP.
- Se um campo LDAP User (Usuário LDAP) estiver definido para chaves GPG públicas, sincronize as chaves GPG públicas do usuário com a entrada LDAP.
Observação: as entradas LDAP só podem ser marcadas como desabilitadas se você usar o Active Directory, e se o atributo userAccountControl
estiver presente e sinalizado com ACCOUNTDISABLE
. Algumas variações do Diretório Ativo, como AD LDS e ADAM, não são compatíveis com o atributo userAccountControl
.
Um trabalho de sincronização também será executado no período especificado para fazer as seguintes operações em cada equipe mapeada para um grupo LDAP:
- Se um grupo LDAP correspondente de uma equipe tiver sido removido, remova todos os integrantes da equipe.
- Se as entradas do integrante LDAP tiverem sido removidas do grupo LDAP, remova os usuários correspondentes da equipe. Se o usuário não for mais integrante de qualquer equipe na organização, remova o usuário da organização. Se o usuário perder o acesso a qualquer repositórios, exclua todas as bifurcações privadas que ele possa ter nesses repositórios.
- Se as entradas do integrante LDAP tiverem sido adicionadas ao grupo LDAP, adicione os usuários correspondentes � equipe. Se o usuário recuperar o acesso a quaisquer repositórios, restaure todas as bifurcações privadas dos repositórios que foram excluídos porque o usuário perdeu o acesso nos últimos 90 dias.
Como parte de sua configuração de otimização, LDAP Sync não irá transferir sua estrutura de equipe aninhada. Para criar relacionamentos de equipe filhos e pais, você deve recriar manualmente a estrutura de equipe aninhada e sincronizá-la com o grupo LDAP correspondente. Para obter mais informações, consulte "Creating teams" (Criar equipes)
Aviso de segurança:
Quando a Sincronização LDAP está ativada, os administradores do site e os proprietários da organização podem pesquisar grupos no diretório LDAP aos quais pretendem mapear a equipe.
Esse procedimento pode resultar na divulgação de informações confidenciais da organização para contratados ou outros usuários sem privilégios, inclusive:
- A existência de grupos LDAP específicos visíveis para o usuário de pesquisa de domínio;
- Integrantes do grupo LDAP que tenham contas de usuário no GitHub Enterprise Server, divulgadas ao criar uma equipe sincronizada com o grupo LDAP.
Se não houver intenção de divulgar essas informações, sua empresa ou organização deve restringir as permissões do usuário de pesquisa de domínio configurado no Console de administração. Caso não seja possível fazer essa restrição, entre em contato com o GitHub Enterprise Support.
Classes de grupo de objeto LDAP compatíveis
O GitHub Enterprise Server é compatível com as seguintes classes de grupo de objeto LDAP. Os grupos podem ser aninhados.
grupo
groupOfNames
groupOfUniqueNames
posixGroup
Exibir e criar usuários LDAP
É possível exibir a lista completa de usuários LDAP que têm acesso � sua instância, e você também pode provisionar novos usuários.
-
Faça login no your GitHub Enterprise Server instance em
http(s)://HOSTNAME/login
. -
From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .
-
If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.
-
Na barra lateral esquerda, clique em LDAP users (Usuários LDAP).
-
Para procurar um usuário, digite um nome (total ou parcialmente) do usuário e clique em Search (Pesquisar). Os usuários serão exibidos nos resultados da pesquisa. Se o usuário não existir, clique em Create (Criar) para provisionar a nova conta.
Atualizar contas LDAP
Se a Sincronização LDAP estiver desabilitada, as alterações nas contas LDAP não serão sincronizadas automaticamente com o GitHub Enterprise Server.
- Para usar um novo grupo de administradores LDAP, os usuários devem ser promovidos e rebaixados manualmente no GitHub Enterprise Server a fim de refletir as mudanças no LDAP.
- Para adicionar ou remover contas LDAP nos grupos de administração LDAP, promova ou rebaixe as contas no GitHub Enterprise Server.
- Para remover contas LDAP, suspenda as contas do GitHub Enterprise Server.
Sincronizar contas LDAP manualmente
-
Faça login no your GitHub Enterprise Server instance em
http(s)://HOSTNAME/login
. -
From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .
-
If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.
-
No campo de busca, digite o nome do usuário e clique em Search (Pesquisar).
-
Nos resultados da pesquisa, clique no nome do usuário.
-
No canto superior direito da página, clique em Admin.
-
Na barra lateral esquerda, clique em Admin.
-
Em "LDAP," clique em Sync now (Sincronizar agora) para atualizar manualmente a conta com os dados do seu servidor LDAP.
Você também pode usar a API para acionar uma sincronização manual.
Revogar o acesso � your GitHub Enterprise Server instance
Se a Sincronização LDAP estiver habilitada, remover as credenciais LDAP do usuário suspenderá a conta do usuário após a execução de sincronização seguinte.
Se a Sincronização LDAP não estiver habilitada, você deve suspender manualmente a conta do GitHub Enterprise Server após remover as credenciais LDAP. Para obter mais informações, consulte "Suspender e cancelar a suspensão de usuários".