SAML с аутентификацией Django

Я использую Django и nginx, размещенные на AWS. Я пытаюсь интегрироваться с университетом для аутентификации SAML, используя их idp. Есть много устаревших ответов на SO, но есть ли что-то более актуальное с текущими стандартами?

Многие из приложений, которые я видел, предназначены для django 1.2 и ниже. В частности, я ищу ресурсы, которые позволят мне более легко управлять аутентификацией SAML через некоторое промежуточное программное обеспечение или что-то еще.

Некоторые из вещей, которые я видел, следующие:

https://github.com/unomena/django-saml2-idp

https://github.com/WiserTogether/django-saml2-sp

Ответы

Ответ 1

Проект, который я нашел, ниже:

https://bitbucket.org/lgs/djangosaml2/overview

В проекте используется psaml2 для поддержки SAML. Pysaml2 можно найти здесь:

https://github.com/rohe/pysaml2

Имейте в виду, что djangosaml2 может не использовать последнюю версию pysaml2. Я тестировал его и работаю нормально.

UPDATE

djangosaml2 работает с последней версией pysaml2, но обязательно добавьте эту строку, чтобы заставить ее работать:

SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'

Это должно быть в вашем settings.py.

Ответ 2

SAML - это две стороны:

  • IDP → сторона поставщика удостоверений → то есть университет
  • SP → Поставщик услуг → то есть ваше приложение

Похоже, это то, что вы хотите: https://github.com/WiserTogether/django-saml2-sp.

Вы должны учитывать, что SAML как стандарт является сложным, поэтому вы можете найти проблемы, связанные с тем, что библиотека говорит о внедрении SAML в университете. Вам также придется получить от них открытый ключ сертификата поставщика удостоверений и попросить их добавить ваше приложение на свою сторону с определенным идентификатором объекта. И когда вы начинаете управлять несколькими из них, он становится сложным.

Вы также можете проверить что-то вроде Auth0 для обработки всех этих подключений SAML. Существует очень простой пример python https://gist.github.com/woloski/8149412

Ответ 3

Привет, я только что создал плагин аутентификации django saml2.

https://github.com/fangli/django-saml2-auth

Совсем легко интегрироваться с вашим поставщиком SAML2, надеюсь, вам понравится.