#php #wordpress #devops #wampserver #azure-devops-rest-api
#php #wordpress #devops #wampserver #azure-devops-rest-api
Вопрос:
Я работал над проектом по созданию рабочих элементов Azure DevOps из формы на странице WordPress. Все работает на моей локальной установке WordPress, запущенной на сервере WampServer, но как только она перемещается на серверы разработки или производства, я получаю следующую ошибку «TF400813: ресурс недоступен для анонимного доступа. Требуется аутентификация клиента «. Я совершенно уверен, что это будет то, что нужно обработать на сервере, но я не уверен, что именно. Я смог выполнить полную аутентификацию с помощью учетной записи службы, которая была создана для этой цели при моей установке WampServer, но установка Windows Server IIS не взаимодействует. Страница WordPress обрабатывает аутентификацию и передачу данных с помощью CURL через PHP. Вот код.
$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);
Комментарии:
1. Вы можете попробовать создать новый PAT со всей областью действия в качестве аутентификации.
2. будет ли это работать, даже если мы используем аутентификацию Active Directory?
3. В зависимости от типа используемого вами приложения ознакомьтесь с руководством по выбору правильного механизма аутентификации .
Ответ №1:
Решением было использовать как PAT, так и стандартную аутентификацию, поскольку наши локальные среды не могли правильно использовать PAT, а наши среды разработки, Stage и Prod требуют PAT.