2011-10-21 8 views
15

मैं Django परिनियोजन में शिबबोलेथ का उपयोग करने के विकल्पों की जांच कर रहा हूं। जो मैंने पाया है, उससे कुछ हद तक चीजें दिखती हैं। क्या कोई निम्नलिखित पर टिप्पणी कर सकता है?Django और Shibboleth

  • है django_shibboleth मॉड्यूल (http://code.arcs.org.au/gitorious/django/django-shibboleth/trees/1.1 देखें) का उपयोग कर किसी? यदि हां, तो इस मॉड्यूल के साथ आपके पास क्या अनुभव हैं? Django (जैसे, Django-SAML2-एसपी) और अजगर सामान्य रूप में (जैसे, pysaml2) के लिए

  • SAML 2 कार्यान्वयन कुछ हद तक प्रयोगात्मक होने के लिए दिखाई देते हैं और छोटे दस्तावेज शामिल। क्या किसी को Django/पायथन के लिए स्थिर SAML 2 समाधानों के बारे में पता है?

किसी भी मदद के लिए अग्रिम धन्यवाद!

+0

आपको किन सुविधाओं की आवश्यकता है? क्या आप कभी भी एक आईडीडी के खिलाफ प्रमाणित करेंगे, या आपको डीएस, डब्ल्यूएएफएफ, फेडरेशन, आर्टिफैक्ट रिज़ॉल्यूशन, लॉगआउट आदि की आवश्यकता है? – JimB

+0

उत्कृष्ट प्रश्न! इस विशेष परियोजना को डीएस, डब्ल्यूएएफएफ, आदि की आवश्यकता होगी – user1007116

+0

विशेष रूप से यदि आप मूल SAML सुविधाओं से अधिक उपयोग करने जा रहे हैं, तो मैं अपने उत्तर के पहले भाग के साथ रहूंगा, और @hrnt से सहमत हूं। शिबबोलेथ देशी एसपी शामिल करना सबसे विश्वसनीय मार्ग होगा। – JimB

उत्तर

3

मैं Django + Shibboleth के साथ अनुभव नहीं है, वहीं मैं के साथ "सादे" Shibboleth कुछ है।

अपने अपाचे mod_shibboleth ठीक से विन्यस्त है, तो एक वेब एप्लिकेशन के साथ यह एकीकृत अपेक्षाकृत मामूली है। Django_shibboleth मॉड्यूल देखें और आप देख सकते हैं कि इसमें इतना कोड नहीं है।

विशेष रूप से, आप पहले से ही चल रहा है mod_shibboleth है, एक तीसरी पार्टी SAML 2 पुस्तकालय का उपयोग नहीं करते। वे बहुत अनावश्यक जटिलता लाते हैं।

9

मैं शिबबोलेथ मूल एसपी (अपाचे mod_shib) का उपयोग करने की सलाह दूंगा। यह अच्छी तरह से परीक्षण किया गया है, एक बड़ा उपयोगकर्ता आधार है, और बहुत स्थिर है।

मैं django_shibboleth मॉड्यूल का शीघ्रता से अवलोकन ले लिया, और ऐसा लगता है कि यह mod_shib पर निर्भर करता है, और यह के दम पर किसी भी SAML नहीं करता है। इस संबंध में, वह मॉड्यूल बहुत सरल है, और शायद अच्छी तरह से काम करता है।

मैं किसी भी पूरा (या ज्यादातर पूर्ण) अजगर SAML2 कार्यान्वयन, और कोई भी है कि एक सक्रिय परियोजना हैं नहीं देखा है। एक्सएमएल सुरक्षा और क्रिप्टो आवश्यकताएं पाइथन में दर्द होती हैं, और यह संभवतः पुस्तकालयों की कमी में योगदान देती है।

[संपादित - मुझे लगता है कि का हिस्सा वंचित करता हूँ] pysaml2 पुस्तकालय कुछ विकास गतिविधि है, और काफी एक सरसरी नज़र से पूरा लग रहा है। यह हस्ताक्षर और एन्क्रिप्शन के लिए सीधे xmlsec1 बाइनरी का उपयोग करता है, और इसलिए किसी भी पुरानी बाइंडिंग पर भरोसा नहीं करता है। फिलहाल इस समय पाइथन में SAML2 का उपयोग करने के लिए यह आपकी सबसे अच्छी शर्त है।

1

एक Django-समूह का चिह्न मॉड्यूल उपलब्ध है जो एक IdP से गुण प्राप्त है और उन्हें Django प्रमाणन प्रणाली में उपयोगकर्ताओं के लिए मैप करने के लिए इस्तेमाल किया जा सकता है। अधिकांश काम शिबबोलेथ द्वारा ही किया जाता है, मैपिंग के लिए केवल थोड़ी मात्रा में कोड आवश्यक होता है।

पैकिंग यहां से उपलब्ध है।

linuxsoft.cern.ch/internal/repos/ai6-stable/x86_64/os/Packages/django-shibsso-0.1-1.noarch.rpm

या यहां से स्रोत।

linuxsoft.cern.ch/internal/repos/ai6-stable/source/SRPMS/django-shibsso-0.1-1.src.rpm

अपने स्थानीय Shibboleth सेवा प्रदाता की स्थापना के लिए Shibboleth निर्देशों का पालन करें (एसपी) एक आईडीपी के साथ उपयोग के लिए।

http.conf फ़ाइल या conf में अपनी स्वयं की ऐप कॉन्फ़िगरेशन में।डी, निम्नलिखित प्रविष्टि बनाएँ।

<Location /shibboleth> 
    AuthType shibboleth 
    ShibRequireSession On 
    ShibUseHeaders On 
    require valid-user 
</Location> 

इसका परिणाम यूआरएल लॉगिन पृष्ठ पर निर्देशित करने के लिए यूआरएल/शिबबोलेथ होना चाहिए। सफलतापूर्वक लॉग ऑन करने के बाद, 404 पेज वापस कर दिया जाएगा।

कॉन्फ़िगरेशन जोड़ें, ऐप को आपके ऐप के नाम से बदलना।

<Location "/"> 
    SetHandler mod_python 
    PythonHandler django.core.handlers.modpython 
    SetEnv DJANGO_SETTINGS_MODULE app.settings 
    PythonDebug Off 
</Location> 

इसका परिणाम/shibboleth URL के माध्यम से लॉगिन के बाद निम्न त्रुटि होनी चाहिए। वर्तमान यूआरएल, शिबोबोलेथसो/एडीएफएस, इनमें से किसी से मेल नहीं खाता।

इस समस्या को हल करने के लिए आपको निम्न को कॉन्फ़िगरेशन में जोड़ने की आवश्यकता है।

<Location /Shibboleth.sso> 
    SetHandler None 
</Location> 

/var/log/shibboleth/transaction.log आपको बताएगा कि कौन से गुण जारी किए गए हैं।

+0

"/Shibboleth.sso" पर 'सेटहैंडलर कोई नहीं' सेट करने के बजाय, यह निर्दिष्ट करता है कि अपाचे लोड मॉड्यूल कैसे मदद कर सकता है। मैं mod_passenger + mod_shib2 के साथ समान स्थिति में टक्कर लगी। उदाहरण के लिए यदि mod_shib2 लोड हो गया है * * mod_passenger के बाद "/Shibboleth.sso" स्थान यात्री ऐप द्वारा प्रबंधित किया जाता है (जो वांछित व्यवहार नहीं है)। यदि mod_shib2 लोड हो गया है * पहले * mod_passenger - सब कुछ अपेक्षित के रूप में काम करता है। –

संबंधित मुद्दे