Observação
O suporte ao SCIM está em versão prévia pública nesta versão do GitHub Enterprise Server. O suporte ao SCIM está em disponibilidade geral na versão 3.17 e posterior.
Se você habilitou o SCIM para sua instância do GitHub Enterprise Server, usará o SCIM para:
- Desprovisionar usuários e grupos para remover seu acesso.
- Reprovisionar usuários que foram desprovisionados.
Antes de desprovisionar um usuário, é importante entender os efeitos do desprovisionamento, que dependem do tipo de chamada à API de desprovisionamento que o GitHub recebe do provedor de identidade.
Importante
Antes de ler mais, entenda como sua empresa implementou o SCIM. O GitHub fornecerá um aplicativo de "caminho pavimentado" se você usar um IdP (provedor de identidade) com suporte para autenticação e provisionamento. Se você não usar um aplicativo de caminho pavimentado, usará a API REST para fazer solicitações SCIM. Confira Sobre o provisionamento de usuários com o SCIM no GitHub Enterprise Server.
Tipos de desprovisionamento de usuário
Quando um usuário é desprovisionado, a conta do GitHub é suspensa, o que significa que o usuário não pode acessar sua empresa. Independentemente do tipo de desprovisionamento, uma conta desprovisionada nunca é excluída de uma empresa.
O tipo de chamada de desprovisionamento que o GitHub recebe de seu provedor de identidade determina se é possível desprovisionar (restabelecer) um usuário desprovisionado.
- Desprovisionamento reversível: em determinados cenários, a suspensão do usuário pode ser cancelada por meio da integração do SCIM.
- Desprovisionamento permanente: não é possível cancelar a suspensão do usuário. Uma nova conta deve ser provisionada se a pessoa precisar recuperar o acesso.
Efeitos do desprovisionamento de um usuário
Quando você desprovisiona uma conta de usuário, por meio do IdP ou da API REST, GitHub fará alterações na conta de usuário.
Efeitos do desprovisionamento reversível
- O usuário é suspenso e perde o acesso à sua empresa e a todos os recursos privados.
- Depois que a conta de usuário for suspensa, ela será listada na página "Suspended members", em vez de na página "Members" na seção "People" das configurações da empresa.
- O nome de usuário do usuário é ofuscado para um hash do nome de usuário original.
- Com a ID do Entra, o endereço de email do usuário permanece igual. Em todos os outros casos, o email do usuário é ofuscado.
- A identidade SCIM do usuário permanece vinculada à sua conta de usuário em GitHub. Com o Entra ID, o valor do atributo
active
em sua identidade SCIM vinculada armazenada é atualizado deTrue
paraFalse
. - Se o usuário tiver bifurcações de repositórios privados ou internos, elas serão excluídas em 24 horas. As bifurcações serão restauradas se a suspensão do usuário não for cancelada em 90 dias.
- Se o usuário for membro de qualquer grupo de IdP provisionado por SCIM, ele ficará oculto desses grupos e será removido de todas as equipes mapeadas para eles. Observe que isso acontece mesmo se o usuário ainda for membro do grupo no lado do IdP.
- Se a associação à organização for gerenciada por grupos de IdP, o usuário será removido das organizações quando for removido desses grupos de IdP ou removido de todas as equipes mapeadas para grupos de IdP na organização.
- Se a associação à organização for gerenciada diretamente, o usuário permanecerá como um "membro suspenso" da organização, sem acesso, até ser removido manualmente.
Efeitos do desprovisionamento permanente
- O usuário é suspenso e perde o acesso à sua empresa e a todos os recursos privados.
- Depois que a conta de usuário for suspensa, ela será listada na página "Suspended members", em vez de na página "Members" na seção "People" das configurações da empresa.
- O nome de usuário do usuário é ofuscado para um hash do nome de usuário original.
- O endereço de email do usuário é ofuscado.
- O nome de exibição do usuário é definido como uma sequência vazia.
- A identidade SCIM vinculada do usuário, incluindo todos os atributos SCIM do usuário, é excluída.
- personal access tokens, fine-grained personal access tokens, chaves SSH, chaves GPG e autorizações de aplicativo do usuário são excluídos. A exclusão de chaves pode afetar a verificação de confirmação. Confira Sobre a verificação de assinatura de commit.
- Repositórios de propriedade do usuário são excluídos.
- Os recursos criados pelo usuário, como comentários, são mantidos.
- Se o usuário for membro de qualquer grupo de IdP provisionado por SCIM, ele ficará oculto desses grupos e será removido de todas as equipes mapeadas para eles. Observe que isso acontece mesmo se o usuário ainda for membro do grupo no lado do IdP.
- Se a associação à organização for gerenciada por grupos de IdP, o usuário será removido das organizações quando for removido desses grupos de IdP ou removido de todas as equipes mapeadas para grupos de IdP na organização.
- Se a associação à organização for gerenciada diretamente, o usuário permanecerá como um "membro suspenso" da organização, sem acesso, até ser removido manualmente.
Ações que disparam o desprovisionamento
Diferentes ações disparam desprovisionamento reversível e desprovisionamento permanente, e os gatilhos variam conforme a integração do SCIM. Em geral, a maioria das ações executadas nos aplicativos IdP de "caminho pavimentado" só dispara desprovisionamento reversível, com algumas exceções.
Gatilhos de desprovisionamento reversível
Integração do SCIM | Gatilho de desprovisionamento reversível |
---|---|
REST API | Uma solicitação PUT ou PATCH é enviada para /scim/v2/Users/{scim_user_id} , atualizando o campo active de um usuário para false . |
Entra ID | Um usuário está desabilitado no Entra ID, não atribuído do aplicativo, removido de todos os grupos atribuídos ou excluído do locatário pelo administrador. Para obter mais detalhes, confira Exclusões temporárias na documentação da Microsoft. |
Okta | O usuário tem sua atribuição excluída do aplicativo, é removido de todos os grupos atribuídos ou desativado com o botão "Deactivate". Observe que o botão "Suspend" não envia uma solicitação para GitHub. O Okta envia apenas chamadas de desprovisionamento reversível. |
PingFederate | O usuário está suspenso, desabilitado ou removido do repositório de usuários direcionado pelo provisionador. |
Gatilhos de desprovisionamento permanente
Integração do SCIM | Gatilho de desprovisionamento permanente |
---|---|
REST API | Uma solicitação DELETE é enviada para /scim/v2/Users/{scim_user_id} . |
Entra ID | A exclusão permanente de uma conta de usuário do Entra ID, conforme descrito em Exclusões permanentes na documentação da Microsoft. Os usuários do Entra ID excluídos de modo reversível (encontrados na página "Users > Deleted users" do portal de administração da ID do Entra) são automaticamente excluídos de modo permanente pelo Entra ID 30 dias após a exclusão reversível. |
Okta | N/A. O Okta não envia chamadas de desprovisionamento permanente. |
PingFederate | Se a configuração "Remove User Action" estiver definida como "Delete", em vez de "Disable" como resultado de uma configuração incorreta, essa ação enviará uma chamada de desprovisionamento permanente. Confira a documentação do PingIdentity. |
Restabelecer uma conta de usuário que foi desprovisionada de modo reversível
Para restaurar o acesso do usuário e os detalhes da conta, você pode reprovisionar a conta de um usuário que foi desprovisionada de modo reversível, desde que a conta de usuário do IdP seja a mesma. A conta de usuário do IdP deve ser a mesma, pois uma conta de usuário desprovisionada de modo reversível ainda está vinculada a essa identidade externa, com base no SCIM external ID
(ID do objeto de usuário IdP) e no SCIM User ID
. A identidade externa vinculada a uma conta de usuário desprovisionada de modo reversível individual não pode ser alterada.
Efeitos do reprovisionamento
- A suspensão do usuário é cancelada e ele recupera o acesso à sua empresa.
- O nome de usuário e o endereço de email do usuário são restaurados.
- Se o usuário for membro de um grupo IdP provisionado por SCIM mapeado para uma equipe em uma organização, ele será adicionado à organização logo após a conta de usuário ser reprovisionada. Se ele antes era membro da organização, sua associação será restabelecida, desde que não tenham se passado mais de 90 dias desde a remoção. Confira Como reinstaurar um antigo membro da sua organização.
- Se o usuário não for membro de um grupo IdP provisionado por SCIM mapeado para uma equipe em uma organização, um proprietário da organização GitHub precisará adicionar manualmente sua conta de usuário à organização depois de reprovisionado.
- As bifurcações excluídas serão restauradas se a suspensão do usuário não for cancelada até 90 dias após a suspensão.
- Os itens associados ao usuário são restaurados, incluindo:
- GitHub Apps, OAuth apps e autorizações de aplicativo
- Personal access tokens
- Chaves SSH
- Autorizações de token e chave
- Repositórios de propriedade do usuário
Ações que disparam o reprovisionamento
A forma como você reprovisiona um usuário depende da integração do SCIM e da ação que disparou o desprovisionamento reversível.
Implementação do SCIM | Ação para reprovisionar usuários |
---|---|
Entra ID | Reabilite uma conta desabilitada ou reatribua um usuário ao aplicativo, diretamente ou por meio de um grupo atribuído. Aguarde 40 minutos para que as alterações sejam processadas ou agilize com o botão "Provision on Demand". |
Okta | Reative a conta ou reatribua o usuário para o aplicativo, diretamente ou por meio de um grupo. |
PingFederate | Desabilite ou reabilite o usuário no repositório de usuários ou leia o usuário para o grupo de armazenamento de dados ou filtro almejado pelo provisionador. |
REST API | Envie uma solicitação PUT ou PATCH para /scim/v2/Users/{scim_user_id} , atualizando o campo active do usuário para true . |
Restabelecer uma conta de usuário que foi desprovisionada de modo permanente
Não é possível restaurar uma conta de usuário do GitHub que foi desprovisionada de modo permanente por meio do SCIM. Em vez disso, você precisará provisionar uma nova conta GitHub para o usuário.
Você pode reutilizar o nome de usuário do usuário que foi desprovisionado de modo permanente ao provisionar a nova conta. Porém, não é possível mesclar a conta de usuário desprovisionada com a nova conta de usuário no GitHub.
- Se o endereço de email do usuário desprovisionado e do novo usuário for o mesmo, o GitHub atribuirá os commits existentes do Git associados ao endereço de email ao novo usuário.
- Os recursos e comentários existentes criados pelo usuário original não serão associados ao novo usuário.
Eventos do log de auditoria
O log de auditoria da empresa exibe detalhes sobre atividades em sua empresa. Você pode usar o log de auditoria para oferecer suporte à configuração do SCIM. Para saber mais, confira Sobre o log de auditoria da sua empresa.
Importante
É altamente recomendável que um proprietário da empresa habilite recursos de log de auditoria empresarial, como streaming de log de auditoria, divulgação de IP de origem e a opção de transmitir solicitações de API. Transmitir esses eventos permite que os administradores definam uma política de retenção de log que atenda às necessidades de seus negócios e usem suas ferramentas preferenciais para consultar esses logs.
Eventos para desprovisionamento reversível
Quando você desprovisiona um usuário controladamente, o evento external_identity.update
não é exibido no log de auditoria. Os seguintes eventos são exibidos no log de auditoria:
user.suspend
user.remove_email
user.rename
external_identity.deprovision
- Se a solicitação for bem-sucedida,
external_identity.scim_api_success
- Se a solicitação falhar,
external_identity.scim_api_failure
- Se o usuário for membro de qualquer grupo de IdP mapeado para as equipes,
team.remove_member
- Se a associação de um usuário em uma organização for gerenciada pelo IdP e elas forem removidas de todas as equipes mapeadas para grupos de IdP na organização,
org.remove_member
Eventos para desprovisionamento permanente
external_identity.deprovision
user.remove_email
- Se a solicitação for bem-sucedida,
external_identity.scim_api_success
- Se a solicitação falhar,
external_identity.scim_api_failure
- Se o usuário for membro de qualquer grupo de IdP mapeado para as equipes,
team.remove_member
- Se a associação de um usuário em uma organização for gerenciada pelo IdP e elas forem removidas de todas as equipes mapeadas para grupos de IdP na organização,
org.remove_member
Eventos para reprovisionamento
Quando você reativa um usuário, o evento external_identity.update
não é exibido no log de auditoria. Os seguintes eventos são exibidos no log de auditoria:
user.unsuspend
user.remove_email
user.rename
external_identity.provision
- Se a solicitação for bem-sucedida,
external_identity.scim_api_success
- Se a solicitação falhar,
external_identity.scim_api_failure
- Se o usuário for membro de um grupo IdP provisionado por SCIM e esse grupo for mapeado para uma equipe em uma organização,
org.add_member