Esta versão do GitHub Enterprise foi descontinuada em 2021-06-09. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

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.

Se você quiser autenticar usuários sem adicioná-los ao seu provedor de identidade, você pode configurar a autenticação integrada. 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

Nomes de usuário de GitHub Enterprise Server só podem conter caracteres alfanuméricos e traços (-). GitHub Enterprise Server normalizará qualquer caractere não alfanumérico do nome de usuário da sua conta em um traço. Por exemplo, um nome de usuário de gregory.st.john será normalizado para gregory-st-john. Observe que nomes de usuários normalizados também não podem iniciar ou terminar com um traço. Eles também não podem conter dois traços consecutivos.

Nomes de usuário criados a partir de endereços de e-mail são criados a partir dos caracteres normalizados que precedem o caractere @.

Se várias contas forem normalizadas no mesmo nome de usuário do GitHub Enterprise Server apenas a primeira conta de usuário é criada. Usuários subsequentes com o mesmo nome de usuário não serão capazes de fazer o login.

Esta tabela dá exemplos de como os nomes de usuário são normalizados em GitHub Enterprise Server:

Nome de usuárioNome de usuário normalizadoResultado
Ms.Bubblesms-bubblesNome de usuário criado com sucesso.
!Ms.Bubbles-ms-bubblesEste nome de usuário não é criado, porque começa com um traço.
Ms.Bubbles!ms-bubbles-Este nome de usuário não é criado, porque termina com um traço.
Ms!!Bubblesms--bubblesEste nome de usuário não é criado, porque contém dois traços consecutivos.
Ms!Bubblesms-bubblesEste nome de usuário não é criado. Embora o nome de usuário normalizado seja válido, ele já existe.
Ms.Bubbles@example.comms-bubblesEste nome de usuário não é criado. Embora o nome de usuário normalizado seja válido, ele já existe.

Autenticação de dois fatores

Ao usar LDAP ou autenticação integrada, a autenticação de dois fatores é suportada. 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.

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 sua instância do GitHub Enterprise Server, verifique se o serviço LDAP oferece suporte a resultados paginados.

  1. A partir de uma conta administrativa em GitHub Enterprise Server, clique em no canto superior direito de qualquer página. Ícone de foguete para acessar as configurações de administrador do site
  2. Na barra lateral esquerda, clique em Console de gerenciamento. Console de gerenciamento aba na barra lateral esquerda
  3. Na barra lateral esquerda, clique em Authentication. Aba de autenticação na barra lateral de configurações
  4. Em "Authentication" (Autenticação), selecione LDAP. Selecionar LDAP
  5. Opcionalmente, selecione Allow built-in authentication para convidar usuários a utilizar a autenticação integrada se eles não pertencerem ao provedor de identidade do sua instância do GitHub Enterprise Server. Selecionar caixa de autenticação integrada
  6. 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 atributoTipoDescrição
HostObrigatórioHost 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.
PortaObrigatórioPorta em que os serviços de host LDAP estão escutando. Por exemplo: 389 e 636 (para LDAPS).
CriptografiaObrigatórioMé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ínioOpcionalO 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ínioOpcionalSenha do usuário de pesquisa de domínio.
Grupos de administradoresOpcionalAo 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ínioObrigatórioDistinguished 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 restritosOpcionalSe 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árioObrigatórioAtributo 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 perfilOpcionalNome 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-mailsOpcionalEndereço de e-mail para a conta de usuário no GitHub Enterprise Server.
Chaves SSHOpcionalChaves SSH públicas vinculadas à conta de um usuário no GitHub Enterprise Server. As chaves devem estar no formato OpenSSH.
Chaves GPGOpcionalChaves GPG vinculadas à conta de um usuário no GitHub Enterprise Server.
Desabilitar autenticação LDAP em operações no GitOpcionalSe 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 LDAPOpcionalSe estiver selecionada, essa opção desativa a verificação de certificado LDAP.
SincronizaçãoOpcionalSe 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.

Desabilitar autenticação de senha LDAP na caixa de seleção do Git

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.

Caixa de seleção de verificação certificada LDAP

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.

Caixa de seleção de sincronização

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.

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 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.

  • 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.

  1. Faça login no sua instância do GitHub Enterprise Server em http(s)://HOSTNAME/login.
  2. A partir de uma conta administrativa em GitHub Enterprise Server, clique em no canto superior direito de qualquer página. Ícone de foguete para acessar as configurações de administrador do site
  3. Na barra lateral esquerda, clique em LDAP users (Usuários LDAP). Guia de usuários LDAP
  4. 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. Pesquisa LDAP

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.

Sincronizar contas LDAP manualmente

  1. Faça login no sua instância do GitHub Enterprise Server em http(s)://HOSTNAME/login.
  2. A partir de uma conta administrativa em GitHub Enterprise Server, clique em no canto superior direito de qualquer página. Ícone de foguete para acessar as configurações de administrador do site
  3. No campo de busca, digite o nome do usuário e clique em Search (Pesquisar). campo de pesquisa de configurações de administrador do site
  4. Nos resultados da pesquisa, clique no nome do usuário. Opções de pesquisa das configurações do administrador
  5. No canto superior direito da página, clique em Admin. Ferramentas Administrativas
  6. Na barra lateral esquerda, clique em Admin. Ferramentas Administrativas
  7. Em "LDAP," clique em Sync now (Sincronizar agora) para atualizar manualmente a conta com os dados do seu servidor LDAP. Botão LDAP sync now (Sincronizar LDAP agora)

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".