Skip to main content

Referência de configuração do SAML

Você pode ver os metadados do SAML para sua organização ou empresa no GitHub Enterprise Cloud 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 Cloud, você deve configurar seu IdP (provedor de identidade) do SAML externo e sua empresa ou organização no GitHub.com. Em uma configuração do SAML, o GitHub Enterprise Cloud funciona como um SP (provedor de serviços) do SAML. Para obter mais informações sobre autenticação para sua empresa, confira "Sobre o gerenciamento de identidades e acesso."

O GitHub Enterprise Cloud fornece integração de acordo com a especificação SAML 2.0. Para obter mais informações, confira o wiki do SAML no site do OASIS.

Você deve inserir valores exclusivos do IdP do SAML ao configurar o SSO do SAML para o GitHub Enterprise Cloud, e também deve inserir valores exclusivos do GitHub Enterprise Cloud em seu IdP. Para obter mais informações sobre autenticação para

Metadados SAML

Os metadados do SP para o GitHub Enterprise Cloud estão disponíveis para organizações ou empresas com SSO do SAML. O GitHub Enterprise Cloud usa a associação urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST.

Organizações

Você pode configurar o SSO do SAML para uma organização individual em sua empresa. Você também pode configurar o SSO do SAML para uma organização se usar uma organização individual no GitHub Enterprise Cloud e não usar uma conta corporativa. Para obter mais informações, confira "Gerenciar o logon único SAML para sua organização".

Os metadados do SP de uma organização em GitHub.com estão disponíveis em https://github.com/orgs/ORGANIZATION/saml/metadata, em que ORGANIZATION é o nome da sua organização no GitHub.com.

ValorOutros nomesDescriçãoExemplo
ID da Entidade do SPURL do SP, restrição de audiênciaA URL de nível superior para sua organização em GitHub.comhttps://github.com/orgs/ORGANIZATION
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 SAMLhttps://github.com/orgs/ORGANIZATION/saml/consume
URL de logon único (SSO) do SP
URL em que o IdP começa com SSOhttps://github.com/orgs/ORGANIZATION/sso

Enterprises

Os metadados do SP de uma empresa no GitHub.com estão disponíveis em https://github.com/enterprises/ENTERPRISE/saml/metadata, em que ENTERPRISE é o nome da sua empresa no GitHub.com.

ValorOutros nomesDescriçãoExemplo
ID da Entidade do SPURL do SP, restrição de audiênciaA URL de nível superior para sua empresa em GitHub.comhttps://github.com/enterprises/ENTERPRISE
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 SAMLhttps://github.com/enterprises/ENTERPRISE/saml/consume
URL de logon único (SSO) do SP
URL em que o IdP começa com SSOhttps://github.com/enterprises/ENTERPRISE/saml/sso

Atributos SAML

Os atributos SAML a seguir estão disponíveis para GitHub Enterprise Cloud.

NomeObrigatóriaDescrição
NameIDIdentificador de usuário persistente. Qualquer formato de identificador de nome persistente pode ser usado. Se você usar uma empresa com Enterprise Managed Users, GitHub Enterprise Cloud 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 Cloud invalida a sessão associada. Após a invalidação, a pessoa deve se autenticar mais uma vez para acessar recursos da sua empresa. Para obter mais informações, confira "Duração e tempo limite da sessão".
emailsOs endereços de email do usuário. Se você sincronizar o uso de licença entre o GitHub Enterprise Server e o GitHub Enterprise Cloud, o GitHub Connect usará emails para identificar usuários exclusivos entre produtos. Para saber mais, confira "Sincronizando o uso da licença entre o GitHub Enterprise Server e o GitHub Enterprise Cloud".
public_keysSe você configurar o SSO do SAML para uma empresa e usar Enterprise Managed Users, as chaves SSH públicas para o usuário. Você pode especificar mais de uma chave.
gpg_keysSe você configurar o SSO do SAML para uma empresa e usar Enterprise Managed Users, as chaves GPG para o usuário. Você pode especificar mais de uma chave.

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

    • Se você configurar o SAML para uma organização, esse valor será https://github.com/orgs/ORGANIZATION.
    • Se você configurar o SAML para uma empresa, essa URL será https://github.com/enterprises/ENTERPRISE.
  • 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://github.com/enterprises/ENTERPRISE/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 Cloud invalida periodicamente a sessão para cada conta de usuário com acesso a recursos da sua empresa. Após a invalidação, a pessoa deve se autenticar com o IdP mais uma vez.

Por padrão, se o IdP não declara um valor para o atributo SessionNotOnOrAfter, o GitHub Enterprise Cloud invalida uma sessão 24 horas após a autenticação bem-sucedida no IdP.

GitHub Enterprise Cloud oferecerá suporte a uma duração de sessão personalizada se o seu IdP fornecer a opção de configurar um atributo e valor SessionNotOnOrAfter .

Se você definir um valor de duração de sessão personalizado menor que 24 horas, o GitHub Enterprise Cloud poderá solicitar que as pessoas se autentiquem sempre que o GitHub Enterprise Cloud iniciar um redirecionamento.

Para evitar erros de autenticação, recomendamos a duração mínima da sessão de quatro horas. Para obter mais informações, confira "Autenticação SAML".

Observações:

  • No Microsoft Entra ID (o antigo 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 Cloud.
  • O Okta atualmente não envia o atributo SessionNotOnOrAfter durante a autenticação SAML com o GitHub Enterprise Cloud. Para mais informações, entre em contato com o Okta.