Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to build a secure Django single signon between different sites?

I want to integrate my Django web application with other web based products (most likely 3rd party non-django applications.) How can I let other sites sign in their users to my site with a single sign-on? How would I store the usernames and passwords for the 3rd party sites users securely on my site to sign on my users to the 3rd part sites?

like image 226
MikeN Avatar asked Dec 20 '09 15:12

MikeN


1 Answers

Some more ideas...

OAuth

OAuth for non-enterprise app. Django projects: django-oauth and django-oauth-consumer. Article: oauth in Django

SAML

Security Assertion Markup Language (SAML) is more for enterprise apps because it gives the "enterprise" more control over their own users and which of those users can access the app. This protocol is (was?) mostly driven by Google and friends (e.g. salesforce.com).

Articles: SAML Single Sign-On (SSO) Service for Google Apps and Demystifying SAML.

Python projects: PySAML and blog post

Django integration: SAML with Django (not a complete solution... just a starting point. Uses PySAML)

Information Cards

IIRC Information Cards are the Microsoft universe equivalent to SAML. Python projects: Python Information Card Processing and Information Cards for Python. Nothing for Django as far as I know.

--Edit--

There is also CAS (User Manual) which can be integrated with django-cas.

And two more SAML projects I had forgotten about: gheimdall2 and python-saml2

like image 162
Van Gale Avatar answered Sep 28 '22 05:09

Van Gale