Skip to main content

Sobre o provisionamento de usuários com o SCIM no GitHub Enterprise Server

Saiba mais sobre o gerenciamento do ciclo de vida de contas de usuário com SCIM no sua instância do GitHub Enterprise Server.

Note

Atualmente, o SCIM para o GitHub Enterprise Server está em beta e sujeito a alterações. A recomendação do GitHub é para, primeiro, realizar testes em uma instância de preparo. Confira Configurar uma instância de preparo.

Sobre o provisionamento de usuários do GitHub Enterprise Server

Se você usar o SSO (logon único) do SAML para sua instância do GitHub Enterprise Server, poderá configurar o SCIM para criar ou suspender automaticamente as contas de usuário e permitir acesso à instância ao atribuir ou desatribuir o aplicativo no IdP. Para obter mais informações sobre o SCIM, confira Sistema de Gerenciamento de Usuários entre Domínios: protocolo (RFC 7644) no site do IETF.

Se você não configurar o provisionamento de usuários com SCIM, seu IdP não se comunicará com GitHub Enterprise Server automaticamente quando você atribuir ou cancelar a atribuição do aplicativo a um usuário. Sem SCIM, GitHub Enterprise Server cria uma conta de usuário usando o provisionamento SAML Just-in-Time (JIT) na primeira vez que alguém navega para GitHub Enterprise Server e entra autenticando-se por meio de seu IdP.

Para configurar o provisionamento para sua empresa, você deve habilitar o provisionamento em GitHub Enterprise Server e, em seguida, instalar e configurar um aplicativo de provisionamento em seu IdP ou configurar o provisionamento do SCIM manualmente usando os pontos de extremidade da API REST de GitHub para o SCIM.

Provedores de identidade compatíveis

O GitHub faz parceria com alguns desenvolvedores de sistemas de gerenciamento de identidades para fornecer uma integração simplificada aos ao GitHub Enterprise Server. Para simplificar sua configuração e garantir suporte total, use um único IdP parceiro para autenticação e provisionamento.

Provedores de identidade de parceiros

Os IdPs a seguir são IdPs de parceiros. Eles oferecem um aplicativo que você pode usar para configurar a autenticação SAML e o provisionamento SCIM.

  • ID do Microsoft Entra
  • Okta
  • PingFederate (beta)

Quando você usa um IdP de parceiro único para autenticação e provisionamento, o GitHub fornece suporte para o aplicativo no IdP do parceiro, além da integração do IdP ao GitHub. O suporte para PingFederate está em beta.

Outros sistemas de gerenciamento de identidades

Se você não puder usar um IdP de parceiro para autenticação e provisionamento, poderá usar outro sistema de gerenciamento de identidades ou uma combinação de sistemas. O sistema deverá:

  • Seguir as diretrizes de integração de GitHub
  • Fornecer autenticação usando SAML, atendendo à especificação SAML 2.0
  • Fornecer gerenciamento do ciclo de vida do usuário usando SCIM, atendendo à especificação SCIM 2.0 e comunicando-se com a API REST de GitHub (confiraProvisionar usuários e grupos com SCIM usando a API REST)

Como posso gerenciar os ciclos de vida do usuário com o SCIM?

Com o SCIM, você gerencia o ciclo de vida das contas de usuário do seu IdP:

  • Quando você provisiona um novo usuário, o IdP solicita que o sua instância do GitHub Enterprise Server crie uma conta e envie um email de integração para o usuário. Se você atribuir um grupo ao aplicativo no IdP, o IdP provisionará contas para todos os membros do grupo.
  • Quando você atualiza as informações associadas à identidade de um usuário no IdP, o IdP atualiza a conta do usuário no GitHub.
  • Quando você cancela a atribuição do usuário do aplicativo do IdP ou desativa uma conta de usuário no IdP, o IdP se comunica com o GitHub para invalidar as sessões e desabilitar a conta do membro. As informações da conta desabilitada serão mantidas e o respectivo nome de usuário será alterado para um hash do nome de usuário original.
  • Se você reatribuir um usuário ao aplicativo IdP ou reativar sua conta em seu IdP, a conta de usuário será reativada e o nome de usuário será restaurado.

