
SAML सेवा प्रदाताओं और पहचान प्रदाताओं के निर्माण के लिए Flask लाइब्रेरी
.. note:: रखरखावकर्ताओं की तलाश है। यह परियोजना अप्रबंधित है। लाइब्रेरी काम करती है, या आखिरी बार जब मैंने इसका उपयोग किया था तब काम करती थी, लेकिन मैं अब उस परियोजना पर काम नहीं करता जिसके लिए यह बनाई गई थी। यदि आप इस परियोजना का नेतृत्व और रखरखाव संभालने में रुचि रखते हैं, तो कृपया संपर्क करें।
.. image:: https://travis-ci.com/timheap/flask-saml2.svg?branch=master :target: https://travis-ci.com/timheap/flask-saml2 .. image:: https://badge.fury.io/py/flask-saml2.svg :target: https://pypi.org/project/flask-saml2/ .. image:: https://readthedocs.org/projects/flask-saml2/badge/?version=latest :target: https://flask-saml2.readthedocs.io/en/latest/
यह Flask प्लगइन SAML सेवा प्रदाता (Service Providers) और पहचान प्रदाता (Identity Providers) दोनों बनाने की कार्यक्षमता प्रदान करता है। एप्लिकेशन इनमें से एक या दोनों प्रदाताओं को लागू कर सकते हैं।
flask-saml2 Flask 1.0+ और Python 3.6+ के साथ काम करता है।
यह NoodleMarkets/dj-saml-idp_ का भारी संशोधित फोर्क है, जो बदले में deforestg/dj-saml-idp_ का फोर्क है, जो बदले में novapost/django-saml2-idp_ का फोर्क है।
SAML कैसे काम करता है, इसका पूरा विवरण कृपया इंटरनेट पर अन्यत्र गाइड में देखें। त्वरित परिचय और इस पैकेज में प्रयुक्त कुछ शब्दावली के बारे में जानने के लिए आगे पढ़ें।
SAML प्रोटोकॉल दो पक्षों के बीच एक वार्तालाप है: पहचान प्रदाता (Identity Providers - IdP) और सेवा प्रदाता (Service Providers - SP)। जब कोई अप्रमाणित क्लाइंट (आमतौर पर एक ब्राउज़र) किसी सेवा प्रदाता तक पहुँचता है, तो सेवा प्रदाता एक प्रमाणीकरण अनुरोध (authentication request - AuthnRequest) बनाएगा, इसे अपनी निजी कुंजी से हस्ताक्षरित करेगा, और फिर इस अनुरोध को क्लाइंट के माध्यम से पहचान प्रदाता को अग्रेषित करेगा। एक बार जब क्लाइंट केंद्रीय पहचान प्रदाता पर लॉग इन करता है, तो पहचान प्रदाता एक प्रतिक्रिया बनाता है, उस पर हस्ताक्षर करता है, और इस प्रतिक्रिया को क्लाइंट के माध्यम से अनुरोध करने वाले सेवा प्रदाता को अग्रेषित करता है। इसके बाद क्लाइंट को केंद्रीय पहचान प्रदाता के माध्यम से सेवा प्रदाता पर प्रमाणित किया जाता है, बिना सेवा प्रदाता को प्रमाणीकरण विधि या किसी भी पासवर्ड के बारे में कुछ जानने की आवश्यकता होती है।
सेवा प्रदाता और पहचान प्रदाता दोनों का एक न्यूनतम लेकिन कार्यशील उदाहरण कार्यान्वयन इस रिपॉजिटरी की examples/ निर्देशिका में पाया जा सकता है। उदाहरण चलाने के लिए, पहले रिपॉजिटरी को क्लोन करें और निर्भरताएँ स्थापित करें:
.. code-block:: console
$ git clone https://github.com/timheap/flask-saml2
$ cd flask-saml2
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -e .
$ pip install -r tests/requirements.txt
अगला, IdP और SP को अलग-अलग टर्मिनल विंडो में चलाएँ:
.. code-block:: console
$ cd flask-saml2
$ source venv/bin/activate
$ ./examples/idp.py
.. code-block:: console
$ cd flask-saml2
$ source venv/bin/activate
$ ./examples/sp.py
अंत में, सेवा प्रदाता के लैंडिंग पृष्ठ तक पहुँचने के लिए http://localhost:9000/ पर जाएँ।
परीक्षण रनर pytest है और हम विभिन्न Flask और Python संस्करणों के विरुद्ध परीक्षण चलाने के लिए tox का उपयोग कर रहे हैं। परीक्षण को tox का उपयोग करके स्थानीय रूप से चलाया जा सकता है (अधिमानतः वर्चुअल वातावरण में)::
$ pip install tox
$ tox
MIT लाइसेंस_ के तहत वितरित।
.. _NoodleMarkets/dj-saml-idp: https://github.com/NoodleMarkets/dj-saml-idp
.. _deforestg/dj-saml-idp: https://github.com/deforestg/dj-saml-idp
.. _novapost/django-saml2-idp: https://github.com/novapost/django-saml2-idp
.. _MIT License: https://github.com/mobify/dj-saml-idp/blob/master/LICENSE