Olá! No momento, esta página ainda está sendo desenvolvida ou traduzida. Para obter as informações mais recentes, acesse a documentação em inglês.
Versão do artigo: Enterprise Server 2.15

Esta versão do GitHub Enterprise será descontinuada em Esta versão do GitHub Enterprise foi descontinuada em 2019-10-16. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Usar SAML

O SAML é um padrão de autenticação e autorização baseado em XML. O GitHub Enterprise Server pode agir como provedor de serviços (SP, Service Provider) com seu provedor de identidade (IdP, Identity Provider) SAML interno.

If you want to authenticate users without adding them to your identity provider, you can configure built-in authentication. For more information, see "Allowing built-in authentication for users outside your identity provider."

Neste guia:

Serviços SAML compatíveis

We offer limited support for all identity providers that implement the SAML 2.0 standard. We officially support these identity providers that have been internally tested:

GitHub Enterprise does not support SAML Single Logout. To terminate an active SAML session, users should log out directly on your SAML server.

Considerações de nome de usuário no SAML

Cada nome de usuário do GitHub Enterprise Server é determinado por uma das seguintes afirmações na resposta SAML, ordenada por prioridade:

O elemento NameID é obrigatório, mesmo que os outros atributos estejam presentes.

É criado um mapeamento entre NameID e o nome de usuário do GitHub Enterprise Server; assim, NameID deve ser persistente, exclusivo e não estar sujeito a alterações no ciclo de vida do usuário.

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.

Two-factor authentication

When using SAML or CAS, two-factor authentication is not supported or managed on the GitHub Enterprise Server appliance, but may be supported by the external authentication provider. Two-factor authentication enforcement on organizations is not available. For more information about enforcing two-factor authentication on organizations, see "Requiring two-factor authentication in your organization."

Metadados SAML

Os metadados do provedor de serviços da sua instância do GitHub Enterprise Server estão disponíveis em http(s)://[hostname]/saml/metadata.

Para configurar seu provedor de identidade manualmente, a URL do serviço de consumidor de declaração (ACS, Assertion Consumer Service) é http(s)://[hostname]/saml/consume e usa a associação urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST.

Atributos SAML

Os atributos a seguir estão disponíveis. Você pode alterar seus nomes no console de gerenciamento, exceto o atributo administrator.

Nome padrão do atributo Tipo Descrição
NameID Obrigatório Identificador de usuário persistente. Qualquer formato de identificador de nome persistente pode ser usado. O elemento NameID será usado para um nome de usuário do GitHub Enterprise Server, a menos que uma das declarações alternativas seja fornecida.
administrator Opcional Quando o valor for 'true', o usuário será promovido automaticamente como administrador. Qualquer outro valor ou um valor não existente rebaixará o usuário para uma conta regular.
username Opcional Nome do usuário no GitHub Enterprise Server.
full_name Opcional Nome do usuário exibido na página de perfil. Após o provisionamento, os usuários podem alterar seus nomes.
emails Opcional Endereços de e-mail para o usuário. É possível especificar mais de um.
public_keys Opcional Chaves SSH públicas para o usuário. É possível especificar mais de uma.
gpg_keys Opcional Chaves chaves GPG para o usuário. É possível especificar mais de uma.

Definir configurações SAML

  1. In the upper-right corner of any page, click .

    Ícone de foguete para acessar as configurações de administrador do site

  2. In the left sidebar, click Console de gerenciamento.

    Console de gerenciamento tab in the left sidebar

  3. In the left sidebar, click Authentication.

    Authentication tab in the settings sidebar

  4. Selecione SAML.

    Autenticação SAML

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

    Selecionar caixa de autenticação integrada SAML

  6. Para habilitar SSO de resposta não solicitada, selecione IdP initiated SSO (SSO iniciado pelo IdP). Por padrão, o GitHub Enterprise Server responderá a uma solicitação iniciada pelo Provedor de identidade (IdP) não solicitado com AuthnRequest.

    SAML idP SSO

    Observação: é recomendável manter esse valor desmarcado. Você deve habilitar esse recurso somente na rara instância em que sua implementação SAML não oferecer suporte ao SSO iniciado pelo provedor de serviços e quando recomendado pelo Suporte do GitHub Enterprise.

  7. Select Disable administrator demotion/promotion if you do not want your SAML provider to determine administrator rights for users on sua instância do GitHub Enterprise Server.

    Configuração desativar administrador SAML

  8. No campo Sign on URL (URL de logon), digite o ponto de extremidade HTTP ou HTTPS do seu IdP para solicitações de logon único. Esse valor é fornecido pela configuração do IdP. Se o nome do host só estiver disponível na rede interna, talvez seja necessário configurar a sua instância do GitHub Enterprise Server para usar servidores de nomes internos.

    Autenticação SAML

  9. Como alternativa, no campo Issuer (Emissor), digite o nome do emissor de SAML. Fazer isso verifica a autenticidade das mensagens enviadas para a sua instância do GitHub Enterprise Server.

    Emissor SAML

  10. In the Signature Method and Digest Method drop-down menus, choose the hashing algorithm used by your SAML issuer to verify the integrity of the requests from sua instância do GitHub Enterprise Server. Especifique o formato no menu suspenso Name Identifier Format (Formato de identificador de nome).

    Método SAML

  11. Under Verification certificate, click Choose File and choose a certificate to validate SAML responses from the IdP.

    Autenticação SAML

  12. Modifique os nomes do atributo SAML para corresponder ao IdP, se necessário, ou aceite os nomes padrão.

    Nomes de atributos SAML

Revogar o acesso à sua instância do GitHub Enterprise Server

Se remover um usuário do seu provedor de identidade, você também deverá suspendê-lo manualmente. Caso contrário, ele continuará podendo fazer autenticação usando tokens de acesso ou chaves SSH. Para obter mais informações, consulte "Suspender e cancelar a suspensão de usuários".

Requisitos de mensagem de resposta

A mensagem de resposta deve atender aos seguintes requisitos:

<samlp:Response ...>
  <saml:Assertion ...>
    <saml:Subject>
      <saml:NameID ...>...</saml:NameID>
      <saml:SubjectConfirmation ...>
        <saml:SubjectConfirmationData Recipient="https://ghe.corp.example.com/saml/consume" .../>
      </saml:SubjectConfirmation>
    </saml:Subject>
    <saml:AttributeStatement>
      <saml:Attribute FriendlyName="USERNAME-ATTRIBUTE" ...>
        <saml:AttributeValue>monalisa</saml:AttributeValue>
      </saml:Attribute>
    </saml:AttributeStatement>
  </saml:Assertion>
</samlp:Response>

Mensagens de erro

Se Recipient não corresponder à URL do ACS, o log de autenticação mostrará a seguinte mensagem de erro:

Recipient na resposta SAML não era válido.

Se Recipient não for parte da mensagem de resposta, o log de autenticação mostrará a seguinte mensagem de erro:

Recipient na resposta SAML não pode ficar em branco.

Se a resposta SAML não estiver assinada ou se a assinatura não corresponder ao conteúdo, o log de autenticação mostrará a seguinte mensagem de erro:

Resposta SAML não assinada ou modificada.

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato