用途:帮助在 Procore 集成中按参与者模型而非实现便利性选择认证方式。面向用户的应用通常使用 Authorization Code;无人值守连接器使用 Developer Managed Service Account(DMSA)的 Client Credentials,其清单权限限定访问范围。
主要能力:选择授权类型;定义最小权限(先列出所需工具操作,再构建应用清单,DMSA 仅编码必要的公司级与项目级权限,并要求管理员在安装时选择允许的项目);隔离生产与 Developer Sandbox 的凭证、令牌、登录主机和 API 主机;实现令牌生命周期(仅从机密后端交换凭证,缓存 Bearer 令牌至其报告过期时间,串行化刷新令牌替换并原子持久化新令牌);验证边界(执行一次允许的读取和一次预期拒绝测试,按端点或 Multiple Procore Regions 契约要求包含 Procore-Company-Id);撤销与轮换(记录操作员如何撤销授权、替换凭证、观察新凭证并移除旧凭证且不记录密钥)。
使用方式:Procore REST 请求使用 OAuth 2.0 Bearer 令牌。Authorization Code 代表已登录用户的权限;Client Credentials 代表 DMSA 配置的权限和允许的项目。客户端密钥和令牌保留在服务端,不得放入证据。使用 Read 和 Grep 检查应用清单、端点需求和现有配置;仅在批准的配置、代码、测试或脱敏回执上使用 Write 或 Edit;未经管理员批准不得更改 Procore 权限或安装。
适用场景:夜间项目同步器使用 DMSA Client Credentials 授权,仅对所需工具和选定项目具有读取权限;代表主管编辑的浏览器应用使用 Authorization Code 并继承该用户的访问权限。
限制与错误处理:令牌请求拒绝客户端时停止重试,验证环境、授权、凭证来源和应用安装;刷新令牌被拒绝时重新授权用户,成功交换后不得重用刷新令牌;允许的调用返回 403 或隐藏 404 时检查 DMSA 工具权限、项目成员资格、安装和公司路由;凭证可能暴露时立即撤销或轮换、使缓存失效并清理派生工件。输出包括授权选择决策与最小权限清单、环境特定的凭证与令牌生命周期配置、移除密钥后的正向、负向、轮换和撤销证据,以及包含应用类型、授权、环境、允许工具、测试结果和回滚负责人的简洁回执。