Как получить id_token из перенаправленного URL в Потоке неявного предоставления с использованием Python? - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь получить доступ к API, который использует неявную аутентификацию потока грантов. Я построил URL с необходимыми деталями. Когда я вставляю URL в браузер и нажимаю Enter, он запрашивает учетные данные для входа, после ввода я получаю новый URL с id_token, как и ожидалось. Я пытаюсь автоматизировать этот шаг с помощью Python, используя библиотеку «запросов», где я терплю неудачу. Все, что мне нужно, это новый URL с id_token в нем.

PS - я новичок в HTTP / HTML / потоках аутентификации.

При вставке следующего URL в браузере,

https://sso-dev.dummy.com/adfs/oauth2/authorize?client_id=xxxxx-xxxxx-xx-xxx-xx&response_type=id_token&redirect_uri=https%3A%2F%2Ftest_api.dummy.com%2Fauth%2Fcallback&scope=openid&nonce=xYz52761!V78

Я получаю следующий URL, что я и ожидаю.

https://test_api.dummy.com/auth/callback#id_token=xxxxxxxxxxxxxxx

Я попробовал следующий код Python:

import requests

URL = r"https://sso-dev.dummy.com/adfs/oauth2/authorize?client_id=xxxxx-xxxxx-xx-xxx-xx&response_type=id_token&redirect_uri=https%3A%2F%2Ftest_api.dummy.com%2Fauth%2Fcallback&scope=openid&nonce=xYz52761!V78"

# Login credentials
payload = {
    'UserName' : 'myUserName',
    'Password' : 'myPass'
}

with requests.Session() as session:
    post = session.post(URL, data=payload, allow_redirects=True)
    r = session.get(URL, allow_redirects=True)
    response = r
    print(response.status_code) # 200
    print(response.url)         # getting same URL as the input, expecting the redirected URL with the id_token
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...