返回市场
奥克塔-MCP服务器

奥克塔-MCP服务器

作者:fctr-id36 星标更新:2025-09-26

项目介绍

<div align="center"> <a href="https://fctr.io"> <img src="https://fctr.io/images/logo.svg" alt="fctr.io" width="110" height="auto"> </a> </div> <div align="center"> <h2>Okta MCP 服务器 (v0.1.1-BETA)</h2> </div> <div align="center"> <h3>🔥 新功能:OAuth 2.1 + RBAC 实现可用</h3> <p><strong>寻找具备企业级安全性的 OAuth 2.1 认证和基于角色的访问控制吗?</strong></p> <p><a href="https://github.com/fctr-id/okta-mcp-server/tree/feature/oauth-proxy-implementation"><strong>→ 查看 OAuth 2.1 + RBAC 功能分支</strong></a></p> </div> <div align="center"> Okta MCP 服务器是一款开创性工具,使 AI 模型能够通过模型上下文协议(MCP)直接与您的 Okta 环境交互。它专门为 IAM 工程师、安全团队和 Okta 管理员构建,实现了 MCP 规范,以改变 AI 助手如何帮助管理和分析 Okta 资源的方式。 </div> <div align="center"> <p><a href="https://github.com/fctr-id/okta-mcp-server">在 GitHub 上查看</a> | <a href="https://modelcontextprotocol.io/introduction">了解 MCP</a> | <a href="https://github.com/fctr-id/okta-ai-agent">Okta AI 代理</a></p> </div> <div align="center"> <h3>快速演示</h3> <p> <img src="images/mcp-server.gif" alt="Okta MCP 服务器演示" width="1024px" height="auto"> </p> </div>

🎉 v0.1.1-BETA 新增内容 - 企业级特殊工具!

此版本引入了强大的特殊工具,彻底改变了日常 Okta 管理任务:

🔥 新增:特殊工具 - 改变 Okta 管理员游戏规则的工具

  • 🎯 全面访问分析:帮助回答 Okta 管理员最常遇到的问题。用户 X 是否可以访问应用 Y?
  • 🛡️ 高级登录风险评估:行为分析,包括 VPN/Tor 检测和地理不可能性检查,有助于可疑报告邮件。

💡 真实案例 - 访问分析:

❓ 问题:"john@公司.com 用户能否访问 Salesforce 应用程序?"

🤖 AI 响应(30 秒):"John Smith 用户可以访问 Salesforce,因为:
1) 用户处于活动状态 ✅
2) 用户通过 '销售团队' 组分配 ✅,
3) 策略允许从公司网络使用 2FA 或从外部位置要求 PUSH 因子 - 用户已注册 PUSH ✅"

⏱️ 手动过程:导航到用户 → 查找 John → 检查状态 → 检查应用程序分配 → 检查组成员资格 → 检查 Salesforce 分配 → 审查访问策略 → 检查 MFA 因子 → 关联网络规则(10-15 分钟)

💡 真实案例 - 登录风险评估:

❓ 问题:"dan@公司.com 的最近登录活动是否可疑?"

🤖 AI 响应(30 秒):"低风险 - Dan 展现出优秀的登录安全模式:一致的地理区域,相同的住宅 ISP,稳定的设备指纹,正常的浏览器模式,零 VPN/代理使用,所有 Okta 风险评分低 ✅"

⏱️ 手动过程:系统日志 → 过滤用户 → 检查位置 → 审查 IP 地址 → 交叉参考网络区域 → 分析设备模式 → 检查地理不可能性 → 审查行为标志(15+ 分钟)

🏗️ 核心架构

  • 🚀 FastMCP 2.0:从旧版 MCP 包迁移到 FastMCP 2.0,以获得前沿的协议特性
  • 🧹 更简洁的代码:移除 tool_registry.py 依赖,简化并更易于维护的代码库
  • ⚡ 更佳性能:现代异步模式和优化的请求处理

🛠️ 增强工具

  • 📝 完全重写:所有工具重新编写,具有更好的注释和描述,便于 AI 理解
  • 🛡️ 改进验证:跨所有操作增强了错误处理和输入验证

🌐 统一客户端

  • 🎯 单一 CLI:新的统一命令行客户端支持多种传输方式(STDIO,HTTP)
  • ⚙️ 简化设置:配置智能默认值,简化设置

🔐 高级安全

  • 🎫 承载令牌:完整的 JWT 承载令牌支持,带有 jwks_uri 验证
  • 🏢 企业认证:支持企业认证流程和基于范围的访问

