Okta MCP Server
Permite que modelos de IA interajam com seu ambiente Okta para gerenciar e analisar recursos, projetado para engenheiros de IAM, equipes de segurança e administradores.
Documentação
Okta MCP Server (v0.1.1-BETA)
🔥 ALERTA!!! Um novo MCP Server totalmente reconstruído já está disponível
Uma reescrita completa baseada no novo padrão de arquitetura MCP da Anthropic, com operação em modo duplo, engenharia de contexto, sandbox de segurança aprimorado e suporte Docker pronto para produção.
Demonstração Rápida
🎉 Novidades na v0.1.1-BETA - Ferramentas Especiais de Nível Empresarial!
Esta versão apresenta ferramentas especiais poderosas que revolucionam as tarefas diárias de administração do Okta:
🔥 NOVO: Ferramentas Especiais - Mudanças de Jogo para Administradores Okta
- 🎯 Análise Abrangente de Acesso: Ajuda a responder a pergunta mais frequente que os administradores Okta enfrentam. O usuário X pode acessar o aplicativo Y?
- 🛡️ Avaliação Avançada de Risco de Login: Análise comportamental com detecção de VPN/Tor e verificação de impossibilidade geográfica, que pode ajudar com e-mails de relatórios suspeitos.
💡 Exemplo do Mundo Real - Análise de Acesso:
❓ Question: "Can user john@company.com access the application Salesforce?"
🤖 AI Response (30 seconds): "User John Smith can access Salesforce because:
1) User is ACTIVE ✅
2) User is assigned via group 'Sales Team' ✅,
3) Policy allows access with 2FA from corporate network or requires PUSH factor from external locations - user has PUSH enrolled ✅"
⏱️ Manual Process: Navigate Users → Find John → Check Status → Check App
Assignments → Check Group Memberships → Check Salesforce Assignments →
Review Access Policies → Check MFA Factors → Correlate Network Rules (10-15 min)
💡 Exemplo do Mundo Real - Avaliação de Risco de Login:
❓ Question: "Is dan@company.com's recent login activity suspicious?"
🤖 AI Response (30 seconds): "LOW RISK - Dan exhibits excellent login
security patterns: consistent geographic area, same residential ISP,
stable device fingerprints, normal browser patterns, zero VPN/proxy
usage, all Okta risk scores LOW ✅"
⏱️ Manual Process: System Logs → Filter User → Check Locations → Review
IP Addresses → Cross-reference Network Zones → Analyze Device Patterns →
Check Geographic Impossibility → Review Behavioral Flags (15+ min)
🏗️ Arquitetura Principal
- 🚀 FastMCP 2.0: Migrado do pacote MCP legado para FastMCP 2.0 para recursos de protocolo de ponta
- 🧹 Código Mais Limpo: Removida a dependência de
tool_registry.pypara uma base de código mais simples e sustentável - ⚡ Melhor Desempenho: Padrões assíncronos modernos e tratamento otimizado de solicitações
🛠️ Ferramentas Aprimoradas
- 📝 Reescrita Completa: Todas as ferramentas reescritas com melhores anotações e descrições para compreensão da IA
- 🛡️ Validação Aprimorada: Tratamento de erros e validação de entrada aprimorados em todas as operações
🔐 Segurança Avançada
- 🎫 Tokens Bearer: Suporte completo a tokens bearer JWT com validação de
jwks_uri - 🏢 Autenticação Empresarial: Suporte para fluxos de autenticação empresarial e acesso baseado em escopos
🚀 Pronto para o Futuro
- 🔌 Pronto para Middleware: Sistema de middleware extensível para processamento personalizado
- 📡 Evolução do Protocolo: Acesso aos recursos MCP mais recentes à medida que são desenvolvidos e padronizados
📝 Nota: Clientes CLI e recursos de amostragem de IA foram movidos para a pasta
_Archived/devido a conflitos de dependência com pydantic-ai (vulnerabilidade de segurança). Consulte_Archived/README.mdpara detalhes.
📋 Sumário
- 🎉 Novidades na v0.1.1-BETA - Ferramentas Especiais de Nível Empresarial!
- 📋 Sumário
- 🔍 O que é o Model Context Protocol?
- ⚠️ IMPORTANTE: Segurança e Limitações
- 🛠️ Ferramentas Disponíveis
- 🚀 Início Rápido
- 🧠 Provedores de IA Suportados
- 5. Implantação Docker - Executando Containers Docker
- ⚠️ Bom Saber
- 🗺️ Roteiro
- 🆘 Precisa de Ajuda?
- 💡 Solicitações de Recursos e Ideias
- 👥 Colaboradores
- ⚖️ Questões Legais
🔍 O que é o Model Context Protocol?
O Model Context Protocol (MCP) é um padrão aberto que permite que modelos de IA interajam com ferramentas e serviços externos de forma estruturada e segura. Ele fornece uma interface consistente para que sistemas de IA descubram e usem capacidades expostas por servidores, permitindo que assistentes de IA estendam sua funcionalidade além de seus dados de treinamento.
Pense no MCP como o "USB-C da integração de IA" - assim como o USB-C fornece um padrão universal que permite que vários dispositivos se conectem e comuniquem independentemente do fabricante, o MCP cria uma maneira padronizada para modelos de IA descobrirem e interagirem com diferentes serviços sem integração personalizada para cada um. Essa abordagem "plug-and-play" significa que os desenvolvedores podem construir ferramentas uma vez e fazê-las funcionar em vários assistentes de IA, enquanto os usuários se beneficiam de integração perfeita sem se preocupar com problemas de compatibilidade.
Exemplo: "Encontre todos os usuários bloqueados em nosso tenant Okta e crie uma planilha em nossa pasta de Operações de TI no Google Drive com seus nomes, endereços de e-mail e datas do último login." A IA usa o Okta MCP Server para consultar usuários bloqueados e depois passa esses dados para o Google Drive MCP Server para criar a planilha - tudo sem codificação personalizada.
⚠️ IMPORTANTE: Segurança e Limitações
Leia esta seção com atenção antes de usar o Okta MCP Server.
🔄 Fluxo de Dados e Privacidade
Quando você faz uma solicitação, a interação acontece diretamente entre o LLM e as ferramentas Okta MCP - o aplicativo cliente não está mais no meio. Todos os dados retornados por essas ferramentas (incluindo perfis completos de usuários, associações de grupos, etc.) são enviados e armazenados no contexto do LLM durante toda a transação para aquela conversa.
Principais Considerações de Privacidade:
- O LLM (Claude, GPT, etc.) recebe e processa todos os dados Okta recuperados pelas ferramentas
- Esses dados permanecem no contexto do LLM durante toda a conversa
- Você deve estar confortável com seus dados de usuário Okta sendo processados pelos sistemas do provedor do LLM
- Antes de usar essas ferramentas, certifique-se de estar confortável com os dados Okta sendo enviados aos servidores do modelo de IA
📊 Limitações da Janela de Contexto
O MCP é projetado para fluxos de trabalho leves, semelhantes ao Zapier, não para operações de dados em massa.
Recomendação: Limite as solicitações a menos de 100 entidades por transação. Evite operações que exijam buscar grandes conjuntos de dados ou múltiplas chamadas de API.
Exemplos:
❌ Evite estes tipos de solicitações:
- "Busque todos os 10.000 usuários do nosso tenant Okta e analise seus padrões de login"
- "Encontre usuários que não têm o Okta Verify cadastrado como fator"
✅ Melhores abordagens:
- "Obtenha os 20 usuários criados mais recentemente"
- "Encontre usuários que não fizeram login há mais de 90 dias, limite aos primeiros 50 resultados"
💡 Para conjuntos de dados maiores e consultas complexas: Considere usar o Agente de IA Okta para consultas e conjuntos de dados maiores. O agente está sendo aprimorado com recursos "acionáveis" semelhantes para lidar com conjuntos de dados maiores e cenários mais complexos em um futuro muito próximo.
🚨 Aviso de Segurança do Transporte HTTP
Os modos de transporte HTTP (tanto Streamable HTTP quanto SSE) apresentam riscos de segurança significativos:
- Eles abrem servidores HTTP não autenticados com acesso total ao seu tenant Okta
- Nenhuma autenticação ou autorização é fornecida
- Qualquer pessoa que possa alcançar a porta de rede pode emitir comandos para seu ambiente Okta
- EXTREMAMENTE PERIGOSO ao usar acesso HTTP remoto via
mcp-remote
Melhor Prática: Use apenas o método de transporte STDIO (modo padrão), a menos que você tenha controles de segurança específicos em vigor e entenda os riscos.
🛠️ Ferramentas Disponíveis
O Okta MCP Server atualmente fornece as seguintes ferramentas:
🔥 Ferramentas Especiais - Aceleradores de Administração Empresarial
Análise de Acesso e Solução de Problemas
analyze_user_app_access- Avaliação completa do acesso do usuário ao aplicativo com análise de políticas (substitui 10-15 minutos de navegação manual no Okta Admin Console)
Avaliação de Segurança e Risco
analyze_login_risk- Análise abrangente do comportamento de login com detecção de VPN/Tor e verificação de impossibilidade geográfica (responde "Este usuário está comprometido?" instantaneamente)
⚡ Por que Isso Importa: As duas perguntas mais comuns que os administradores Okta enfrentam diariamente são "Por que o usuário X não consegue acessar o aplicativo Y?" e "Esta atividade de login é suspeita?". Essas ferramentas especiais fornecem instantaneamente respostas abrangentes que, de outra forma, exigiriam investigação manual extensa em várias telas de administração Okta, revisões de políticas e análise de logs - transformando investigações de 15+ minutos em insights alimentados por IA em 30 segundos.
📊 Ferramentas Padrão
Gerenciamento de Usuários
list_okta_users- Recuperar usuários com opções de filtragem, pesquisa e paginaçãoget_okta_user- Obter informações detalhadas sobre um usuário específico por ID ou loginlist_okta_user_groups- Listar todos os grupos aos quais um usuário específico pertencelist_okta_user_applications- Listar todos os links de aplicativos (aplicativos atribuídos) para um usuário específicolist_okta_user_factors- Listar todos os fatores de autenticação cadastrados para um usuário específico
Operações de Grupo
list_okta_groups- Recuperar grupos com opções de filtragem, pesquisa e paginaçãoget_okta_group- Obter informações detalhadas sobre um grupo específicolist_okta_group_members- Listar todos os membros de um grupo específicolist_okta_assigned_applications_for_group- Listar todos os aplicativos atribuídos a um grupo específico
Gerenciamento de Aplicativos
list_okta_applications- Recuperar aplicativos com opções de filtragem, pesquisa e paginaçãolist_okta_application_users- Listar todos os usuários atribuídos a um aplicativo específicolist_okta_application_group_assignments- Listar todos os grupos atribuídos a um aplicativo específico
Gerenciamento de Políticas e Redes
list_okta_policy_rules- Listar todas as regras para uma política específica com condições e ações detalhadasget_okta_policy_rule- Obter informações detalhadas sobre uma regra de política específicalist_okta_network_zones- Listar todas as zonas de rede com faixas de IP e detalhes de configuração
Eventos de Log do Sistema
get_okta_event_logs- Recuperar eventos de log do sistema Okta com filtragem baseada em tempo e opções de pesquisa
Utilitários de Data e Hora
get_current_time- Obter hora UTC atual no formato ISO 8601parse_relative_time- Converter expressões de tempo em linguagem natural para o formato ISO 8601
Ferramentas adicionais para aplicativos, fatores, políticas e operações mais avançadas estão no roteiro e serão adicionadas em versões futuras.
🚀 Início Rápido
Pré-requisitos
✅ Python 3.8+ instalado em sua máquina
✅ Tenant Okta com acesso apropriado à API
✅ Um cliente de IA compatível com MCP (Claude Desktop, Microsoft Copilot Studio, etc.)
⚠️ Nota Importante sobre Compatibilidade de Modelos:
Nem todos os modelos de IA funcionam com este servidor MCP. Os testes foram realizados apenas com:
- GPT-4.0
- Claude 3.7 Sonnet
- Google-2.5-pro
Você deve usar as versões mais recentes dos modelos que suportem explicitamente recursos de chamada de ferramentas/funções. Modelos mais antigos ou sem suporte a chamada de ferramentas não conseguirão interagir com o Okta MCP Server.
🧠 Provedores de IA Suportados
O Okta MCP Server suporta múltiplos provedores de IA através do seu sistema de configuração flexível. Isso permite conectar-se a vários modelos de linguagem de grande escala com base nas suas necessidades específicas e acesso existente.
Provedores Atualmente Suportados:
| Provedor | Variável de Ambiente | Descrição |
|---|---|---|
| OpenAI | AI_PROVIDER=openai | Conecte-se à API da OpenAI com modelos como GPT-4o. Requer uma chave de API da OpenAI. |
| Azure OpenAI | AI_PROVIDER=azure_openai | Use modelos da OpenAI hospedados no Azure com recursos aprimorados de segurança e conformidade. |
| Anthropic | AI_PROVIDER=anthropic | Conecte-se aos modelos Claude da Anthropic (testado principalmente com Claude 3.7 Sonnet). |
| Google Vertex AI | AI_PROVIDER=vertex_ai | Use os modelos Gemini do Google via Vertex AI. Requer conta de serviço do Google Cloud. |
| Compatível com OpenAI | AI_PROVIDER=openai_compatible | Conecte-se a qualquer endpoint compatível com a API da OpenAI, como Fireworks.ai, Ollama ou outros provedores que implementem a especificação da API da OpenAI. |
Instalação
# Clone the repository
git clone https://github.com/fctr-id/okta-mcp-server.git
cd okta-mcp-server
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
⚠️ AVISO: Se você clonar este repositório novamente ou puxar atualizações, sempre execute novamente
pip install -r requirements.txtpara garantir que todas as dependências estejam atualizadas.
Configuração e Uso
Crie um arquivo de configuração com suas configurações do Okta:
📝 Nota: Clientes CLI independentes foram arquivados. Para integração com hosts MCP (Claude Desktop, VS Code, etc.), use o servidor diretamente com a configuração JSON abaixo.
Transportes Suportados e Inicialização
O Okta MCP Server suporta múltiplos protocolos de transporte:
1. Entrada/Saída Padrão (STDIO) - Recomendado
- Segurança: ✅ Comunicação direta através de fluxos padrão de entrada/saída
- Caso de uso: Ideal para assistentes de IA de desktop como Claude Desktop
- Desempenho: ✅ Leve e eficiente
- Configuração: Para Claude Desktop, adicione em
claude_desktop_config.json:
Substitua{ "mcpServers": { "okta-mcp-server": { "command": "DIR/okta-mcp-server/venv/Scripts/python", "args": [ "DIR/okta-mcp-server/main.py" ], "env": { "OKTA_CLIENT_ORGURL": "https://dev-1606.okta.com", "OKTA_API_TOKEN": "OKTA_API_TOKEN" } } } }DIRpelo caminho absoluto do seu diretório eOKTA_API_TOKENpelo seu token real
2. Transporte HTTP Streamable - Padrão Moderno e Atual
Padrão Atual - Transporte HTTP moderno baseado em HTTP com recursos avançados:
- Recursos: ✅ Streaming de eventos em tempo real, gerenciamento de sessão, suporte a retomada
- Desempenho: ✅ Melhor escalabilidade e gerenciamento de conexões
- Caso de uso: Aplicações web modernas e clientes que suportam streaming HTTP
- Segurança: ⚠️ Servidor HTTP local - seguro em ambientes controlados
Iniciando o Servidor HTTP Streamable:
# Start server with explicit risk acknowledgment
python main.py --http --iunderstandtherisks
# Server will start on http://localhost:3000/mcp
# Connect using streamable HTTP compatible clients
Recursos:
- ✅ Streaming em tempo real - Atualizações de progresso ao vivo durante operações
- ✅ Gerenciamento de sessão - Mantém o estado da conexão
- ✅ Streaming de eventos - Eventos enviados pelo servidor para notificações em tempo real
- ✅ Melhor tratamento de erros - Respostas de erro detalhadas
- ✅ Protocolo moderno - Baseado nas especificações MCP mais recentes
3. Acesso HTTP Remoto - Uso Avançado de Alto Risco
⚠️ EXTREMAMENTE PERIGOSO - LEIA COM ATENÇÃO
Para clientes MCP que não suportam nativamente conexões remotas, você pode usar mcp-remote via NPX:
Pré-requisitos:
- Node.js e NPM instalados
- Okta MCP Server rodando em modo HTTP
Configuração:
# 1. Install mcp-remote globally
npm install -g @anthropic/mcp-remote
# 2. Start your Okta MCP Server in HTTP mode
python main.py --http --iunderstandtherisks
# 3. Configure your MCP client (e.g., Claude Desktop)
Configuração do Claude Desktop:
{
"mcpServers": {
"okta-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:3000/mcp"
],
"env": {
"OKTA_CLIENT_ORGURL": "https://dev-1606.okta.com",
"OKTA_API_TOKEN": "your_actual_api_token"
}
}
}
}
🚨 AVISOS CRÍTICOS DE SEGURANÇA:
- NUNCA use em ambientes de produção
- NUNCA exponha a porta HTTP (3000) a redes públicas
- QUALQUER PESSOA com acesso à rede pode controlar seu tenant Okta
- Sem proteção de autenticação ou autorização
- Todas as operações do Okta são expostas sem restrições
- Use apenas em ambientes de desenvolvimento isolados e seguros
- Considere esta abordagem somente se o transporte STDIO for absolutamente inviável
Quando você pode precisar desta abordagem:
- Testar integrações MCP que exigem transporte HTTP
- Aplicações clientes específicas que não podem usar STDIO
- Cenários de desenvolvimento que exigem depuração HTTP
- NUNCA para ambientes de produção ou compartilhados
4. Eventos Enviados pelo Servidor (SSE) - Obsoleto
⚠️ OBSOLETO: O transporte SSE está obsoleto e não é recomendado para novas implementações.
# Run in SSE mode (requires explicit risk acknowledgment)
python main.py --sse --iunderstandtherisks
- Caso de uso: Clientes MCP legados que exigem especificamente SSE (não recomendado)
- Segurança: ⚠️ Mesmos riscos de segurança HTTP do Streamable HTTP
- Recomendação: Use o transporte Streamable HTTP para todas as novas implementações
5. Implantação com Docker
O Okta MCP Server fornece imagens Docker para todos os tipos de transporte, oferecendo opções de implantação em contêineres.
Executando Contêineres Docker
Transporte STDIO (Recomendado): Para Claude Desktop ou outros clientes MCP, configure para usar o contêiner Docker:
{
"mcpServers": {
"okta-mcp-server": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "OKTA_CLIENT_ORGURL",
"-e", "OKTA_API_TOKEN",
"fctrid/okta-mcp-server:stdio"
],
"env": {
"OKTA_CLIENT_ORGURL": "https://your-org.okta.com",
"OKTA_API_TOKEN": "your_api_token"
}
}
}
}
Transporte HTTP Streamable (Padrão Atual):
# Start the HTTP container
docker run -d --name okta-mcp-http \
-p 3000:3000 \
-e OKTA_API_TOKEN=your_api_token \
-e OKTA_CLIENT_ORGURL=https://your-org.okta.com \
fctrid/okta-mcp-server:http
# Configure your MCP client to connect to http://localhost:3000/mcp
Transporte SSE (Obsoleto - Não Recomendado):
# Start the SSE container (deprecated)
docker run -d --name okta-mcp-sse \
-p 3000:3000 \
-e OKTA_API_TOKEN=your_api_token \
-e OKTA_CLIENT_ORGURL=https://your-org.okta.com \
fctrid/okta-mcp-server:sse
# Configure your MCP client to connect to http://localhost:3000/sse
Construindo Imagens Localmente:
# Build all variants
docker build --target stdio -t okta-mcp-server:stdio .
docker build --target http -t okta-mcp-server:http .
docker build --target sse -t okta-mcp-server:sse .
⚠️ Bom Saber
Versão Beta 🧪
- Arquitetura completamente reescrita com FastMCP 2.0
- Estabilidade e desempenho aprimorados em comparação com versões alfa anteriores
- Sistema abrangente de ferramentas com integração de IA aprimorada
- Mais adequado para ambientes de desenvolvimento e teste
- Prontidão para produção em avaliação com recursos de segurança aprimorados
Segurança em Primeiro Lugar 🛡️
- Projetado para operação com privilégios mínimos
- Acesso somente leitura padrão aos recursos do Okta
- Futuras operações de escrita exigirão fluxos de aprovação explícitos
Limitações Atuais 🔍
- Começando com um conjunto limitado de ferramentas somente leitura para usuários e grupos
- Planejando expandir a cobertura da API rapidamente nas próximas versões
- Algumas relações complexas do Okta ainda não expostas
- Desempenho com instâncias muito grandes do Okta ainda não otimizado
- Requer acesso direto à rede para endpoints da API do Okta
🗺️ Roadmap
v0.1.0-BETA - Atual (GRANDE REFORMA ARQUITETURAL!)
- Migração completa para a arquitetura FastMCP 2.0
- Reescrita abrangente de todas as ferramentas com anotações aprimoradas
- Novo cliente CLI unificado suportando múltiplos transportes
- Eliminada a dependência de tool_registry.py para um código mais limpo
- Suporte avançado a tokens bearer com validação jwks_uri
- Tratamento de erros e validação significativamente aprimorados
- Otimizações de desempenho e padrões assíncronos modernos
v0.3.0 - Anterior
- Suporte a transporte HTTP Streamable
- Streaming de eventos em tempo real
- Gerenciamento de sessão e retomada
- Aplicações clientes aprimoradas
Planos futuros incluem:
- Operações completas do ciclo de vida do usuário
- Gerenciamento de atribuição de aplicativos
- Operações de associação a grupos
- Registro e verificação de fatores
- Gerenciamento de políticas e regras
- Fluxos de aprovação para operações sensíveis
- Opções de aprovação multicanal (web, e-mail, Slack)
- Registro de auditoria e relatórios de conformidade
- Integração de logs do sistema
- Geração de insights de segurança
- Suporte multi-tenant
- Controle de acesso baseado em funções
🆘 Precisa de Ajuda?
Antes de abrir uma issue, verifique:
- 📝 Configuração do servidor
- 🔑 Permissões da API do Okta
- 🔌 Compatibilidade do cliente MCP
- 📊 Logs do servidor
Ainda com problemas? Abra uma issue no GitHub ou envie um e-mail para support@fctr.io (os tempos de resposta podem variar)
💡 Solicitações de Recursos e Ideias
Tem uma ideia ou sugestão? Abra uma solicitação de recurso no GitHub!
👥 Colaboradores
Interessado em contribuir? Adoraríamos ter você! Entre em contato pelo e-mail info@fctr.io para oportunidades de colaboração.
⚖️ Questões Legais
Confira License.md para os detalhes legais.
🌟 © 2025 Fctr Identity. Todos os direitos reservados. Feito com ❤️ para as comunidades Okta e IA.