Autorização do usuário
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.
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:
-
NameIDeuserNamedevem 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.
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
- Entre no console de administração do IdP.
- Habilitar o provisionamento do SCIM.
- Forneça a URL base SCIM e o token de portador do GitHub.
Para IdPs personalizados
- Use a API REST SCIM do GitHub.
- Autenticar com um PAT.
- 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
- Configure sua URL de SSO com SAML.
- Forneça seu certificado público.
- 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 |