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, надеюсь, вам понравится.