SAML with Django authentication

Hi I just created a django saml2 authentication plugin.

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

It's quite easy to integrate with your SAML2 provider, hope you enjoy.


The project I found is below:

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

The project uses psaml2 for SAML support. Pysaml2 can be found here:

https://github.com/rohe/pysaml2

Bear in mind that djangosaml2 may not use the latest version of pysaml2. I tested it and its working fine.

UPDATE

djangosaml2 works with latest version of pysaml2, but make sure to add this line to make it work:

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

This should be in your settings.py.


SAML is two sides:

  • IDP -> Identity Provider side -> i.e. the university
  • SP -> Service Provider -> i.e. your application

Sounds like this one is what you want: https://github.com/WiserTogether/django-saml2-sp.

You have to take into account that SAML as a standard is complex, so you might find issues getting the library talk to the SAML implementation in the university. You will also have to get from them the identity provider cert public key and ask them to add your application on their side with a specific entity id. And when you start managing a couple of them it gets complex.

You might also want to check out something like Auth0 to handle all those SAML connections. There is a very simple python sample https://gist.github.com/woloski/8149412