Azure DevOps API 在创建工作项时出现匿名访问错误
Azure DevOps API gives anonymous access error when creating a work item
我一直致力于从 WordPress 页面上的表单创建 Azure DevOps 工作项的项目。一切都适用于我在 WAMPserver 上的本地 WordPress 安装 运行,但是一旦它被移动到开发或生产服务器,我就会收到以下错误“TF400813:资源不可用于匿名访问。需要客户端身份验证。”我相当确定这将是需要在服务器上处理的事情,但我不确定是什么。我能够使用为此目的在我的 WAMPserver 安装上创建的服务帐户进行完全身份验证,但 Windows 服务器 IIS 安装不合作。 WordPress 页面通过 PHP 使用 CURL 处理身份验证和传递数据。这是代码。
$url = 'https://organiztion-url/UMCom_DefaultCollection/area_path/_apis/wit/workitems/$'.$_POST['IssueType'].'?api-version=5.0';
$headers = array('Content-Type: application/json-patch+json');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'account:password');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PATCH');//PATCH
curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl);
解决方案是同时使用 PAT 和标准身份验证,因为我们的本地环境无法正确使用 PAT,而我们的 Dev、Stage 和 Prod 环境需要 PAT。
我一直致力于从 WordPress 页面上的表单创建 Azure DevOps 工作项的项目。一切都适用于我在 WAMPserver 上的本地 WordPress 安装 运行,但是一旦它被移动到开发或生产服务器,我就会收到以下错误“TF400813:资源不可用于匿名访问。需要客户端身份验证。”我相当确定这将是需要在服务器上处理的事情,但我不确定是什么。我能够使用为此目的在我的 WAMPserver 安装上创建的服务帐户进行完全身份验证,但 Windows 服务器 IIS 安装不合作。 WordPress 页面通过 PHP 使用 CURL 处理身份验证和传递数据。这是代码。
$url = 'https://organiztion-url/UMCom_DefaultCollection/area_path/_apis/wit/workitems/$'.$_POST['IssueType'].'?api-version=5.0';
$headers = array('Content-Type: application/json-patch+json');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'account:password');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PATCH');//PATCH
curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl);
解决方案是同时使用 PAT 和标准身份验证,因为我们的本地环境无法正确使用 PAT,而我们的 Dev、Stage 和 Prod 环境需要 PAT。