Почему Auth0 использует /login/callback вместо моего настроенного URL обратного вызова при перенаправлении на Azure AD?

Я внедряю Okta - Auth0 с Azure Active Directory (Azure AD) в качестве провайдера идентификации (IdP) в моем проекте Django. Вот схема моей установки:

  1. Django OAuth Configuration:

    • URL обратного вызова в Django: https://mydomain/api/auth/callback/.
    • Мое приложение Django перенаправляет пользователей на конечную точку Auth0 /authorize с правильным redirect_uri.
  2. Настройки приложения Auth0:

      • Разрешенные URL-адреса входа: https://mydomain/api/auth/login/.
    • Разрешенные URL-адреса обратного вызова: https://mydomain/api/auth/callback/.
    • Разрешенные URL-адреса выхода из системы: https://mydomain/api/auth/logout/.
  3. Настройки приложения 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/) во всем потоке входа.

Вопросы:

  1. Почему Auth0 внутренне использует https://dev-xxxxxx.ca.auth0.com/login/callback вместо настроенного URL обратного вызова (/api/auth/callback/) при перенаправлении на Azure AD?
  2. Как устранить зависимость от стандартного обратного вызова (/login/callback) и обеспечить, чтобы весь поток использовал мой пользовательский обратный вызов (/api/auth/callback/)?

Шаги, которые я пробовал:

  1. Убедитесь, что https://mydomain/api/auth/callback/ - единственный URL-адрес обратного вызова, настроенный в:

    • Auth0's Allowed Callback URLs.
    • Azure AD's Redirect URI.
  2. Убедитесь, что запрос к конечной точке /authorize содержит правильный параметр redirect_uri, указывающий на /api/auth/callback/.

  3. Временно добавил 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 для завершения аутентификации.

enter image description here

Я только настроил https://mydomain/api/auth/callback в разрешенных URL обратного вызова в Auth0.

enter image description here

Выход:

enter image description here

enter image description here

Вернуться на верх