Workday REST API认证及Person API调用问题求助
解决Workday REST API认证及Person接口调用问题的思路
一、client_credentials模式获取token失败(返回Invalid request)的排查方向
- 确认OAuth端点URL正确性:Workday的client_credentials授权端点固定格式为
https://{BASE_URL}/ccx/oauth2/{TENANT}/token,你之前的{OAUTH_URL}可能未包含租户路径,导致请求地址错误。 - 校验Basic Auth编码:确保是
CLIENT_ID:CLIENT_SECRET直接拼接后进行Base64编码,注意不要添加额外空格,若密钥包含特殊字符(如/、+),编码后无需额外转义(CURL会自动处理)。 - 检查API Client配置:在Workday后台创建「API Client for Integrations」时,需确认已勾选允许client_credentials作为授权类型,同时验证Client ID和密钥是否完全复制(无首尾空格)。
- 租户权限分配:确认该API Client已被分配访问OAuth服务的权限,需在Workday的权限组中添加对应权限条目。
二、refresh_token模式拿到token但调用/people接口报错的排查方向
- 验证token权限范围:获取refresh_token时需明确请求Person API对应的scope,比如添加
--data-urlencode 'scope=wd:person:read'参数(具体scope需参考Workday API权限文档),无正确scope的token会被接口拒绝。 - 确认API端点格式:Person API的/people端点正确格式为
https://{BASE_URL}/ccx/api/v1/{TENANT}/people,需检查BASE_URL、租户名、API版本号(v1/v2)是否匹配你的Workday环境。 - 检查请求头正确性:调用接口时必须携带
Authorization: Bearer {access_token}头,注意Bearer首字母大写,且token与Bearer之间有一个空格,不要出现拼写错误。 - 排查权限配置:确保生成refresh_token的用户(或API Client)拥有访问Person数据的权限,比如Workday中需分配「View Person Data」「Integration API Access」等权限组。
- 检查请求参数:部分Workday API接口要求必填参数,比如
fields指定返回字段,或filter设置过滤条件,缺少时会返回错误。例如:curl --location 'https://{BASE_URL}/ccx/api/v1/{TENANT}/people?fields=id,displayName' \ --header 'Authorization: Bearer {access_token}' - 验证token有效性:用JWT解析工具查看token的
exp字段确认是否过期,或尝试重新获取新的refresh_token生成access_token后再调用接口。
内容的提问来源于stack exchange,提问作者Hekmil
相关产品推荐
相关产品推荐

