Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)35 mil · #5949

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

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-scim-provisioning-with-okta/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-scim-provisioning-with-okta/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-okta

Ou 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.md
Conteú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

  1. ServiceProviderConfig (/scim/v2/ServiceProviderConfig): Anuncia as capacidades SCIM
  2. ResourceTypes (/scim/v2/ResourceTypes): Descreve os tipos de recursos suportados
  3. Schemas (/scim/v2/Schemas): Publica as definições do esquema SCIM
  4. Users (/scim/v2/Users): Operações do ciclo de vida do usuário
  5. 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 eq em userName (exigido pelo Okta)
  • Paginação: Retornar startIndex, itemsPerPage e totalResults
  • 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.

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5949
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas