此版本引入了强大的特殊工具,彻底改变了日常 Okta 管理任务:
💡 真实案例 - 访问分析:
❓ 问题:"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+ 分钟)
tool_registry.py 依赖,简化并更易于维护的代码库jwks_uri 验证
在使用 Okta MCP 服务器之前,请仔细阅读本节。
当您发出请求时,交互发生在 LLM 和 Okta MCP 工具之间——客户端应用程序不再位于中间。这些工具返回的所有数据(包括完整的用户资料、组成员资格等)都会在整个对话期间发送到并存储在 LLM 的上下文中。
关键隐私考虑:
MCP 设计用于类似 Zapier 的轻量级工作流,而不是批量数据操作。
建议: 将请求限制为每次事务少于 100 个实体。避免需要获取大量数据集或多次 API 调用的操作。
示例:
❌ 避免以下类型的请求:
✅ 更好的方法:
💡 对于更大的数据集和复杂查询: 考虑使用 Okta AI 代理 进行更大规模的查询和数据集,该代理正在增强类似的“可操作”功能,以处理更大的数据集和更复杂的场景。
HTTP 传输模式(包括流式 HTTP 和 SSE)存在重大安全风险:
最佳实践: 除非您有特定的安全控制措施并且理解风险,否则仅使用 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 服务器交互。
Okta MCP 服务器通过其灵活的配置系统支持多个 AI 提供商。这允许您根据具体需求和现有访问连接到各种大型语言模型。
| 提供商 | 环境变量 | 描述 |
|---|---|---|
| OpenAI | AI_PROVIDER=openai | 通过 GPT-4o 等模型连接到 OpenAI API。需要 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 规范的 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 配