🚀 面向未来

  • 🎯 抽样支持:为高级请求抽样能力打下基础
  • 🔌 中间件就绪:可扩展的中间件系统,用于自定义处理
  • 📡 协议演进:随着最新 MCP 特性的开发和标准化,提供访问

📋 目录

 

🔍 模型上下文协议是什么?

<div align="left"> <p>模型上下文协议 (MCP) 是一个开放标准,使 AI 模型能够以结构化和安全的方式与外部工具和服务进行交互。它为 AI 系统提供了一致的接口,以发现并使用服务器公开的能力,使 AI 助手的功能超越其训练数据。</p> <p>MCP 类似于“AI 集成的 USB-C”——就像 USB-C 提供了一个通用标准,允许各种设备连接和通信,而不管制造商如何,MCP 创建了一种标准化的方法,让 AI 模型发现和与其他服务交互,无需为每个服务进行定制集成。“即插即用”的方法意味着开发人员可以一次构建工具,并使其在多个 AI 助手中工作,同时用户受益于无缝集成,而不必担心兼容性问题。</p> <p><strong>示例:</strong>“查找我们 Okta 租户中的所有锁定用户,并在 Google Drive 的 IT 运营文件夹中创建一个包含他们姓名、电子邮件地址和最后登录日期的电子表格。”<em>AI 使用 Okta MCP 服务器查询锁定用户,然后将这些数据传递给 Google Drive MCP 服务器以创建电子表格——所有这些都不需要自定义编码。</em></p> <div align="left"> <a href="https://modelcontextprotocol.io/introduction"> <img src="images/MCP-Example.png" style="width:700px"> </a> </div> </div>

⚠️ 重要事项:安全性和限制

在使用 Okta MCP 服务器之前,请仔细阅读本节。

🔄 数据流及隐私

当您发出请求时,交互发生在 LLM 和 Okta MCP 工具之间——客户端应用程序不再位于中间。这些工具返回的所有数据(包括完整的用户资料、组成员资格等)都会在整个对话期间发送到并存储在 LLM 的上下文中。

关键隐私考虑:

  • LLM(Claude、GPT 等)接收并处理所有由工具检索的 Okta 数据
  • 此数据在整个对话期间保留在 LLM 的上下文中
  • 您必须对 Okta 用户数据被 LLM 提供商的系统处理感到满意
  • 在使用这些工具之前,请确保您对 Okta 数据被发送到 AI 模型的服务器感到满意

📊 上下文窗口限制

MCP 设计用于类似 Zapier 的轻量级工作流,而不是批量数据操作。

建议: 将请求限制为每次事务少于 100 个实体。避免需要获取大量数据集或多次 API 调用的操作。

示例:

避免以下类型的请求:

  • “从我们的 Okta 租户中获取所有 10,000 名用户并分析他们的登录模式”
  • “查找未注册 Okta Verify 作为因素的用户”

更好的方法:

  • “获取最近创建的 20 名用户”
  • “查找 90 天以上未登录的用户,限制前 50 个结果”

💡 对于更大的数据集和复杂查询: 考虑使用 Okta AI 代理 进行更大规模的查询和数据集,该代理正在增强类似的“可操作”功能,以处理更大的数据集和更复杂的场景。

🚨 HTTP 传输安全警告

HTTP 传输模式(包括流式 HTTP 和 SSE)存在重大安全风险:

  • 它们打开了具有完全访问权限的未经身份验证的 HTTP 服务器
  • 不提供任何身份验证或授权
  • 任何能够到达网络端口的人都可以向您的 Okta 环境发出命令
  • 极其危险 当使用远程 HTTP 访问时

最佳实践: 除非您有特定的安全控制措施并且理解风险,否则仅使用 STDIO 传输方法(默认模式)。

🛠️ 可用工具

Okta MCP 服务器当前提供了以下工具:

🔥 特殊工具 - 企业管理员加速器

访问分析及故障排除

  • analyze_user_app_access - 完整的用户应用程序访问评估,带策略分析(替代手动 Okta 管理控制台导航 10-15 分钟)

安全及风险评估

  • analyze_login_risk - 全面的登录行为分析,带 VPN/Tor 检测和地理不可能性检查(即时回答“这个用户是否被攻破?”)

