Как мне пройти аутентификацию в Azure DevOps REST API в скрипте python?
Я обнаружил, что есть 2 метода:
- Использование токена личного доступа (PAT)
- Использование OAuth 2.0
Я использую второй метод. Следуйте инструкциям в этой документации:
https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops
Я написал эту функцию для аутентификации в Azure DevOps с использованием OAuth 2.0:
def get_authenticated():
client_id = < my client ID as a string >
state = "user1"
scope = "vso.graph_manage%20vso.identity_manage%20vso.profile_write%20vso.project_manage%20vso.tokenadministration%20vso.tokens"
callback_URL = < Callback URL to my azure devops account >
# Azure DevOps Services authorization endpoint
Auth_URL = "https://app.vssps.visualstudio.com/oauth2/authorize?client_id=" + client_id + "&response_type=Assertion&state=" + state + "&scope=" + scope + "&redirect_uri=" + callback_URL
headers = {'Accept': 'application/json;api-version=1.0'}
print(Auth_URL)
response = requests.get(Auth_URL,headers = headers)
print(response)
print(response.status_code)
print(response.headers['content-type'])
response.raise_for_status()
Но при вызове этой функции вывод, который я получаю:
<Response [203]>
203
text/html; charset=utf-8
URL-адрес аутентификации правильный, потому что при попытке доступа к тому же URL-адресу в браузере он успешно перенаправляет на форму для ввода учетных данных пользователя Azure.
Ожидаемое поведение сценария: при запросе auth_url службы Azure DevOps должны запросить у пользователя авторизацию. Я думаю, что это должно быть сделано, запрашивая имя пользователя и пароль в терминале / через браузер.
Я совершенно новичок в написании скриптов на Python и API REST.
Может ли кто-нибудь помочь мне, указав на ошибки в моем коде или указав на некоторые примеры?