okta认证
阿尔法:这个项目正在积极开发中。API、工具签名和 会话格式可能会在不同版本之间发生变化。
okta-auth 是一个Okta登录工具包,有两个入口点:
okta:面向人类的交互式CLIokta-auth:用于重用已保存会话的AI代理的MCP服务器
会话存储在 ~/.okta-auth/sessions/现有会议 ~/.okta-auth-mcp/sessions/ 自动迁移。
安装
紫外线工具
uv tool install okta-auth-clipipx
pipx install okta-auth-cli点
pip install okta-auth-cli浏览器设置
该项目使用Playwright实现浏览器自动化。它会自动选择 本地Chrome或Edge安装(如果可用)。
如果找不到支持的系统浏览器,请安装Playwright Chromium:
playwright install chromium升级
uv tool:uv tool upgrade okta-auth-clipipx:pipx upgrade okta-auth-clipip:pip install -U okta-auth-cli
快速开始
1.配置凭据
运行内置向导:
okta config如果向导要求提供TOTP密钥,而您不确定在哪里可以找到它,请参阅 TOTP秘密.
该向导支持两个提供程序:
keyring:将凭据存储在操作系统凭据管理器中op:生成~/.okta-auth/op.env随着op://...参考文献op run
仅存储默认URL和提供程序元数据等非机密设置 在 ~/.okta-auth/config.json.
2.登录
okta或者直接传递目标URL:
okta https://portal.company.com默认情况下,登录流是无头的。使用 --headed 以显示浏览器。
3.重用MCP中的会话
配置后,AI代理可以使用保存的会话或 您配置的凭据提供程序。
TOTP秘密
TOTP密钥是身份验证器应用程序背后的Base32密钥。你通常 必须在首次MFA注册时捕获它。
在Okta MFA设置期间
- 首选 设置->安全方法 在Okta。
- 选择 谷歌身份验证器 或另一个TOTP兼容因子。
- 在二维码屏幕上,单击 无法扫描?
- 复制显示的Base32机密。
- 通过输入生成的代码完成注册。
此项目目前不支持仅依赖Okta Verify的门户 MFA的推送应用程序。
如果你已经注册并丢失了秘密
您通常需要删除并重新注册验证器因素才能获得新的 秘密。
凭证设置
凭证解析顺序为:
- 显式CLI或MCP参数
- 环境变量
- 所选提供程序为时存储的密钥环凭据
keyring
推荐:OS钥匙圈
这是默认和推荐的本地设置:
okta config --provider keyring存储的内容:
username,password,totp_secret:仅限操作系统钥匙圈default_url:~/.okta-auth/config.json
典型的钥匙圈后端:
- macOS:钥匙链访问
- Windows:凭据管理器/凭据锁定器
- Linux:特勤局或KWallet
如果没有可用的安全后端,向导将拒绝回退到纯文本。
1Password命令行界面
如果您已经在1Password中管理机密:
okta config --provider op存储的内容:
vault,item、字段名称,default_url:~/.okta-auth/config.jsonOKTA_USERNAME,OKTA_PASSWORD,可选OKTA_TOTP_SECRET参考文献
~/.okta-auth/op.env
生成的env文件包含 op://... 引用,而不是明文值。
通过启动CLI或MCP服务器 op run:
op run --env-file=$HOME/.okta-auth/op.env -- okta
op run --env-file=$HOME/.okta-auth/op.env -- uvx --from okta-auth-cli okta-auth1密码库、项目和字段名称必须与机密引用兼容 路径。如果名称包含不支持的分隔符,例如 /,使用对象的 取而代之的是唯一ID。
环境变量
CI、临时shell或外部环境仍然支持环境变量 秘密经理。他们推翻了 okta config 价值观。
export OKTA_USERNAME="you@company.com"
export OKTA_PASSWORD="your-okta-password"
export OKTA_TOTP_SECRET="JBSWY3DPEHPK3PXP"手动1Password设置
如果您不想使用向导,可以设置 op run 手动。
- 创建登录项:
op item create --category login --title "Okta MCP" \
username="you@company.com" \
password="your-okta-password" \
totp_secret="JBSWY3DPEHPK3PXP"- 创建
~/.okta-auth/op.env:
OKTA_USERNAME=op://Personal/Okta MCP/username
OKTA_PASSWORD=op://Personal/Okta MCP/password
OKTA_TOTP_SECRET=op://Personal/Okta MCP/totp_secret- 发射通过
op run:
op run --env-file=$HOME/.okta-auth/op.env -- uvx --from okta-auth-cli okta-auth命令行界面
常用命令
okta [url]:登录并保存会话okta config:打开凭据向导okta config --provider keyring:强制钥匙圈配置okta config --provider op:强制1Password配置okta config --show:显示当前配置状态okta config --reset:删除已保存的配置和凭据okta check:验证存储的会话okta list:列出存储的会话okta delete:删除已存储的会话okta cookies:检查存储的Cookie
示例
okta https://portal.company.com --username you@company.com --headedMCP 服务器
MCP工具
| 工具 | 说明 |
|---|---|
okta_login | 验证目标URL并存储会话状态 |
okta_check_session | 验证存储的会话是否仍然有效 |
okta_list_sessions | 列出已保存的会话和元数据 |
okta_delete_session | 删除已存储的会话 |
okta_get_cookies | 从存储的会话中检索Cookie |
克劳德代码
claude mcp add okta-auth -- uvx --from okta-auth-cli okta-auth如果您使用1Password:
claude mcp add okta-auth -- op run --env-file=$HOME/.okta-auth/op.env -- uvx --from okta-auth-cli okta-auth克劳德桌面/光标/风帆
违约:
{
"mcpServers": {
"okta-auth": {
"command": "uvx",
"args": ["--from", "okta-auth-cli", "okta-auth"]
}
}
}使用1Password:
{
"mcpServers": {
"okta-auth": {
"command": "op",
"args": ["run", "--env-file=/Users/yourname/.okta-auth/op.env", "--", "uvx", "--from", "okta-auth-cli", "okta-auth"]
}
}
}使用 okta 对于交互式CLI。使用 okta-auth 仅在为包装布线时 进入MCP客户端。
安全
- 此项目旨在用于本地可信执行。
- 会话文件和Cookie是敏感凭证。
- 更喜欢
okta config直接在命令行上传递凭据。 - 更喜欢
keyring或op run通过纯文本shell文件。 - 切勿在问题或日志中发布cookie值、密码或TOTP机密。
发展
uv venv && source .venv/bin/activate
uv pip install -e '.[dev]'
playwright install chromium在本地运行检查:
ruff format --check .
ruff check .
pytest