Autorização do usuário

Concluído

Depois que um usuário se autentica com êxito por meio de seu IdP (provedor de identidade) usando o SSO (logon único) SAML, a próxima etapa crítica é a autorização, concedendo a ferramentas como PATs (tokens de acesso pessoal), chaves SSH ou aplicativos OAuth a capacidade de acessar recursos da organização.

Automatizando a autorização do usuário com o SSO e o SCIM do SAML

O SSO da SAML (linguagem de marcação de declaração de segurança) permite que os proprietários de empresas e organizações controlem o acesso aos recursos do GitHub, como repositórios, problemas e solicitações de pull. A integração do SCIM (System for Cross-domain Identity Management) aprimora o controle de acesso automatizando o provisionamento e o desprovisionamento do usuário.

Captura de tela da configuração SCIM.

Com o SCIM, novos funcionários adicionados ao IdP recebem acesso ao GitHub automaticamente, enquanto os usuários que partem são removidos, reduzindo as etapas manuais e melhorando a segurança.

Observação

Sem o SCIM, o SSO do SAML sozinho não dá suporte ao desprovisionamento automático de membros da organização.

O SCIM também revoga tokens obsoletos após o término de uma sessão, reduzindo os riscos de segurança. Sem o SCIM, a revogação de tokens obsoletos deve ser feita manualmente.

Gerenciando chaves SSH e PATs com SSO do SAML

O SSO do SAML e o SCIM trabalham juntos para refletir as alterações de identidade no GitHub. Para dar suporte a essa coesão:

  • NameID e userName devem coincidir entre o IdP SAML e o cliente SCIM.
  • As alterações de grupo no IdP acionam atualizações SCIM no GitHub.

Os usuários que acessam APIs ou Git devem usar uma chave PAT ou SSH autorizada. Esses métodos são auditáveis e vinculados com segurança ao SSO do SAML.

Captura de tela da chave SSH.

Para simplificar a integração, faça a provisão de usuários usando: https://github.com/orgs/ORGANIZATION/sso/sign_up. Exiba este link na página inicial do IdP.

Quando os usuários se autenticam pela primeira vez, o GitHub vincula sua conta e dados SCIM à sua organização. Os administradores podem auditar ou revogar sessões e credenciais posteriormente para automatizar o desligamento.

Integração do SCIM com o GitHub

O SCIM simplifica o gerenciamento de identidades no GitHub Enterprise Cloud, dando suporte a integrações nativas e configurações personalizadas.

Provedores SCIM com suporte

O GitHub dá suporte nativo a:

  • Okta
  • Microsoft Entra ID
  • OneLogin
  • Identidade do Ping
  • Google Workspace

Essas integrações garantem a configuração e a compatibilidade confiáveis.

Integrações SCIM personalizadas

Se o IdP não tiver suporte nativo, use a API SCIM do GitHub para criar integrações personalizadas.

Visão geral da API scim

A API SCIM 2.0 permite que você:

  • Criar, atualizar e excluir usuários
  • Gerenciar grupos

Solicitação de exemplo para provisionar um usuário

POST /scim/v2/Users
Content-Type: application/json

{
  "userName": "jdoe",
  "name": {
    "givenName": "John",
    "familyName": "Doe"
  },
  "emails": [
    {
      "value": "jdoe@example.com",
      "primary": true
    }
  ]
}

O GitHub processa essa solicitação e adiciona o usuário à sua organização.

Introdução

Para provedores com suporte

  1. Entre no console de administração do IdP.
  2. Habilitar o provisionamento do SCIM.
  3. Forneça a URL base SCIM e o token de portador do GitHub.

Captura de tela das etapas de configuração do SCIM no console administrativo do IdP.

Para IdPs personalizados

  1. Use a API REST SCIM do GitHub.
  2. Autenticar com um PAT.
  3. Teste a integração com solicitações de exemplo.

Principais benefícios da integração do SCIM

  • Provisionamento: Crie contas automaticamente.
  • Atualizações: Sincronizar funções e departamentos.
  • Desprovisionamento: Remova o acesso imediatamente após a saída do usuário.

SCIM vs. Gerenciamento Manual de Usuários

Aspecto Gerenciamento baseado em SCIM Gerenciamento Manual
Automação Automatiza o provisionamento e o desprovisionamento Intervenção manual necessária
Consistência Dados de usuário padronizados entre sistemas Risco de inconsistências
Segurança Desativação oportuna do acesso Revogações atrasadas ou perdidas
Escalabilidade Escalabilidade para grandes bases de usuários Difícil de gerenciar em grande escala
Conformidade Ajuda a atender aos requisitos de política e auditoria Mais difícil de rastrear e relatar

Conectando seu IdP ao GitHub

Você pode usar um provedor de identidade com suporte ou trazer seu próprio IdP SAML 2.0.

IdPs com suporte (Paved Path)

  • Okta
  • Microsoft Entra ID
  • Google Workspace

Algumas vantagens de usar os IdPs com suporte são:

  • Integração perfeita
  • Com suporte do GitHub
  • Menor esforço de instalação

Traga Seu Próprio IdP

Traga seu próprio IdP requer suporte a SAML 2.0. Ele tem a vantagem de permitir a flexibilidade total.

Etapas de integração

Tipo Etapas
Caminho pavimentado: 1. Navegue até as configurações de segurança da empresa.
2. Selecione seu IdP.
3. Siga as instruções de instalação.
IdP personalizado: 1. Vá para as configurações de segurança.
2. Escolha idP personalizado.
3. Insira metadados SAML. 4 Valide a conexão.

Comparando caminhos de integração do IdP

Característica Caminho pavimentado Traga Seu Próprio IdP
Processo de instalação ✅ Configuração guiada ⚠️ Configuração manual
Flexibilidade ⚠️ Limitado aos IdPs listados ✅ Qualquer IdP SAML 2.0
Manutenção ✅ Gerenciado pelo GitHub ⚠️ Gerenciado pela organização
Personalização ⚠️ Mínima ✅ Totalmente personalizável
Suporte & Atualizações ✅ Com suporte do GitHub ⚠️ Autogerenciado

Gerenciando identidades e acesso

Configuração do SSO do SAML

  1. Configure sua URL de SSO com SAML.
  2. Forneça seu certificado público.
  3. Adicionar metadados de IdP.

Gerenciamento de Credenciais

PaTs e chaves SSH devem ser explicitamente autorizadas e vinculadas a identidades IdP para acessar recursos da organização com segurança.

Auditando sessões SAML

  • Exibir sessões ativas nas configurações.
  • Revogar sessões individuais conforme necessário.

Considerações sobre associação do GitHub

Tipo Consideração
Subscrição de Instância do GitHub - Acesso a repositórios públicos
– Criar projetos pessoais
- Visibilidade do perfil público
Filiação à Organização - Acesso interno baseado em função
- Perfil visível para administradores da organização
- Pode afetar a cobrança
Múltiplas associações em organizações diferentes - Funções diferentes entre organizações
– Acesso mais amplo a recursos
- Permissões complexas e faturamento
– Requer uma governança estrita