MCP服务器
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?
- ⚠️ 重要:安全性和限制
- 🛠️ 可用工具
- 🚀 快速开始
- 🧠 支持的 AI 提供商
- ⚠️ 须知
- 🗺️ 道路图
- 🆘 需要帮助?
- 💡 功能请求与想法
- 👥 贡献者
- ⚖️ 法律条款
🔍 什么是 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)
- 审计日志和合规报告
- 系统日志集成
- 安全洞察生成
- 多租户支持
- 基于角色的访问控制
🆘 需要帮助?
在提出问题之前,请检查:
- 📝 服务器配置
- 🔑 Okta API 权限
- 🔌 MCP 客户端兼容性
- 📊 服务器日志
仍然有问题?请在 GitHub 上打开一个问题或发送电子邮件至 support@fctr.io(响应时间可能有所不同)
💡 功能请求与想法
有想法或建议?在 GitHub 上打开一个功能请求!
👥 贡献者
有兴趣贡献吗?我们非常欢迎!请联系 info@fctr.io 获取合作机会。
⚖️ 法律条款
查看 License.md 了解详细条款。
🌟 © 2025 Fctr Identity. 保留所有权利。为 Okta 和 AI 社区倾情打造。