Я занимаюсь разработкой приложения 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: Неверный запрос: токены запроса не соответствуют контексту пользователя. Не копируйте значения контекста пользователя (куки; поля формы; заголовки) между различными запросами или сеансами пользователя; всегда поддерживайте ВСЕ предоставленные значения в рамках всего одного пользовательского потока. Причины отказа: [Значения токена не совпадают;]
Почему это работает для меня и ни для кого больше?