服务客户端
服务客户端是项目拥有的服务器、脚本或 CI 作业,使用自己的私钥或密钥登录,而非经由某人批准。要创建或更改客户端,智能体需要带有 identity 作用域的身份管理权限、自身在目标项目中获授的包含 project 能力的管理权限,以及一名已验证且管理该项目所属组织的负责人。服务客户端永远不能管理客户端。要以该客户端身份运行命令,请运行一次 screenrig --config PATH login --client-id scl_ID --client-key-file KEY.pem(或 --client-secret-file FILE)并使用该配置;screenrig logout 移除已保存的客户端。详见 服务客户端。
service-client list#
列出该项目的服务客户端,包括有效和已撤销的,及其密钥、秘密 ID 和使用情况。
service-client list无参数。
screenrig service-client list永不返回秘密。
service-client show#
显示一个服务客户端。
service-client show ID| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
ID | string | 是 | 无 | 客户端 ID,scl_…。 |
screenrig service-client show scl_ID列出每个密钥的 kid 和每个秘密的 css_ ID 以便轮换。
service-client create#
创建此项目拥有的服务客户端。
service-client create --name NAME [--capability NAME]... [--access read|propose|manage]
[--uploader --folder-id IDS [--playlist-id IDS]] [--key-file PATH] [--secret-file PATH]| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
--name NAME | string | 是 | 无 | 1 到 80 个字符。 |
--capability NAME | string | 否 | 全部六个 | 可重复:screens、content、playlists、advertising、reports、project,均在你的范围内。 |
--access LEVEL | string | 否 | 读取 | read,propose 或 manage;上传者使用 propose。propose 将播放列表和屏幕更改发送给某人的 审核。 |
--uploader | boolean | 否 | 关闭 | 将客户端限制在 --folder-id 和 --playlist-id 指定的媒体文件夹和播放列表。 |
--folder-id IDS | string | 配合 --uploader | 无 | 客户端上传到的、以逗号分隔的 mfd_ 媒体文件夹;至少一个。 |
--playlist-id IDS | string | 否 | 无 | 与 --uploader 一起使用:客户端更改其页面的、以逗号分隔的 pl_ 播放列表。 |
--key-file PATH | 路径 | 以下之一 | 无 | 一个 JWK 或 PEM:Ed25519、EC P-256 或至少 2048 位的 RSA。仅发送公钥部分。 |
--secret-file PATH | 路径 | 以下之一 | 无 | 生成密钥并写入此新的 0600 文件。仅显示一次。 |
screenrig service-client create --name "Nightly report" --access read --capability reports --key-file screenrig-client.pem
screenrig service-client create --name "Agency agent" --uploader --folder-id mfd_01EXAMPLEFOLDER000000000 --playlist-id pl_01EXAMPLEPLAYLIST000000 --secret-file agency.secret需要上述身份、项目和组织管理员权限。上传者只能在其文件夹和播放列表中工作:它向其中上传媒体,并添加、替换和移除这些播放列表的页面,其他任何操作均为 outside_upload_scope。每个组织跨其所有项目最多有 50 个有效客户端。没有自身 kid 的密钥通过其 RFC 7638 指纹识别。
service-client add-key#
注册第二个公钥以实现无停机轮换。
service-client add-key ID --key-file PATH| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
ID | string | 是 | 无 | 客户端 ID。 |
--key-file PATH | 路径 | 是 | 无 | 新公钥,JWK或PEM格式。 |
screenrig service-client add-key scl_ID --key-file new.pem客户端最多持有两个密钥。
service-client add-secret#
生成第二个密钥以实现无停机轮换。
service-client add-secret ID --secret-file PATH| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
ID | string | 是 | 无 | 客户端 ID。 |
--secret-file PATH | 路径 | 是 | 无 | 一个新的 0600 文件接收密钥。 |
screenrig service-client add-secret scl_ID --secret-file new-secret客户端最多持有两个密钥。当前密钥在移除前持续有效。
service-client remove-key#
移除密钥;使用该密钥签发的令牌将在几秒内失效。
service-client remove-key ID --kid KID| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
ID | string | 是 | 无 | 客户端 ID。 |
--kid KID | string | 是 | 无 | 来自 service-client show 的键ID。 |
screenrig service-client remove-key scl_ID --kid KID客户端至少保留一个密钥或密钥。
service-client remove-secret#
移除密钥秘密;使用该秘密签发的令牌将在几秒内失效。
service-client remove-secret ID --secret-id css_ID| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
ID | string | 是 | 无 | 客户端 ID。 |
--secret-id ID | string | 是 | 无 | 来自 service-client show 的 css_ 密钥 ID。 |
screenrig service-client remove-secret scl_ID --secret-id css_ID客户端至少保留一个密钥或密钥。
service-client revoke#
永久撤销服务客户端。
service-client revoke ID --yes| 参数 | 类型 | 必填 | 默认 | 备注 |
|---|---|---|---|---|
ID | string | 是 | 无 | 客户端 ID。 |
--yes | boolean | 是 | 关闭 | 确认永久撤销。 |
screenrig service-client revoke scl_ID --yes删除其密钥和秘密;其令牌在几秒内停止工作。记录保留以供审计。