用途
b2c-am 技能用于管理 Salesforce Commerce Cloud B2C 的 Account Manager(AM)资源,涵盖 API 客户端、用户、角色和组织。它通过 b2c am 系列命令提供对这些资源的查询与变更能力。
主要能力
API 客户端
- 列出客户端,支持分页(--size、--page)和 JSON 输出(--json)。
- 按 UUID 获取客户端,可用 --expand organizations,roles 展开关联的组织与角色。
- 创建客户端,默认创建为非活跃状态,需要用户认证;可指定名称、组织、密码、角色、角色租户过滤、重定向 URL,并用 --active 设为活跃。
- 部分更新客户端,仅修改指定字段,例如 --name 或 --active。
- 修改客户端密码,需提供当前密码与新密码。
- 删除客户端,要求客户端已禁用 7 天以上,属于破坏性操作并会进行安全模式检查。
用户
- 列出用户,支持 --extended 显示角色与组织等扩展列,支持分页与 JSON 输出。
- 按邮箱获取用户,可用 --expand-all 展开角色与组织。
- 创建用户,--org 可接受组织 ID 或组织名称;用户创建后处于 INITIAL 状态且无角色。
- 更新用户,例如修改名和姓。
- 删除用户,默认软删除;使用 --purge 进行硬删除,且用户须已处于 DELETED 状态。
- 重置用户密码,将密码重置为 INITIAL 状态并清除过期时间,属于破坏性操作并会进行安全模式检查。
角色
- 列出角色,可按目标类型过滤(--target-type User 或 ApiClient)。
- 获取角色,例如 bm-admin 或 SLAS_ORGANIZATION_ADMIN。
- 为用户授予角色,可附带租户范围(--scope)。
- 撤销用户角色,可撤销整个角色或仅撤销特定租户范围。
组织
- 列出组织,支持 --all 获取全部组织(最大页大小)以及 --extended 扩展列。
- 获取组织,接受组织 ID 或名称。
使用方式
认证
- 零配置(浏览器登录):默认方式,直接运行命令,CLI 会打开浏览器进行登录。
- 客户端凭据:适用于 CI/CD 和自动化。CLI 会自动从 SFCC_* 环境变量(包括项目 .env)、所选项目本地或共享的 dw.json,或配置插件中发现 clientId/clientSecret,通常无需传递 --client-id/--client-secret 标志。
- 强制浏览器登录(--user-auth):当已配置客户端凭据但需要基于浏览器的登录时使用,组织和客户端管理必须使用此方式。
- 可运行 b2c setup inspect 确认 CLI 看到的凭据及其来源。
角色要求
- AM 用户与角色:客户端凭据需要 API 客户端上的 User Administrator 角色;用户认证需要用户账户上的 Account Administrator 或 User Administrator 角色。
- AM 组织:客户端凭据不支持,需使用 --user-auth;用户认证需要 Account Administrator 角色。
- AM API 客户端:客户端凭据不支持,需使用 --user-auth;用户认证需要 Account Administrator 或 API Administrator 角色。
常用模式
- 所有 am 命令支持 --json 以输出程序化结果。
- 列表命令支持 --columns、--extended、--size 和 --page 进行分页与列控制。
- 破坏性操作(用户删除、用户重置、客户端删除)会检查安全模式;仅在明确要求时删除或清除用户。
常见工作流
- 用户入职:创建用户,然后授予限定到特定租户的 Business Manager Admin 角色。
- 用户离职:撤销角色,软删除用户,必要时在用户处于 DELETED 状态后进行永久删除。
- 使用 JSON 批量操作:导出所有用户为 JSON,或通过 jq 过滤。
适用场景
适用于需要以命令行方式管理 Salesforce Commerce Cloud B2C Account Manager 资源的开发者与运维人员,例如在 CI/CD 流程中自动化 API 客户端管理、批量处理用户与角色、查询组织信息等。
限制
- 组织与 API 客户端管理仅在使用用户认证时可用,客户端凭据不支持。
- 删除客户端要求客户端已禁用 7 天以上。
- 硬删除用户要求用户已处于 DELETED 状态。
- Business Manager 侧资源(实例角色、实例用户、访问密钥、whoami)不在本技能范围内,属于 b2c-cli:b2c-bm-users-roles 技能。
- 若未全局安装 b2c,可使用 npx @salesforce/b2c-cli 代替。