⚡ 为什么这些重要: Okta 管理员每天面临的两个最常见的问题是“为什么用户 X 无法访问应用程序 Y?”和“这个登录活动是否可疑?”这些特殊工具立即提供全面的答案,否则需要在多个 Okta 管理屏幕、策略审查和日志分析上进行广泛的手动调查——将 15+ 分钟的调查时间缩短为 30 秒的 AI 驱动洞察。

📊 标准工具

用户管理

  • list_okta_users - 检索用户,带过滤、搜索和分页选项
  • get_okta_user - 通过 ID 或登录名获取特定用户的详细信息
  • list_okta_user_groups - 列出特定用户所属的所有组
  • list_okta_user_applications - 列出特定用户的全部应用程序链接(分配的应用程序)
  • list_okta_user_factors - 列出特定用户注册的所有身份验证因素

组操作

  • list_okta_groups - 检索组,带过滤、搜索和分页选项
  • get_okta_group - 获取特定组的详细信息
  • list_okta_group_members - 列出特定组的所有成员
  • list_okta_assigned_applications_for_group - 列出分配给特定组的所有应用程序

应用程序管理

  • list_okta_applications - 检索应用程序,带过滤、搜索和分页选项
  • list_okta_application_users - 列出分配给特定应用程序的所有用户
  • list_okta_application_group_assignments - 列出分配给特定应用程序的所有组

策略及网络管理

  • list_okta_policy_rules - 列出特定策略的所有规则及其详细条件和操作
  • get_okta_policy_rule - 获取特定策略规则的详细信息
  • list_okta_network_zones - 列出所有网络区域及其 IP 范围和配置详情

系统日志事件

  • get_okta_event_logs - 检索 Okta 系统日志事件,带基于时间的过滤和搜索选项

日期及时间实用工具

  • get_current_time - 获取当前 UTC 时间(ISO 8601 格式)
  • parse_relative_time - 将自然语言时间表达转换为 ISO 8601 格式

额外的应用程序、因素、策略和其他高级操作工具将在未来的发布中添加。

🚀 快速开始

前提条件

✅ 您的机器上安装了 Python 3.8+ ✅ 具有适当 API 访问权限的 Okta 租户 ✅ 与 MCP 兼容的 AI 客户端(如 Claude Desktop、Microsoft Copilot Studio 等)

⚠️ 重要模型兼容性说明: 并非所有 AI 模型都与此 MCP 服务器兼容。测试仅针对以下模型进行:

  • GPT-4.0
  • Claude 3.7 Sonnet
  • Google-2.5-pro

您必须使用明确支持工具调用/函数调用功能的最新模型版本。没有工具调用支持的旧模型或模型将无法与 Okta MCP 服务器交互。

🧠 支持的 AI 提供商

Okta MCP 服务器通过其灵活的配置系统支持多个 AI 提供商。这允许您根据具体需求和现有访问连接到各种大型语言模型。

目前支持的提供商:

提供商环境变量描述
OpenAIAI_PROVIDER=openai通过 GPT-4o 等模型连接到 OpenAI API。需要 OpenAI API 密钥。
Azure OpenAIAI_PROVIDER=azure_openai使用 Azure 主办的 OpenAI 模型,具有增强的安全性和合规性功能。
AnthropicAI_PROVIDER=anthropic连接到 Anthropic 的 Claude 模型(主要测试了 Claude 3.7 Sonnet)。
Google Vertex AIAI_PROVIDER=vertex_ai通过 Vertex AI 使用 Google 的 Gemini 模型。需要 Google Cloud 服务账户。
OpenAI 兼容AI_PROVIDER=openai_compatible连接到任何实现 OpenAI API 规范的 OpenAI API 兼容端点,例如 Fireworks.ai、Ollama 或其他提供商。

安装

# 克隆仓库
git clone https://github.com/fctr-id/okta-mcp-server.git
cd okta-mcp-server

# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate  # 在 Windows 上使用:venv\Scripts\activate

# 安装依赖项
pip install -r requirements.txt

⚠️ 注意: 如果您重新克隆此仓库或拉取更新,请务必重新运行 pip install -r requirements.txt 以确保所有依赖项都是最新的。

配置及使用

创建一个包含您的 Okta 设置的配置文件:

要使用命令行客户端(无内存),请使用以下说明

# 复制示例配置
cp .env.sample .env

# 编辑环境变量,填写您的设置
# 必需:Okta 域和 API 令牌以及 LLM 设置

cd clients
python mcp-cli-stdio-client.py

要使用像 Claude Code、vsCode 等 MCP 主机,请参见下面的 JSON 配