Para configurar a associação da equipe e da organização, o acesso ao repositório e as permissões, você pode usar grupos no seu IdP. Para saber mais, confira Gerenciando associações de equipes com grupos de provedores de identidade.

Quando o SCIM estiver habilitado, você não poderá mais excluir, suspender nem promover usuários provisionados pelo SCIM diretamente no GitHub Enterprise Server. Você deve gerenciar esses processos por meio do seu IdP.

O que acontecerá com os usuários existentes na minha instância?

Se você usa o SSO do SAML e está habilitando o SCIM, deve estar ciente do que acontece com os usuários existentes durante o provisionamento do SCIM.

  • Quando o SCIM estiver habilitado, os usuários com identidades vinculadas ao SAML não poderão entrar até que suas identidades tenham sido provisionadas pelo SCIM.
  • Quando sua instância recebe uma solicitação do SCIM, as identidades do SCIM são correspondidas aos usuários existentes comparando-se o campo userName do SCIM com o nome de usuário do GitHub. Se um usuário com um nome de usuário correspondente não existir, GitHub criará um novo usuário.
  • Se GitHub identificar com êxito um usuário do IdP, mas os detalhes da conta, como endereço de email, nome ou sobrenome não correspondem, a instância substituirá os detalhes pelos valores do IdP. Qualquer endereço de email diferente do email principal fornecido pelo SCIM também será excluído da conta do usuário.

O que acontece durante a autenticação SAML?

Depois que um administrador do IdP permite que uma pessoa acesse a sua instância do GitHub Enterprise Server, o usuário pode se autenticar por meio do IdP para acessar o GitHub Enterprise Server usando o SSO de SAML.

  • Quando um usuário se autentica por meio do SAML, para associar um usuário a uma identidade SAML, o GitHub compara uma reivindicação NameID normalizada do IdP (ou outro valor que você configurou) com o nome de usuário da conta. Para obter detalhes sobre a normalização, consulte Considerações de nome de usuário para autenticação externa.
  • Se não houver uma conta com um nome de usuário correspondente na instância, o usuário não fará login.
    • Para fazer essa correspondência, GitHub Enterprise Server compara a declaração SAML NameId do IdP com o atributo userName do SCIM para cada conta de usuário provisionada pelo SCIM na instância.
    • Além disso, para o ID do Entra, o GitHub Enterprise Server compara o identificador de objeto da solicitação SAML com um ID externo existente do SCIM.
  • Se o ambiente não usar NameID para identificar os usuários de forma exclusiva, o administrador do site poderá configurar os atributos de usuário personalizados para a instância. O GitHub Enterprise Server respeitará esse mapeamento quando o SCIM estiver configurado. Para obter mais informações sobre o mapeamento de atributos do usuário, confira Configurar o logon único SAML para sua empresa.

O que acontecerá se eu desabilitar o SCIM?

O SCIM será desabilitado em sua instância se qualquer uma das situações a seguir ocorrer.

  • A caixa de seleção Habilitar configuração do SCIM estiver desmarcada na página "Segurança de autenticação" nas configurações empresariais.
  • O botão de opção SAML estiver desmarcado na seção "Autenticação" do Console de Gerenciamento.
  • O campo SAML Emissor ou URL de logon único for atualizado na seção "Autenticação" do Console de Gerenciamento.

Se o SCIM estiver desabilitado na instância:

  • As solicitações para os pontos de extremidade da API do SCIM em sua instância não serão mais bem-sucedidas.
  • Os usuários provisionados pelo SCIM permanecerão inalterados e não serão suspensos.
  • Os administradores do site poderão gerenciar o ciclo de vida dos usuários provisionados pelo SCIM, como suspensão e exclusão, no painel de administração do site.
  • Os usuários ainda poderão fazer logon via SAML, se habilitado.
  • Os usuários serão desvinculados de seu registro de identidade externo e o registro será excluído.

Introdução

Para começar a usar o SCIM, você deverá:

  1. Concluir a configuração inicial, necessária independentemente de qual IdP você usará, em Configurando o provisionamento do SCIM para gerenciar usuários.
  2. Configurar as opções aplicáveis em seu IdP.