2014-03-26 164 views
15

我使用AWS上託管的Django和nginx。我正在嘗試使用他們的idp與大學進行SAML身份驗證集成。 SO上有很多過時的答案,但是與現行標準有什麼更相關?使用Django身份驗證的SAML

我看過的很多應用都是針對django 1.2及更低版本的。具體而言,我正在尋找可以讓我通過一些中間件或其他方法更輕鬆地管理SAML身份驗證的資源。

一些我所看到的東西是:

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

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

回答

10

我發現這個項目下面是:

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

+0

**更新**:djangosaml2在一年內未更新,缺少對Python3和Django 1.9的支持。 –

+0

我用django 1.9.4在生產中使用它。我能夠在我身邊做出改變來支持它。 Python 3我沒有測試過,所以我不確定。 – KVISH

4

SAML是兩個方面:

  • IDP - >身份提供方 - >即大學
  • SP - >服務提供商 - >即您的應用

聽起來像這樣一個是你想要的:https://github.com/WiserTogether/django-saml2-sp

您必須考慮到SAML作爲一個標準是複雜的,所以您可能會發現問題讓圖書館與大學的SAML實施交談。您還必須從身份提供商獲得證書公鑰,並要求他們使用特定的實體ID添加您的應用程序。當你開始管理其中的一些時,它變得複雜。

您可能還想查看諸如Auth0之類的東西來處理所有這些SAML連接。有一個很簡單的Python樣品https://gist.github.com/woloski/8149412

+0

這有效,但我發現了一個更新和維護良好的項目。 – KVISH

+0

嗨KVISH,我正在研究與Django項目一起實現SAML SSO的完全相同的問題。你最終使用了什麼解決方案? – Aman

+1

@Aman不知道你是否看到了它,但他們回答了他們自己的問題,並指出djangosaml2。 – Jordan