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 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 , você deve configurar seu IdP (provedor de identidade) do SAML externo e sua empresa ou organização no GitHub. Em uma configuração do SAML, o 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 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 , e também deve inserir valores exclusivos do em seu IdP.

Metadados SAML

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

Se você usar os Enterprise Managed Users, só poderá habilitar o SSO do SAML na empresa.

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 e não usar uma conta corporativa. Para saber mais, confira Gerenciar o logon único SAML para sua organização.

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

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

Dependendo do ambiente, os metadados do SP de uma empresa no GitHub Enterprise Cloud ficam disponíveis em um destes locais:

  • https://github.com/enterprises/ENTERPRISE/saml/metadata, em que ENTERPRISE é o nome da sua empresa
  • https://SUBDOMAIN.ghe.com/enterprises/SUBDOMAIN/saml/metadata, em que SUBDOMAIN é o subdomínio da sua empresa
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 .

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, normalizará o elemento NameID a ser usado como um nome de usuário, a menos que uma das declarações alternativas seja fornecida. Para saber mais, confira Considerações de nome de usuário para autenticação externa.

> [!NOTE] É 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 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.
full_nameSe você configurar o SSO do SAML para uma empresa e usar Enterprise Managed Users, o e o nome completo do usuário a ser exibido na página de perfil do usuário.
emailsOs endereços de email do usuário. Se você sincronizar o uso de licença entre GitHub Enterprise Server e GitHub Enterprise Cloud, o GitHub Connect usará emails para identificar os usuários exclusivos em todos os 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, a 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 e as 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

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, ignorará a declaração.

  • O IdP sempre deve fornecer o elemento <Audience> como parte do elemento <AudienceRestriction>. O valor deve corresponder ao EntityId para .

    • 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 ou https://SUBDOMAIN.ghe.com/enterprises/SUBDOMAIN.
  • Seu IdP deve fornecer uma só declaração na resposta com uma assinatura digital. Para fazer isso, você pode assinar o elemento <Assertion> ou assinar 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 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 invalida uma sessão 24 horas após a autenticação bem-sucedida no IdP.

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 poderá solicitar que as pessoas se autentiquem sempre que o iniciar um redirecionamento.

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

Note

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 .