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 atributouserName
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.
- Para fazer essa correspondência, GitHub Enterprise Server compara a declaração SAML
- 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á:
- Concluir a configuração inicial, necessária independentemente de qual IdP você usará, em Configurando o provisionamento do SCIM para gerenciar usuários.
- Configurar as opções aplicáveis em seu IdP.
- Se você estiver usando um IdP de parceiro para autenticação e provisionamento, deverá seguir um guia para seu IdP.
- Caso contrário, você configurará uma integração ao SCIM com a API REST, conforme descrito em Provisionar usuários e grupos com SCIM usando a API REST.