Skip to main content

Solucionar problemas de subscrição de equipe com grupos de provedores de identidade

Se você gerenciar a subscrição de equipe usando grupos em seu provedor de identidade (IdP), mas a subscrição de equipe não estiver sincronizada, poderá solucionar problemas.

Quem pode usar esse recurso?

Enterprise Managed Users está disponível para novas contas empresariais em GitHub Enterprise Cloud. Confira Sobre o Enterprise Managed Users.

Sobre o gerenciamento da subscrição de equipes com grupos de IdP

Com os Enterprise Managed Users, poderá gerenciar a associação à equipe e à organização na sua empresa por meio do IdP conectando as equipes do GitHub aos grupos no IdP. Você pode ver uma lista das equipes que você sincronizou com os grupos do IdP nas configurações da sua empresa. Para saber mais, confira Gerenciando associações de equipes com grupos de provedores de identidade.

GitHub também executa uma tarefa de reconciliação uma vez por dia, que sincroniza a participação na equipe com a participação no grupo do IdP armazenada em GitHub, com base nas informações enviadas anteriormente pelo IdP via SCIM. Se esse trabalho descobrir que um usuário é membro de um grupo IdP na empresa, mas não é membro da equipe mapeada ou de sua organização, o trabalho tentará adicionar o usuário à organização e à equipe.

Se GitHub não conseguir sincronizar a associação de equipe com um grupo no seu IdP, você poderá visualizar uma mensagem de erro e resolver o problema.

Exibir erros para sincronização de equipe com um grupo de IdP

  1. Navegue até sua empresa. Por exemplo, na página Enterprises em GitHub.com.

  2. Na lista de empresas, clique na empresa que você deseja visualizar.

  3. Para examinar uma lista de grupos de IdP, na barra lateral esquerda, clique em Identity provider.

  4. No Identity provider, clique em Groups.

  5. Se a sincronização de um grupo estiver com problemas, você verá uma mensagem que diz "Alguns grupos não estão conseguindo se sincronizar com as equipes. Verifique se você tem licenças disponíveis”.

  6. Na lista de grupos do IdP, clique no grupo que você gostaria de analisar.

  7. Para analisar o erro de sincronização do grupo, sob o nome do grupo, clique em Equipes.

    Se uma equipe não conseguir sincronizar a subscrição com um grupo em seu IdP, você verá uma descrição do problema sob o nome da equipe e o n´mero de subscrições.

Erro: "Fora de sincronia devido a licenças insuficientes"

GitHub armazena dados de associação de grupo IdP para Enterprise Managed Users provisionados por SCIM no nível empresarial. Esses dados são preenchidos e atualizados por meio de chamadas à API Group SCIM do seu provedor de identidade (IdP).

Para grupos de IdP mapeados para equipes, GitHub executa um trabalho de reconciliação diária para sincronizar a associação de equipe com os dados do grupo armazenados no IdP de nível empresarial. A reconciliação também é executada sempre que uma chamada à API scim de grupo atualiza a associação de grupo ou quando um administrador vincula ou desvincula uma equipe a um grupo armazenado no GitHub.

Se sua empresa não tiver licenças suficientes disponíveis, GitHub talvez não seja possível concluir essa sincronização. Quando isso ocorrer, você verá a mensagem:

"Fora de sincronização devido a licenças insuficientes"

Como resultado, a equipe ou organização afetada pode estar faltando membros.

Captura de tela da página de grupo do IdP. Um aviso de que uma equipe está fora de sincronia devido a licenças insuficientes é realçado em laranja escuro.

Para investigar esse problema, examine o total de licenças disponíveis da sua empresa, bem como informações detalhadas sobre quais usuários estão consumindo licenças e por quê. Para saber mais, confira Pessoas que consomem uma licença em uma organização e Exibindo o uso do seu plano GitHub Enterprise.

Resolvendo o problema

