M

MCP服务器

@fctr-id/okta-mcp-server
0 Stars 302 次浏览 fctr-id 更新于 2026-08-23

MCP服务器与Okta实体配合工作

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "okta-mcp-server": {
      "args": [
        "DIR/okta-mcp-server/main.py"
      ],
      "command": "DIR/okta-mcp-server/venv/Scripts/python",
      "env": {
        "OKTA_API_TOKEN": "OKTA_API_TOKEN",
        "OKTA_CLIENT_ORGURL": "https://dev-1606.okta.com"
      }
    }
  }
}

该服务需要配置环境变量:AI_PROVIDER、OKTA_API_TOKEN、OKTA_CLIENT_ORGURL

服务介绍

Okta MCP Server 是一个开创性的工具,它通过 Model Context Protocol (MCP) 使 AI 模型能够直接与您的 Okta 环境交互。该工具专为 IAM 工程师、安全团队和 Okta 管理员设计,实现了 MCP 规范,改变了 AI 助手管理和分析 Okta 资源的方式。

📋 目录

 

🔍 什么是 Model Context Protocol?

⚠️ 重要:安全性和限制

在使用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代理来处理更大规模的查询和数据集。该代理正在增强类似“可执行”功能,以在未来不久处理更大数据集和更复杂场景。

🚨 SSE传输安全性警告

通过HTTP的SSE传输模式存在显著的安全风险:

  • 它会开启一个未经身份验证的 HTTP 服务器,该服务器可以完全访问您的 Okta 租户
  • 不提供任何身份验证或授权
  • 任何能够访问该网络端口的人都可以向您的 Okta 环境发出命令

最佳实践: 除非您有特定的安全控制措施,否则只使用 STDIO 传输方式(默认模式)。

🛠️ 可用工具

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

用户管理

  • 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 - 以 ISO 8601 格式获取当前 UTC 时间
  • 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 提供商。这使您可以根据特定需求和现有访问权限连接到各种大型语言模型。

当前支持的提供商:

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

安装

# 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

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

配置与使用

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

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

# Copy the sample config
cp .env.sample .env

# Edit the env with your settings
# Required: Okta domain and API token and LLM settings

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

要使用 MCP 主机如 Claude Code, vsCode 等,请参阅下面的 JSON 配置

支持的传输协议和启动

Okta MCP 服务器支持两种传输协议:

1. 标准输入/输出 (STDIO) - 推荐

  • 安全性:通过标准输入/输出流直接通信
  • 使用场景:适用于桌面 AI 助手如 Claude Desktop
  • 配置:对于 Claude Desktop,在 claude_desktop_config.json 中添加:
    {
      "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"
          }
        }
      }
    }
    
    DIR 替换为您的绝对目录路径,并将 OKTA_API_TOKEN 替换为您的实际令牌

2. 服务器发送事件 (SSE) - 仅限高级使用

# Run in SSE mode (requires explicit risk acknowledgment)
python main.py --sse --iunderstandtherisks

⚠️ 警告:SSE 传输会通过一个可被网络中任何人访问的 Web 端点暴露您的服务器。仅在有适当网络安全保护的安全环境中使用。

  • 对于其他 MCP 客户端:根据它们的文档配置 STDIO 或 SSE 传输。

⚠️ 值得了解

Alpha 版本 🧪

  • 开发早期阶段 - 预期会有频繁更新
  • API 覆盖范围仍在扩展
  • 目前重点是针对用户和组的只读操作
  • 正在快速添加更多工具和功能
  • 尚不适合生产环境

安全第一 🛡️

  • 专为最小权限操作设计
  • 默认对 Okta 资源具有只读访问权限
  • 未来的写入操作将需要明确的审批流程

当前限制 🔍

  • 从一组有限的用户和组的只读工具开始
  • 计划在即将发布的版本中快速扩展 API 覆盖范围
  • 某些复杂的 Okta 关系尚未公开
  • 对于非常大的 Okta 实例,性能尚未优化
  • 需要直接网络访问 Okta API 端点

🗺️ 路线图

当前进展:

  • MCP 协议合规性
  • 基本的 Okta API 集成
  • 支持只读操作

未来计划包括:

  • 全面文档
  • 完整的用户生命周期操作
  • 应用程序分配管理
  • 组成员资格操作
  • 因子注册和验证
  • 策略和规则管理
  • 敏感操作的审批工作流
  • 多渠道审批选项(网页、电子邮件、Slack)
  • 审计日志和合规报告
  • 系统日志集成
  • 安全洞察生成
  • 多租户支持
  • 基于角色的访问控制

🆘 需要帮助?

在提出问题之前,请检查:

  1. 📝 服务器配置
  2. 🔑 Okta API 权限
  3. 🔌 MCP 客户端兼容性
  4. 📊 服务器日志

仍然有问题?请在 GitHub 上打开一个问题或发送电子邮件至 support@fctr.io(响应时间可能有所不同)

💡 功能请求与想法

有想法或建议?在 GitHub 上打开一个功能请求

👥 贡献者

有兴趣贡献吗?我们非常欢迎!请联系 info@fctr.io 获取合作机会。

⚖️ 法律条款

查看 License.md 了解详细条款。


🌟 © 2025 Fctr Identity. 保留所有权利。为 Okta 和 AI 社区倾情打造。

相关 MCP 服务