Okta管理MCP服务器
Gemini CLI扩展,公开 所有694 Okta Management API运营 作为MCP工具——根据官方OpenAPI规范自动生成,并拆分为 10个特定于域的服务器 所以你只加载你需要的东西。
服务器
| 服务器 | 工具 | 域 |
|---|---|---|
okta-users | 93 | 用户、组、会话、因素、凭据 |
okta-apps | 75 | 应用程序、SSO、配置、应用程序用户/组 |
okta-authz | 48 | 授权服务器、策略、规则、声明、范围 |
okta-idps | 39 | 身份提供者、密钥、身份源 |
okta-security | 87 | 身份验证器、策略、行为规则、网络区域 |
okta-roles | 81 | 角色分配、目标、资源集、自定义角色 |
okta-customization | 97 | 品牌、主题、自定义页面、模式、电子邮件 |
okta-org | 68 | 组织设置、功能、可信来源、速率限制 |
okta-hooks | 55 | 事件/内联挂钩、日志流、系统日志、SSF |
okta-devices | 51 | 设备、代理池、领域、推送提供商 |
安装
1.安装扩展
gemini extension install /path/to/okta-mcp-server2.配置身份验证
服务器支持三种身份验证模式,可从环境变量中自动检测。
选项A——私钥JWT *(建议用于自动化)*
最适合CI/CD、脚本和服务器到服务器使用。无需用户交互。
OCT设置: 创建一个 服务 Okta管理控制台中的应用程序→ 应用程序,启用 客户端凭证 授权类型,并在应用程序的凭据下添加公钥(JWK)。
export OKTA_ORG_URL=https://your-org.okta.com
export OKTA_CLIENT_ID=0oa...your-client-id
export OKTA_PRIVATE_KEY_FILE=/path/to/private-key.pem
# Optional:
export OKTA_PRIVATE_KEY_KID=your-key-id # if multiple keys are registered
export OKTA_SCOPES="okta.users.manage okta.apps.manage" # space-separated scopes
export OKTA_AUTH_SERVER_ID=default # omit for org-level authorization server或者,内联传递PEM密钥:
export OKTA_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"选项B——设备授权授予 *(建议交互式使用)*
最适合有人在场的CLI会话。服务器将打印一个URL和代码——在浏览器中打开URL并输入代码进行授权。
OCT设置: 创建一个 本土的 Okta管理控制台中的应用程序→ 应用程序,启用 设备授权 授权类型,并确保授权服务器策略允许设备授权。
export OKTA_ORG_URL=https://your-org.okta.com
export OKTA_CLIENT_ID=0oa...your-client-id
# Optional:
export OKTA_SCOPES="okta.users.manage okta.apps.manage"
export OKTA_AUTH_SERVER_ID=default选项C-SSWS API令牌 *(遗产)*
静态API令牌-简单但安全性较差。保留以实现向后兼容性。
export OKTA_ORG_URL=https://your-org.okta.com
export OKTA_API_TOKEN=your-ssws-token身份验证模式优先级
当设置多个变量时,服务器会选择最安全的选项:
- 私钥JWT --如果
OKTA_CLIENT_ID+OKTA_PRIVATE_KEY/OKTA_PRIVATE_KEY_FILE已设置 - 设备授权授予 要是…就好了
OKTA_CLIENT_ID已设置 - SSWS 要是…就好了
OKTA_API_TOKEN已设置
自动更新
A. 每周(每周一)运行一次,检查上游对 Okta OpenAPI规范。如果检测到更改,它将重新生成工具清单并自动打开PR。
您还可以从“操作”选项卡手动触发它。
重新生成(供贡献者使用)
如果你更新OpenAPI规范:
- 替换
okta-management-openapi.yaml - 跑
npm install && npm run generate - 在中提交更新的JSON清单
src/servers/
项目结构
├── okta-management-openapi.yaml # Okta OpenAPI spec (input)
├── scripts/
│ └── generate-tools.js # Parses YAML → per-server JSON manifests
├── src/
│ ├── server-groups.js # Tag-to-server mapping config
│ ├── create-server.js # Shared MCP server factory
│ ├── okta-auth.js # OAuth2 token manager (Device Auth / PKJWT / SSWS)
│ ├── okta-client.js # HTTP client (delegates auth to okta-auth.js)
│ └── servers/ # Pre-generated per-server manifests
│ ├── okta-users.json
│ ├── okta-apps.json
│ └── ...
├── servers/ # Entry points (one per server)
│ ├── okta-users.js
│ ├── okta-apps.js
│ └── ...
└── gemini-extension.json # Registers all 10 servers