Почему Auth0 использует /login/callback вместо моего настроенного URL обратного вызова при перенаправлении на Azure AD?
Я внедряю Okta - Auth0 с Azure Active Directory (Azure AD) в качестве провайдера идентификации (IdP) в моем проекте Django. Вот схема моей установки:
Django OAuth Configuration:
- URL обратного вызова в Django: https://mydomain/api/auth/callback/.
- Мое приложение Django перенаправляет пользователей на конечную точку Auth0 /authorize с правильным redirect_uri.
Настройки приложения Auth0:
-
- Разрешенные URL-адреса входа: https://mydomain/api/auth/login/.
- Разрешенные URL-адреса обратного вызова: https://mydomain/api/auth/callback/.
- Разрешенные URL-адреса выхода из системы: https://mydomain/api/auth/logout/.
-
Настройки приложения Azure AD:
- Перенаправление URI: https://mydomain/api/auth/callback/.
Проблема:
Когда я удаляю стандартный обратный вызов (https://dev-xxxxx.ca.auth0.com/login/callback) из Azure AD, процесс входа в систему завершается со следующей ошибкой Azure AD:
AADSTS50011: The redirect URI 'https://xxxxxxca.auth0.com/login/callback' specified in the request does not match the redirect URIs configured for the application.
Однако я не включил стандартный /login/callback из okta в свою конфигурацию Auth0. Я использую только /api/auth/callback/. Кажется, что поток зависит от этого URL обратного вызова по умолчанию, хотя я ожидаю, что Auth0 будет использовать мой настроенный обратный вызов (/api/auth/callback/) во всем потоке входа.
Вопросы:
- Почему Auth0 внутренне использует https://dev-xxxxxx.ca.auth0.com/login/callback вместо настроенного URL обратного вызова (/api/auth/callback/) при перенаправлении на Azure AD?
- Как устранить зависимость от стандартного обратного вызова (/login/callback) и обеспечить, чтобы весь поток использовал мой пользовательский обратный вызов (/api/auth/callback/)?
Шаги, которые я пробовал:
Убедитесь, что https://mydomain/api/auth/callback/ - единственный URL-адрес обратного вызова, настроенный в:
- Auth0's Allowed Callback URLs.
- Azure AD's Redirect URI.
Убедитесь, что запрос к конечной точке /authorize содержит правильный параметр redirect_uri, указывающий на /api/auth/callback/.
Временно добавил https://dev-xxxxxxx.ca.auth0.com/login/callback обратно в Azure AD, чтобы поток работал, но я хочу убрать эту зависимость.
AADSTS50011: URI перенаправления 'https:/ /xxxxxxca.auth0.com/login/callback', указанный в запросе, не соответствует URI перенаправления, настроенным для приложения.
Я получил ту же ошибку, когда настроил https://mydomain/api/auth/callback
и в Azure App Registration, и в Auth0 Callback URl.
Auth0 использует /login/callback
в качестве URI перенаправления в запросе к Azure AD, даже если вы настроили /api/auth/callback
, из-за того, как он управляет своим внутренним потоком аутентификации.
Чтобы избежать ошибки, я добавил два URI перенаправления в Azure App Registration.
https://mydomain/api/auth/callback
https://mydomain/login/callback
Auth0 получает ответ по адресу /login/callback
и затем перенаправляет на ваш URL-адрес обратного вызова /api/auth/callback
для завершения аутентификации.
Я только настроил https://mydomain/api/auth/callback
в разрешенных URL обратного вызова в Auth0.
Выход: