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.

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 a configuração do SSO do SAML para o GitHub Enterprise Cloud, veja "Configurando o logon único do SAML em sua empresa" ou "Habilitando e testando o logon único do SAML em sua organização".

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 "Como gerenciar o logon único do 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 SPURL em que o IdP começa com SSOhttps://github.com/orgs/ORGANIZATION/saml/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 SPURL 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.

NomeNecessário?Descrição
NameIDSimIdentificador 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.
SessionNotOnOrAfterNoA 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".

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.

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 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 saber mais, confira "Solução de problemas de autenticação SAML".

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