Python3-saml и Azure AD - упущен момент

Добрый день, эксперты,

У меня есть веб-приложение Django (оно не выходит в интернет), и до сих пор я использовал django.contrib.auth.backends.ModelBackend для аутентификации пользователей. Однако я хочу интегрировать это веб-приложение в существующее решение SSO (например, Azure AD), поэтому я подумал, что python3-saml будет хорошей библиотекой для использования (более конкретно я использую python3-saml-django, но это просто обертка вокруг python3-saml). Возможно, я упускаю какой-то фундаментальный момент, поскольку я не очень понимаю, как это должно работать.

Когда я использовал ModelBackend, то у меня была форма входа, где пользователь мог ввести свое имя пользователя+пароль, которые проверялись в базе данных Django и аутентификация завершалась. Должно ли то же самое работать и с SSO? Т.е. появляется форма входа, пользователь вводит свои учетные данные, но они проверяются в Azure AD вместо Django auth tables? Или же должна отображаться пользовательская форма входа для конкретного решения аутентификации (в данном случае Azure AD -> форма входа Microsoft)...?

В моем приложении Django настроен параметр LOGIN_URL, так что если ни один пользователь не вошел в систему, то автоматически появляется моя форма входа.
Также я установил параметр AUTHENTICATION_BACKENDS и он указывает только на django_saml.backends.SamlUserBAckend.

Я настроил AZure AD (зарегистрировал приложение и добавил пользователя, я проверил это в консоли Azure AD), надеюсь, правильно. Я также заполнил python3-saml's settings.json с URL входа/выхода и т.д.

Когда я пытаюсь войти в систему с помощью пользователя Azure AD, я получаю ошибку авторизации (пользователь и пароль были введены).

Мне просто интересно, может ли кто-нибудь пролить свет на то, как это должно работать? Могу ли я отладить запросы/ответы SAML?

  • auth основан на токенах в azure ad и перенаправляет пользователя на microsoft login. Вы получите токен auth, который затем сможете использовать для авторизации и предоставления защищенных страниц.

    .
  • Сначала зарегистрируйте ваше приложение в azure portal в azure active directory, а также создайте поток пользователей.

  • Затем скачайте MSAL для python (с помощью pip), который используется для аутентификации с помощью azure ad для python.

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

Ссылки:

quickstart для auth в python

userflow

Библиотека MSAL

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