Para permitir que a sincronização seja concluída com êxito, disponibilize licenças empresariais adicionais usando uma das seguintes abordagens:

  • Liberar licenças existentes

    • Identifique quais usuários estão consumindo licenças e se ainda precisam de acesso.
    • Remova usuários de organizações ou grupos IdP conforme necessário, dependendo de como você gerencia a associação a organizações e equipes (consulte Visualizar pessoas na sua empresa):
      • Se você gerenciar a associação da sua organização por meio de grupos de IdP, remova os usuários dos grupos relevantes.
    • Monitore os eventos de log de auditoria empresarial para acompanhar as chamadas à API SCIM que atualizam a associação a grupos ou contas de usuários gerenciadas (consulte Auditar eventos de log para sua empresa:
      • external_group.scim_api_failure / external_group.scim_api_success
      • external_identity.scim_api_failure / external_identity.scim_api_success
  • Comprar licenças adicionais

Erro: "Fora de sincronia"

Se a sincronização da subscrição da equipe com um grupo em seu IdP falhar devido a um problema diferente do licenciamento, você verá uma mensagem que diz "Fora de sincronia".

Captura de tela da página de grupo do IdP. Um aviso de que uma equipe está fora de sincronia é realçado em laranja escuro.

GitHub tentará resolver esse problema automaticamente durante a próxima sincronização, que ocorre pelo menos uma vez por dia. Talvez seja possível resolver o problema desvinculando a equipe afetada do grupo de IdP e vinculando-a ao mesmo grupo novamente. Para saber mais, confira Gerenciando associações de equipes com grupos de provedores de identidade.

Se o problema persistir, entre em contato Suporte do GitHub Enterprise e forneça detalhes sobre a organização, a equipe e o grupo de IdP com o qual você está enfrentando problemas.

Eventos incompletos da API SCIM

Se você vir um evento external_identity.scim_api_incomplete ou external_group.scim_api_incomplete em seu log de auditoria da empresa, uma solicitação SCIM do seu provedor de identidade foi recebida por GitHub, mas não foi concluída com êxito. Nenhuma resposta foi enviada de volta ao seu provedor de identidade, o que pode relatar a operação como com falha ou tempo limite.

Resolvendo o problema

Acione novamente o provisionamento no seu provedor de identidade para o usuário ou grupo afetado. As operações SCIM são idempotentes, portanto, o reprovisionamento não criará duplicatas.

  • Entra ID: no centro de administração do Microsoft Entra, vá para Aplicativos Empresariais > seu aplicativo SCIM > Provisionamento e uso provisionamento sob demanda para o usuário ou grupo afetado ou reiniciar o provisionamento para uma sincronização completa. Para obter mais informações, consulte provisionamento sob demanda em Microsoft Entra ID na documentação do Microsoft.
  •           **Okta:** envie por push novamente o grupo afetado de **Grupos de Push** ou atribua novamente o aplicativo ao usuário afetado. Para obter mais informações, consulte [Grupos de Push](https://help.okta.com/en-us/content/topics/users-groups/usgr-push-groups.htm) na documentação do Okta.
    
  • Outros provedores de identidade: Consulte a documentação do provedor de identidade para saber como disparar novamente o provisionamento scim para um usuário ou grupo específico.

Verificando se a alteração foi aplicada

Se você tiver o streaming de log de auditoria configurado, poderá pesquisar nos logs transmitidos outros eventos com o mesmo valor de request_id do evento scim_api_incomplete. Para saber mais, confira Como transmitir o log de auditoria para sua empresa.

Uma única chamada à API scim de grupo pode disparar qualquer um dos seguintes eventos durante o processamento:

Evento do log de auditoriaDescription
external_group.provisionO grupo foi criado
external_group.deleteO grupo foi excluído
external_group.updateMetadados de grupo foram atualizados
external_group.update_display_nameO nome de exibição foi alterado
external_group.add_memberUm membro específico foi adicionado
external_group.remove_memberUm membro específico foi removido

Para determinar quais alterações de membro foram aplicadas antes da interrupção, os eventos add_member e remove_member são os mais úteis. Eles identificam o membro específico afetado. Se você encontrar menos eventos de membros do que o solicitado, isso significa que os membros restantes não foram processados.

Observação

A interface do usuário do log de auditoria empresarial e a API REST atualmente não dão suporte à filtragem por request_id. A transmissão de logs de auditoria para uma plataforma de logs ou um SIEM é necessária para esta etapa.

Causas comuns

Causas comuns de eventos incompletos

  • O tempo de processamento excede o tempo limite da conexão, geralmente devido a grupos grandes.
  • Ocorre uma interrupção de rede entre o provedor de identidade e GitHub.
  • Um problema transitório ocorre na infraestrutura de GitHub.
  • Seu ambiente de rede, como proxies corporativos, firewalls ou soluções CASB, interfere na conexão.
  • As configurações de tempo limite do cliente SCIM do provedor de identidade são muito restritivas.

Se esse evento se repetir para o mesmo grupo ou usuário, entre em contato com Suporte do GitHub Enterprise com os valores de request_id dos eventos afetados.

Limites de tempo para grupos grandes

Uma única solicitação SCIM PUT ou PATCH para um grupo com um grande número de membros pode exceder o tempo limite da solicitação. Quando isso acontece, seu provedor de identidade pode relatar a operação como falha e você poderá ver um external_group.scim_api_incomplete evento no log de auditoria da empresa.

Os limites de taxa de provisionamento do SCIM descrevem um limite de 1.000 usuários por grupo por hora, mas uma única PUT solicitação ou PATCH solicitação que altera a associação a um grande grupo também pode exceder o tempo limite da solicitação antes que todos os membros sejam processados. Para saber mais, confira Provisionar usuários e grupos com SCIM usando a API REST.

Prevenção de tempos limite

  • Divida grupos grandes em grupos menores. Se o seu provedor de identidade oferecer suporte a isso, divida em vários grupos menores os grupos que frequentemente atingem o tempo limite. Isso reduz o tempo de processamento por solicitação SCIM.
  • Use atualizações incrementais. Sempre que possível, use PATCH solicitações para adicionar ou remover membros individuais em vez de PUT solicitações que substituam toda a lista de associações.
  • Monitore eventos incompletos. Configure o streaming de log de auditoria e alertas para eventos scim_api_incomplete para que você possa acionar novamente o provisionamento prontamente.