Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais atualizadas, acesse a documentação em inglês.

Referência de configuração do SAML

Você pode ver os metadados do SAML para sua instância do GitHub Enterprise Server e saber mais sobre os atributos do SAML disponíveis e os requisitos de resposta.

Sobre a configuração do SAML

Para usar o SSO (logon único) do SAML para autenticação no GitHub Enterprise Server, você deve configurar seu IdP (provedor de identidade) do SAML externo e sua instância do GitHub Enterprise Server. Em uma configuração do SAML, o GitHub Enterprise Server funciona como um SP (provedor de serviços) do SAML.

Você deve inserir valores exclusivos do IdP do SAML ao configurar o SSO do SAML para o GitHub Enterprise Server, e também deve inserir valores exclusivos do GitHub Enterprise Server em seu IdP. Para saber masi sobre a configuração do SSO do SAML para GitHub Enterprise Server, confira "Configurar o logon único SAML para sua empresa".

Metadados SAML

Os metadados do SP para sua instância do GitHub Enterprise Server estão disponíveis em http(s)://HOSTNAME/saml/metadata, em que HOSTNAME é o nome do host da sua instância. O GitHub Enterprise Server usa a associação urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST.

ValorOutros nomesDescriçãoExemplo
ID da Entidade do SPURL do SP, restrição de audiênciaSua URL de nível superior para GitHub Enterprise Serverhttp(s)://HOSTNAME
URL do Serviço do Consumidor de Declaração (ACS) do SPURL de resposta, destinatário ou destinoURL em que o IdP envia respostas do SAMLhttp(s)://HOSTNAME/saml/consume
URL de logon único (SSO) do SPURL em que o IdP começa com SSOhttp(s)://HOSTNAME/sso

Atributos SAML

Os atributos SAML a seguir estão disponíveis para GitHub Enterprise Server. Você pode alterar os nomes de atributo no Console de Gerenciamento, com exceção do atributo administrator. Para obter mais informações, confira "Administrando sua instância do Console de Gerenciamento".

NomeObrigatórioDescrição
NameIDIdentificador de usuário persistente. Qualquer formato de identificador de nome persistente pode ser usado. GitHub Enterprise Server normalizará o elemento NameID a ser usado como um nome de usuário, a menos que uma das declarações alternativas seja fornecida. Para obter mais informações, confira "Considerações de nome de usuário para autenticação externa".

Observação: é importante usar um identificador persistente e legível. O uso de um formato de identificador transitório como urn:oasis:names:tc:SAML:2.0:nameid-format:transient resultará na vinculação de contas em cada entrada, o que pode ser prejudicial ao gerenciamento de autorização.
SessionNotOnOrAfterA data em que GitHub Enterprise Server invalida a sessão associada. Após a invalidação, a pessoa deve se autenticar mais uma vez para acessar sua instância do GitHub Enterprise Server. Para obter mais informações, confira "Duração e tempo limite da sessão".

Para especificar mais de um valor para um atributo, use vários elementos <saml2:AttributeValue>.

<saml2:Attribute FriendlyName="public_keys" Name="urn:oid:1.2.840.113549.1.1.1" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
    <saml2:AttributeValue>ssh-rsa LONG KEY</saml2:AttributeValue>
    <saml2:AttributeValue>ssh-rsa LONG KEY 2</saml2:AttributeValue>
</saml2:Attribute>

Requisitos da resposta SAML

GitHub Enterprise Server exige que a mensagem de resposta do IdP atenda aos requisitos a seguir.

  • O seu IdP precisa fornecer o elemento <Destination> no documento de resposta raiz e precisa corresponder à URL do ACS somente quando o documento de resposta raiz está assinado. Se o IdP assinar a declaração, GitHub Enterprise Server ignorará a declaração.

  • O IdP sempre deve fornecer o elemento <Audience> como parte do elemento <AudienceRestriction>. O valor deve corresponder ao EntityId para GitHub Enterprise Server. Esse valor é a URL em que você acessa sua instância do GitHub Enterprise Server, como http(s)://HOSTNAME.

  • Seu IdP deve proteger cada declaração na resposta com uma assinatura digital. Para fazer isso, você assina cada elemento <Assertion> individual ou assina o elemento <Response>.

  • Seu IdP deve fornecer um elemento <NameID> como parte do elemento <Subject>. Você pode usar qualquer formato de identificador de nome persistente.

  • Seu IdP deve incluir o atributo Recipient, que deve ser definido como a URL do ACS. O exemplo a seguir demonstra o atributo.

    <samlp:Response ...>
      <saml:Assertion ...>
        <saml:Subject>
          <saml:NameID ...>...</saml:NameID>
          <saml:SubjectConfirmation ...>
            <saml:SubjectConfirmationData Recipient="https://HOSTNAME/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>
    

Duração e tempo limite da sessão

Para impedir que uma pessoa se autentique com seu IdP e mantenha-se autorizada indefinidamente, o GitHub Enterprise Server invalida periodicamente a sessão para cada conta de usuário com acesso a sua instância do GitHub Enterprise Server. Após a invalidação, a pessoa deve se autenticar com o IdP mais uma vez. Por padrão, se o IdP não declarar um valor para o atributo SessionNotOnOrAfter, o GitHub Enterprise Server invalidará uma sessão duas semanas após a autenticação bem-sucedida no IdP.

Para personalizar a duração da sessão, você poderá definir o valor do atributo SessionNotOnOrAfter no IdP. Se você definir um valor menor que 24 horas, o GitHub Enterprise Server poderá solicitar que as pessoas se autentiquem sempre que o GitHub Enterprise Server iniciar um redirecionamento.

Observações:

  • No Azure AD, a política de tempo de vida configurável para tokens SAML não controla o tempo limite da sessão para o GitHub Enterprise Server.
  • O Okta atualmente não envia o atributo SessionNotOnOrAfter durante a autenticação SAML com o GitHub Enterprise Server. Para mais informações, entre em contato com o Okta.