鉴权、身份与 Profile
鉴权、身份与 Profile
lark-cli 的鉴权不是单独的 auth login 问题,而是 config、credential、profile、identity 和 strict mode 共同组成的运行时策略。
用户路径
README 的推荐路径是:
lark-cli config init
lark-cli auth login --recommend
lark-cli auth status
auth 子命令包括:
| 命令 | 作用 |
|---|---|
auth login | OAuth 登录,可交互选择 scope 或用 flag 指定 |
auth logout | 退出并删除凭证 |
auth status | 显示当前登录状态和已授权 scope |
auth check | 检查某个 scope,适合脚本 predicate |
auth scopes | 列出 app 可用 scopes |
auth list | 列出已登录用户 |
Profile 由 cmd/profile 管理,config 由 cmd/config 管理。凭证存储和外部凭证 provider 则在 internal/credential、internal/keychain 与 extension/credential 一带。
--as 的执行身份
Factory.ResolveAs 是身份选择的核心。它的优先级大致是:
- 用户显式传了
--as user或--as bot,优先使用; - strict mode 如果强制身份,则使用强制身份;
- credential hint 如果配置了 default-as,则使用它;
- 否则根据 hint 自动判断;
- 没有 hint 时默认偏向 bot。
命令执行前还会用 CheckIdentity 确认该 API 是否支持当前身份;strict mode 开启时,CheckStrictMode 会拒绝不符合策略的身份。
为什么 whoami 重要
v1.0.61 新增 whoami,这不是小工具,而是 Agent 自动化里的安全检查点。模型在执行写入前应该知道“我现在代表谁”:user 身份会触达个人数据,bot 身份会触达 app 被授权的数据。
源码阅读建议
| 想理解 | 读这里 |
|---|---|
| 登录流程 | cmd/auth/login*.go |
| scope 检查 | cmd/auth/check.go、cmd/auth/scopes.go |
| profile 管理 | cmd/profile/*.go |
| app 初始化 | cmd/config/init*.go |
| 身份推断 | internal/cmdutil/factory.go |
| 外部凭证扩展 | extension/credential/* |
下一篇:输出与错误契约。