Versão do artigo: Enterprise Server 2.17
Usar LDAP
O LDAP permite autenticar o GitHub Enterprise Server em suas contas existentes e gerenciar centralmente o acesso ao repositório. O LDAP é um protocolo de aplicativo popular de acesso e manutenção dos serviços de informações de diretório, além de ser um dos protocolos mais comuns para integrar software de terceiros a diretórios de usuários em grandes empresas.
If you want to authenticate users without adding them to your identity provider, you can configure built-in authentication. Para obter mais informações, consulte "Permitir a autenticação integrada para usuários de fora do provedor de identidade".
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 usernames can only contain alphanumeric characters and dashes (-
). GitHub Enterprise Server will normalize any non-alphanumeric character in your account's username into a dash. For example, a username of gregory.st.john
will be normalized to gregory-st-john
. Note that normalized usernames also can't start or end with a dash. They also can't contain two consecutive dashes.
Usernames created from email addresses are created from the normalized characters that precede the @
character.
If multiple accounts are normalized into the same GitHub Enterprise Server username, only the first user account is created. Subsequent users with the same username won't be able to sign in.
This table gives examples of how usernames are normalized in GitHub Enterprise Server:
Username | Normalized username | Resultado |
---|---|---|
Ms.Bubbles | ms-bubbles | This username is created successfully. |
!Ms.Bubbles | -ms-bubbles | This username is not created, because it starts with a dash. |
Ms.Bubbles! | ms-bubbles- | This username is not created, because it ends with a dash. |
Ms!!Bubbles | ms--bubbles | This username is not created, because it contains two consecutive dashes. |
Ms!Bubbles | ms-bubbles | This username is not created. Although the normalized username is valid, it already exists. |
Ms.Bubbles@example.com | ms-bubbles | This username is not created. Although the normalized username is valid, it already exists. |
Autenticação de dois fatores
When using LDAP or built-in authentication, two-factor authentication is supported. Os administradores da organização podem exigir que os integrantes habilitem a autenticação de dois fatores.
Configurar o LDAP na sua instância do GitHub Enterprise Server
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.
When you configure LDAP access for users via the Console de gerenciamento, your user licenses aren't used until the first time a user signs in to your instance. However, if you create an account manually using site admin settings, the user license is immediately accounted for.
Aviso: antes de configurar o LDAP na sua instância do GitHub Enterprise Server, verifique se o serviço LDAP oferece suporte a resultados paginados.
- In the upper-right corner of any page, click .
- In the left sidebar, click Console de gerenciamento.
- In the left sidebar, click Authentication.
- Em "Authentication" (Autenticação), selecione LDAP.
- Optionally, select Allow built-in authentication to invite users to use built-in authentication if they don’t belong to sua instância do GitHub Enterprise Server's identity provider.
- Defina as configurações.
Atributos LDAP
Use estes atributos para finalizar a configuração LDAP na sua instância do GitHub Enterprise Server.
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 sua instância do GitHub Enterprise Server 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 | Usuário LDAP que faz consultas de usuários para autenticar outros usuários quando eles fazem login. 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. <code>Use 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
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 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
.
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 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.
As part of its optimization configuration, LDAP Sync will not transfer your nested team structure. To create child and parent team relationships, you must manually recreate the nested team structure and sync it with the corresponding LDAP group. For more information, see "Creating teams"
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 Suporte do GitHub Enterprise ou Suporte do GitHub Premium.
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.
group
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.
- Sign in to sua instância do GitHub Enterprise Server at
http(s)://HOSTNAME/login
. - In the upper-right corner of any page, click .
- 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
- Sign in to sua instância do GitHub Enterprise Server at
http(s)://HOSTNAME/login
. - In the upper-right corner of any page, click .
- In the search field, type the name of the user and click Search.
- In the search results, click the name of the user.
- In the upper-right corner of the page, click Admin.
- In the left sidebar, click 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 à sua instância do GitHub Enterprise Server
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".