Ошибка AADSTS90102 при использовании django-microsoft-auth для SSO с Azure AD
Я выполнил шаги из этого руководства, чтобы включить SSO с Azure Active Directory для администраторской части (для запуска) моего приложения Django: https://django-microsoft-auth.readthedocs.io/en/latest/usage.html
Переход к /admin приводит к этой странице, что хорошо:
При нажатии на Microsoft появляется новое окно:
Важной ошибкой является: AADSTS90102: значение 'redirect_uri' должно быть действительным абсолютным URI.
В этом окне я использовал консоль браузера и обнаружил, что GET-запрос выполняется следующим образом:
https://login.microsoftonline.com/50ce...90ac7/oauth2/v2.0/authorize?response_type=code&client_id=f4...27&redirect_uri=https,https://example.org/microsoft/auth-callback/&s...
Обратите внимание на redirect_uri=https,https://...
. Похоже, что это ведущее "https" является лишним и вызывает проблему. Есть идеи, откуда это может взяться?
В моем приложении Azure URI перенаправления установлен на https://example.org/microsoft/auth-callback/
:
Я использую Python 3.9.6, Django 3.2, django-microsoft-auth 2.4.0, NGINX 1.18.0, uvicorn 0.14.0
Я искал помощь по этому вопросу и не нашел ничего подходящего для моей ситуации. Заранее спасибо!
Основано на SO Thread Reference.
Используйте http в качестве URI перенаправления вместо https, чтобы решить проблему в большинстве случаев.
использовать
http://localhost:8080/microsoft/auth-callback/
Вместо
https://localhost:8080/microsoft/auth-callback/
Если есть возможность,
Используйте localhost:8080 в таблице django_site
Reference SO Thread: django-microsoft-auth : The provided value for the input parameter 'redirect_uri' is not valid
Как вы думаете, первый https
является лишним, его нужно просто удалить.
https://login.microsoftonline.com/50ce...90ac7/oauth2/v2.0/authorize?response_type=code&client_id=f4...27&redirect_uri=https://example.org/microsoft/auth-callback/&s...
Кстати, я думаю, что нет никаких проблем с redirect_uri
, которые вы установили в портале Azure.