Почему Azure Active Directory OAuth работает для меня и больше ни для кого? - PullRequest
1 голос
/ 22 мая 2019

Я занимаюсь разработкой приложения Python / Flask и хочу использовать OAuth для входа в систему. Мой работодатель использует Azure Active Directory, поэтому я пытаюсь интегрироваться с ним в качестве поставщика OAuth.

Я не являюсь администратором клиента Azure.

Я создал регистрацию приложения и настроил свой код в соответствии с документацией Microsoft, но я единственный человек, который может успешно войти в приложение.

Я создаю свой URL авторизации следующим образом (у меня в коде правильное имя клиента, идентификатор клиента и URI перенаправления):

import urllib.parse
import uuid

authorization_endpoint = 'https://login.microsoft.com/my-tenant.onmicrosoft.com/oauth2/authorize'
query = {
    'client_id': 'my-client-id',
    'nonce': uuid.uuid4(),
    'redirect_uri': 'https://my-app.example.com/authorize',
    'response_mode': 'form_post',
    'response_type': 'id_token',
    'scope': 'openid',
    'state': uuid.uuid4()
}
authorization_url = f'{authorization_endpoint}?{urllib.parse.urlencode(query)}'

Когда я лично тестирую вход в приложение, все работает нормально. Но когда кто-то еще пытается, он посещает URL авторизации, входит в систему со своими учетными данными, а затем получает страницу с этой ошибкой:

AADSTS165000: Неверный запрос: токены запроса не соответствуют контексту пользователя. Не копируйте значения контекста пользователя (куки; поля формы; заголовки) между различными запросами или сеансами пользователя; всегда поддерживайте ВСЕ предоставленные значения в рамках всего одного пользовательского потока. Причины отказа: [Значения токена не совпадают;]

Почему это работает для меня и ни для кого больше?

1 Ответ

0 голосов
/ 23 мая 2019

Неправильная конечная точка авторизации. Это должно быть https://login.microsoftonline.com/... вместо https://login.microsoft.com/....

...