Как начать использовать принципал службы, уже созданный для обновления WorkItem в devops

#c# #service #azure-active-directory #devops

#c# #Обслуживание #azure-active-directory #devops

Вопрос:

Я с нетерпением жду возможности настроить участника службы в главном Devops моей компании для использования в качестве доступа к токенам для обновления или создания рабочих элементов с помощью Devops Api внутри приложения на C #…

Мы уже используем api, но с личными токенами, поскольку мы знаем, что это не лучшая практика, потому что в случае, если какой-либо человек уйдет с работы, срок действия его личных токенов доступа истечет…

Итак, для того, чтобы сделать это, я последовал этому руководству: https://cann0nf0dder.wordpress.com/2020/09/27/programmatically-connecting-to-azure-devops-with-a-service-principal-subscription/

Затем я добавил участника службы в группу Azure active Directory, в которой есть все наши пользователи ( ppl, которые имеют доступ к devops)

         public void UpdateAzureDevopsPullReviewed(List<int> user_story_numbers, string assigned_to)
    {
        #region Azure DevOps data connection

        Uri orgUrl = new Uri("https://dev.azure.com/nfpnso/");            
        String tokenWrite = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        //create a connection
        VssConnection connection = new VssConnection(orgUrl, new VssBasicCredential(string.Empty, tokenWrite));

        #endregion
        PullReviewedWorkItem(connection, user_story_numbers, assigned_to).Wait();
    }
 

Что я сделал в Azure, так это создал новую регистрацию приложения в Active Directory, там я получил приложение (клиент) ИДЕНТИФИКАТОР, идентификатор каталога (арендатора), идентификатор объекта, а затем я создал новый секрет, это означает идентификатор и значение… проверьте все эти строки, и соединение не выполняется, это говорит мне, что я не авторизован для доступа к devops.

Комментарии:

1. Что вы подразумеваете под «это не работает»? Пожалуйста, поделитесь более подробной информацией о сообщении об ошибке.

2. Я уже редактирую запрос: ответ из api заключается в том, что мне не разрешен доступ к devops с этим токеном… итак, неправильный токен или что-то отсутствует в конфигурации devops

Ответ №1:

Я не думаю, что вы можете использовать принципал службы для вызова API Azure DevOps.

Пожалуйста, смотрите раздел Выбор правильного механизма аутентификации.

Обратите внимание на примечание:

API Azure DevOps не поддерживает неинтерактивный доступ к службе через участников службы.

Единственным неинтерактивным типом на стороне клиента является механизм аутентификации профиля устройства.

Комментарии:

1. Это может быть объяснением того, почему я не нашел никакого руководства или справки в Интернете.// .././