必须通过1password connect server代理访问api,部署于受信内网、禁用公网暴露;创建最小权限服务令牌并安全注入;python应用使用sdk调用,返回值即用即弃;三步验证连通性与权限边界。

在自动化流程或内部工具中调用1Password存储的密钥,必须通过1Password Connect Server代理访问API,直接使用主账户凭据或硬编码Token存在严重泄露风险。
部署并启动1Password Connect Server
这一步必须在受信内网服务器上完成,不能暴露到公网。Connect Server是所有API调用的唯一入口,它把原始1Password账户凭证完全隔离在服务端,客户端只跟它通信。
下载最新版op-connect-server二进制文件,解压至/opt/onepassword-connect/目录。
执行op-connect-server --address 127.0.0.1:8080 --tls-cert ./cert.pem --tls-key ./key.pem启动服务,【务必确认--address参数未设为0.0.0.0或公网IP】。
在系统防火墙中仅放行ToClaw所在主机的IP对本机8080端口的TCP连接请求,其他来源全部拒绝。
创建并注入最小权限服务令牌
服务令牌不是密码,而是具备明确作用域的短期凭证,适用于CI/CD、K8s应用等无需人工交互的场景。
方法一:Web界面创建
登录1Password Web控制台 → 设置 → 服务令牌 → 创建新令牌 → 勾选目标保管库(如“ToClaw-Prod-Credentials”)→ 权限仅勾选“read_item”和“list_items” → 点击创建 → 复制生成的完整Token字符串。
方法二:命令行创建(需已配置op CLI并登录管理员账户)
op service-account create --vault "ToClaw-Prod-Credentials" --permissions read_item,list_items --format json → 提取输出中的token字段值。
将该Token通过Kubernetes Secret挂载为环境变量OP_SERVICE_TOKEN,禁止写入日志、配置文件或进程命令行参数。
在Python应用中调用1Password Connect API
使用官方Python SDK可避免手动处理HTTP头、错误重试和会话管理等细节。
安装SDK:pip install onepasswordconnectsdk。
初始化客户端:
from onepasswordconnectsdk import new_client<br>client = new_client("http://localhost:8080", "YOUR_SERVICE_TOKEN")
获取指定条目字段值:
item = client.get_item("database-credentials", "q5x7y9z2m4n8p1t6")<br>password_field = next((f for f in item.fields if f.id == "password"), None)<br>if password_field:<br> print(password_field.value)
这一步调用会触发1Password Connect向后端1Password服务发起认证与解密,返回明文密码;【返回值不缓存、不日志、不跨函数传递,用完即弃】。
验证API连通性与权限边界
第一步:检查Connect Server健康状态
执行curl -k https://localhost:8080/health,返回{"status":"pass"}表示服务就绪。
第二步:测试服务令牌读取权限
执行curl -k -H "Authorization: Bearer $OP_SERVICE_TOKEN" "https://localhost:8080/v1/items?vault=xxx",确认返回HTTP 200且响应体中仅含目标保管库下的条目ID列表,不含敏感字段。
第三步:尝试越权操作(如写入)
执行curl -k -X POST -H "Authorization: Bearer $OP_SERVICE_TOKEN" "https://localhost:8080/v1/items" -d '{"title":"test"}',应返回HTTP 403 Forbidden,证明权限策略生效。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











