implementing-scim-provisioning-with-okta
Ajuda seu agente a automatizar a criação e o gerenciamento de contas de usuário em outros aplicativos usando o Okta SCIM.
O que ela faz
Esta ferramenta ajuda a conectar o Okta (um sistema de gerenciamento de identidades) com outros aplicativos. Ela automatiza a criação, atualização e exclusão de contas de usuário nesses aplicativos, usando um padrão chamado SCIM.
Quando usar
- ✓Quando você quer que novas contas de usuário sejam criadas automaticamente em outros sistemas quando alguém é adicionado ao Okta.
- ✓Quando você quer que as informações dos usuários (como nome ou email) sejam atualizadas automaticamente em vários sistemas.
- ✓Quando você quer que as contas de usuário sejam desativadas automaticamente em outros sistemas quando alguém sai da empresa.
Exemplo do que pedir para a IA
“Configure a integração SCIM entre Okta e meu aplicativo para sincronizar usuários.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O Okta envia informações sobre os usuários para um 'servidor' que você cria. Esse servidor usa o padrão SCIM para entender e processar essas informações, garantindo que as contas nos aplicativos sejam criadas, atualizadas ou removidas corretamente.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-scim-provisioning-with-oktaOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-scim-provisioning-with-okta/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Implementando Provisionamento SCIM com Okta
Visão Geral
SCIM (System for Cross-domain Identity Management) é um protocolo padrão aberto (RFC 7644) que automatiza a troca de informações de identidade de usuários entre provedores de identidade como Okta e provedores de serviço. Esta habilidade abrange a construção de um endpoint de API compatível com SCIM 2.0 e sua integração com o Okta para gerenciamento automatizado do ciclo de vida do usuário, incluindo provisionamento, desprovisionamento, atualizações de perfil e gerenciamento de grupos.
Quando Usar
- Ao implantar ou configurar a implementação de provisionamento SCIM com capacidades do Okta em seu ambiente
- Ao estabelecer controles de segurança alinhados aos requisitos de conformidade
- Ao construir ou melhorar a arquitetura de segurança para este domínio
- Ao realizar avaliações de segurança que exigem esta implementação
Pré-requisitos
- Tenant Okta com acesso de administrador (Developer ou Production)
- Aplicação com API REST capaz de gerenciar usuários
- Endpoint seguro por TLS (HTTPS obrigatório)
- Token de API Okta ou credenciais de cliente OAuth 2.0
- Python 3.9+ com Flask ou FastAPI
Conceitos Principais
Protocolo SCIM 2.0
O SCIM define um esquema padrão para representar usuários e grupos via JSON, com uma API RESTful para operações CRUD:
| Operação | Método HTTP | Endpoint | Descrição |
|---|---|---|---|
| Criar Usuário | POST | /scim/v2/Users | Provisiona uma nova conta de usuário |
| Ler Usuário | GET | /scim/v2/Users/{id} | Recupera detalhes do usuário |
| Atualizar Usuário | PUT/PATCH | /scim/v2/Users/{id} | Modifica atributos do usuário |
| Excluir Usuário | DELETE | /scim/v2/Users/{id} | Remove a conta do usuário |
| Listar Usuários | GET | /scim/v2/Users | Lista usuários com filtragem |
| Criar Grupo | POST | /scim/v2/Groups | Cria um grupo |
| Gerenciar Grupo | PATCH | /scim/v2/Groups/{id} | Adiciona/remove membros do grupo |
Arquitetura de Integração SCIM do Okta
Okta (IdP) ──SCIM 2.0 over HTTPS──> SCIM Server ──> Application Database
│ │
├── User Assignment ├── Create/Update User
├── User Unassignment ├── Deactivate User
├── Profile Push ├── Sync Attributes
└── Group Push └── Manage Groups
Endpoints SCIM Necessários
- ServiceProviderConfig (
/scim/v2/ServiceProviderConfig): Anuncia as capacidades SCIM - ResourceTypes (
/scim/v2/ResourceTypes): Descreve os tipos de recursos suportados - Schemas (
/scim/v2/Schemas): Publica as definições do esquema SCIM - Users (
/scim/v2/Users): Operações do ciclo de vida do usuário - Groups (
/scim/v2/Groups): Operações de gerenciamento de grupo
Fluxo de Trabalho
Etapa 1: Construir o Servidor API SCIM 2.0
Crie um servidor SCIM baseado em Flask que implemente os endpoints principais. O servidor deve lidar com:
- CRUD de Usuários: Criar, ler, atualizar, excluir e listar usuários
- Filtragem: Suporte a filtro
eqemuserName(exigido pelo Okta) - Paginação: Retornar
startIndex,itemsPerPageetotalResults - Autenticação: Validação de token Bearer em todos os endpoints
from flask import Flask, request, jsonify
import uuid
from datetime import datetime
app = Flask(__name__)
# Token Bearer para autenticação Okta
SCIM_BEARER_TOKEN = "seu-token-seguro-aqui"
def require_auth(f):
def wrapper(*args, **kwargs):
auth = request.headers.get("Authorization", "")
if not auth.startswith("Bearer ") or auth[7:] != SCIM_BEARER_TOKEN:
return jsonify({"detail": "Unauthorized"}), 401
return f(*args, **kwargs)
wrapper.__name__ = f.__name__
return wrapper
@app.route("/scim/v2/Users", methods=["POST"])
@require_auth
def create_user():
data = request.json
user_id = str(uuid.uuid4())
user = {
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": user_id,
"userName": data.get("userName"),
"name": data.get("name", {}),
"emails": data.get("emails", []),
"active": True,
"meta": {
"resourceType": "User",
"created": datetime.utcnow().isoformat() + "Z",
"lastModified": datetime.utcnow().isoformat() + "Z",
"location": f"/scim/v2/Users/{user_id}"
}
}
# Persistir usuário no banco de dados
return jsonify(user), 201
@app.route("/scim/v2/Users", methods=["GET"])
@require_auth
def list_users():
filter_param = request.args.get("filter", "")
start_index = int(request.args.get("startIndex", 1))
…
Perguntas frequentes
O que é SCIM?
SCIM é um padrão que define como diferentes sistemas devem trocar informações de usuários de forma automática e segura.
O que é Okta?
Okta é uma plataforma que gerencia quem tem acesso a quais aplicativos em uma empresa.
Preciso saber programar para usar isso?
Sim, é necessário ter conhecimentos de programação para construir o servidor SCIM e configurar a integração com o Okta.
Detalhes
Descrição original do autor
Implement automated user lifecycle provisioning and deprovisioning using the SCIM 2.0 protocol with Okta as the identity provider. Use when automating account creation, attribute sync, or deactivation across downstream applications through Okta SCIM integration, or when troubleshooting SCIM provisioning failures.
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #5949
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC