关于Azure DevOps PAT认证及Rest API请求Wiki页面的身份验证问题
Azure DevOps Wiki API 身份验证常见问题解答
调用单篇Wiki页面API是否需要每次执行登录验证
不需要每次进行交互式登录验证。你所担心的登录尝试次数限制仅针对交互式账号密码登录场景,使用PAT调用API时不会触发该限制,仅受Azure DevOps通用的API调用速率限制约束。
PAT属于无状态身份凭证,你只需要在每次API请求的请求头中携带PAT即可,不需要每次发起请求前走登录流程。标准请求示例如下:
curl -u :<替换为你的PAT字符串> https://dev.azure.com/<组织名>/<项目名>/_apis/wiki/wikis/<Wiki实例ID>/pages/<页面路径或ID>?api-version=7.1-preview.1
注意:
curl命令中-u参数后的冒号不可省略,PAT直接填写在冒号之后即可,不需要额外输入用户名。
可选替代身份验证方案
如果不想长期维护PAT,或有批量调用、多用户访问的场景,可以选择以下两种方案:
- 托管身份验证:如果请求从Azure资源(如Azure虚拟机、Azure Function、Azure DevOps Pipeline代理)发起,可配置系统分配或用户分配的托管身份,给该托管身份授予对应Azure DevOps项目的Wiki读取权限,调用时直接获取Azure AD访问令牌即可,不需要手动维护凭证,也没有登录次数限制。
- OAuth 2.0 令牌:如果是面向多用户的应用场景,可注册Azure AD应用并授予Azure DevOps访问权限,用户首次授权后应用可获取有效期1小时的访问令牌以及有效期更长的刷新令牌,后续仅需要用刷新令牌换取新的访问令牌即可,不需要用户反复进行登录交互。
内容的提问来源于stack exchange,提问作者Naveen Reddy
相关产品推荐
相关产品推荐

