आर्किटेक्चर निर्णय नोंद: प्रमाणीकरण आणि अधिकृतता पर्याय
वेब अनुप्रयोग प्रमाणीकरण आणि अधिकृतता या अनुप्रयोग आणि सेवांमधील प्रवेश सुरक्षित करण्यातील दोन महत्त्वाच्या संकल्पना आहेत. दोन्ही वापरकर्त्यांच्या ओळखीशी आणि परवानग्या कशा दिल्या जातात याच्याशी संबंधित आहेत, पण त्या वेगवेगळ्या पैलूंवर लक्ष केंद्रित करतात:
- प्रमाणीकरण म्हणजे वापरकर्त्याची किंवा प्रणालीची ओळख पडताळण्याची प्रक्रिया.
- अधिकृतता म्हणजे प्रमाणीकृत वापरकर्ता किंवा प्रणाली कोणत्या संसाधनांना किंवा कृतींना प्रवेश करू शकते हे ठरवण्याची प्रक्रिया.
आता, तुम्ही उल्लेख केलेले विशिष्ट प्रोटोकॉल आणि तंत्रज्ञान पाहू, जे आधुनिक वेब अनुप्रयोगांमध्ये प्रमाणीकरण आणि अधिकृतता व्यवस्थापित करण्यासाठी सामान्यतः वापरले जातात.
1. OAuth (Open Authorization)
OAuth हे अधिकृततेसाठीचे खुले मानक आहे. हे वापरकर्त्याला तृतीय-पक्ष अनुप्रयोगाला त्यांची क्रेडेन्शियल्स सामायिक न करता त्यांच्या संसाधनांपर्यंत मर्यादित प्रवेश देण्याची परवानगी देते. मुख्य कल्पना प्रतिनिधित्व प्रवेश आहे. जिथे वापरकर्ते त्यांचे वापरकर्तानाव आणि पासवर्ड थेट तृतीय-पक्षाला न देता तृतीय-पक्ष सेवेत लॉग इन करू शकतात (उदा. Google सह साइन इन करणे) अशा परिस्थितींमध्ये OAuth अनेकदा वापरले जाते.
- प्रवाह: OAuth सामान्यतः टोकन-आधारित प्रवाह पाळते, जिथे अधिकृतता सर्व्हर तृतीय-पक्ष अनुप्रयोगाला प्रवेश टोकन जारी करतो. हे टोकन वापरकर्त्याच्या परवानग्या दर्शवते, आणि अनुप्रयोग त्याचा वापर API वरून वापरकर्त्याच्या डेटा किंवा संसाधनांना प्रवेश करण्यासाठी करतो.
- उदाहरण: एक वापरकर्ता त्यांच्या Google खात्याचा वापर करून तृतीय-पक्ष अॅपमध्ये साइन इन करतो. Google वापरकर्त्याची ओळख पडताळते आणि मग तृतीय-पक्ष अॅपला काही Google डेटा (उदा. Google Calendar) प्रवेश करू देणारे टोकन देते.
OAuth प्रमाणीकरण थेट हाताळत नाही; ते प्रवेश देण्याबद्दल आहे. प्रमाणीकरणासाठी, OAuth ला अनेकदा OpenID Connect सारख्या इतर प्रोटोकॉलची जोड दिली जाते.
2. OpenID Connect (OIDC)
OpenID Connect (OIDC) हा OAuth 2.0 वर बनवलेला ओळख स्तर आहे जो OAuth च्या अधिकृतता क्षमतांमध्ये प्रमाणीकरण जोडतो. मूलतः, OpenID Connect OAuth चा विस्तार करून वापरकर्ता प्रमाणीकरण हाताळते आणि अनुप्रयोगांना वापरकर्त्याची ओळख पडताळण्याचा प्रमाणित मार्ग पुरवते.
- प्रवाह: जेव्हा वापरकर्ता OpenID Connect वापरून लॉग इन करतो, तेव्हा तृतीय-पक्ष अनुप्रयोग (OAuth प्रवेश टोकनव्यतिरिक्त) ID टोकनची विनंती करतो. ID टोकनमध्ये वापरकर्त्याबद्दल माहिती (जसे की त्यांचे वापरकर्तानाव, ईमेल आणि इतर क्लेम) असते. यामुळे अनुप्रयोगाला वापरकर्ता कोण आहे आणि त्याचे प्रमाणीकरण झाले आहे की नाही हे कळते.
- उदाहरण: तुमचे Google खाते वापरून Slack सारख्या सेवेत लॉग इन करणे (Google हा OpenID Connect पुरवठादार असणे) यात OpenID Connect द्वारे प्रमाणीकरण समाविष्ट असते, तर OAuth तुमच्या Google संसाधनांना प्रवेश व्यवस्थापित करते.
OIDC तृतीय-पक्ष अॅप्सना वापरकर्त्यांचे प्रमाणीकरण करणे सोपे करते आणि त्याचवेळी ते अॅप्स कोणत्या संसाधनांना प्रवेश करू शकतात यावर सूक्ष्म नियंत्रण ठेवण्याची परवानगी देते.
3. SAML (Security Assertion Markup Language)
SAML हे जुने, XML-आधारित मानक आहे जे पक्षांमध्ये प्रमाणीकरण आणि अधिकृतता डेटाच्या देवाणघेवाणीसाठी वापरले जाते, विशेषतः Single Sign-On (SSO) परिस्थितीत. वापरकर्त्यांना एकदा प्रमाणीकरण करून क्रेडेन्शियल्स पुन्हा न टाकता अनेक अनुप्रयोगांना प्रवेश करता यावा यासाठी हे प्रामुख्याने उद्योग वातावरणात वापरले जाते.
- प्रवाह: वापरकर्ता प्रथम ओळख पुरवठादाराकडे (IdP) प्रमाणीकरण करतो. IdP वापरकर्त्याची ओळख आणि संबंधित गुणधर्म असलेले स्वाक्षरीकृत SAML विधान तयार करतो. हे विधान सेवा पुरवठादाराला (SP) पाठवले जाते, जो त्याचा वापर अनुप्रयोगाला प्रवेश अधिकृत करण्यासाठी करतो.
- उदाहरण: एक कर्मचारी त्यांच्या कॉर्पोरेट पोर्टलमध्ये (IdP) लॉग इन करतो आणि क्रेडेन्शियल्स पुन्हा न टाकता ईमेल, CRM इत्यादी इतर प्रणालींमध्ये आपोआप लॉग इन होतो. प्रमाणीकरण प्रक्रिया IdP ने पाठवलेल्या SAML विधानावर आधारित असते.
SAML सामान्यतः उद्योग SSO उपायांमध्ये वापरले जाते आणि कॉर्पोरेट वातावरणातील वेब अनुप्रयोगांसाठी चांगले कार्य करते, पण OAuth/OIDC च्या तुलनेत ते मोबाइलसाठी कमी अनुकूल आहे.
4. WS-Federation (Web Services Federation)
WS-Federation हा Single Sign-On (SSO) साठी वापरला जाणारा आणखी एक प्रोटोकॉल आहे, विशेषतः Microsoft-आधारित उद्योग वातावरणात. तो WS- (Web Services)* तपशील कुटुंबाचा भाग आहे आणि वेगवेगळ्या सुरक्षा क्षेत्रांमध्ये (जसे की वेगवेगळ्या संस्थांमध्ये किंवा वेगवेगळ्या सेवांमध्ये) ओळख फेडरेशनला परवानगी देतो.
- प्रवाह: WS-Federation एका विश्वासार्ह ओळख पुरवठादाराला (IdP) वापरकर्त्यांचे प्रमाणीकरण करण्याची आणि सेवा पुरवठादार अधिकृततेसाठी वापरू शकेल असे टोकन जारी करण्याची परवानगी देतो. हे SAML सारखेच आहे पण Microsoft तंत्रज्ञानांवर मोठ्या प्रमाणात अवलंबून असलेल्या परिस्थितींमध्ये अनेकदा वापरले जाते.
- उदाहरण: एक वापरकर्ता Microsoft Azure Active Directory (AD) द्वारे होस्ट केलेल्या उद्योग अनुप्रयोगात लॉग इन करतो, आणि त्यांची ओळख तृतीय-पक्ष विक्रेत्यांनी होस्ट केलेल्या अनुप्रयोगांसह इतर फेडरेटेड सेवांना प्रवेश करण्यासाठी वापरली जाऊ शकते.
अनेक आधुनिक वेब वातावरणांत WS-Federation ची जागा मोठ्या प्रमाणात OAuth2.0 आणि OpenID Connect सारख्या नव्या प्रोटोकॉलनी घेतली असली, तरी ते अजूनही जुन्या प्रणालींमध्ये, विशेषतः Microsoft-केंद्रित उद्योगांमध्ये, वापरले जाते.
5. LDAP (Lightweight Directory Access Protocol)
LDAP हा डिरेक्टरी सेवांना प्रवेश करण्यासाठी आणि त्या व्यवस्थापित करण्यासाठी वापरला जाणारा प्रोटोकॉल आहे, जो सामान्यतः केंद्रीय डिरेक्टरीमध्ये (अनेकदा डिरेक्टरी सेवा म्हटले जाते) वापरकर्ता क्रेडेन्शियल्स साठवण्यासाठी आणि प्रवेश नियंत्रण व्यवस्थापित करण्यासाठी वापरला जातो. LDAP विशेषतः प्रमाणीकरण किंवा अधिकृततेबद्दल नाही, पण तो ओळख डेटा साठवण्यासाठी आणि पुन्हा मिळवण्यासाठी वापरला जातो, जो नंतर त्या प्रक्रियांमध्ये वापरला जातो.
- प्रमाणीकरण: LDAP अनुप्रयोगाला क्रेडेन्शियल्ससाठी (जसे की पासवर्ड) डिरेक्टरी सेवेची चौकशी करून वापरकर्त्यांचे प्रमाणीकरण करू देतो.
- अधिकृतता: तो वापरकर्ता भूमिका आणि परवानग्या देखील व्यवस्थापित करतो, ज्यामुळे वापरकर्त्याला विशिष्ट संसाधनांना प्रवेश आहे की नाही हे ठरवण्यास मदत होते.
- उदाहरण: अनेक उद्योग, विशेषतः Windows वातावरणात, प्रमाणीकरण आणि अधिकृततेसाठी LDAP-आधारित डिरेक्टरी (उदा. Active Directory) वापरतात.
अंतर्गत प्रणालींमध्ये वापरकर्ता प्रवेश व्यवस्थापित करण्यासाठी LDAP उद्योगांसाठी महत्त्वाचा आहे, पण आधुनिक वेब संदर्भात, अधिक संपूर्ण ओळख व्यवस्थापनासाठी LDAP अनेकदा SAML किंवा OAuth सारख्या इतर प्रोटोकॉलशी एकत्रित केला जातो.
6. सोशल SSO पुरवठादार
Facebook, Google, Twitter, GitHub आणि इतर सोशल Single Sign-On (SSO) पुरवठादार वापरकर्त्यांना त्यांची सोशल मीडिया क्रेडेन्शियल्स वापरून तृतीय-पक्ष अनुप्रयोगांमध्ये प्रमाणीकरण करू देतात. हा OAuth-आधारित प्रमाणीकरण प्रकार आहे जिथे तृतीय-पक्ष सेवा (उदा. Google) ओळख पुरवठादार असते.
- प्रवाह: वापरकर्ता "Google सह लॉग इन करा" वर क्लिक करतो (उदाहरणार्थ). अॅप Google कडे पुनर्निर्देशित करते, जिथे वापरकर्ता लॉग इन करतो (आधीच लॉग इन नसल्यास). मग Google तृतीय-पक्ष अॅपला प्रवेश टोकन किंवा ID टोकन देते, जे वापरकर्त्याचे प्रमाणीकरण करण्यासाठी आणि शक्यतो त्यांच्या डेटाला प्रवेश करण्यासाठी वापरले जाऊ शकते.
- उदाहरण: अनेक अनुप्रयोग तुम्हाला तुमची Google किंवा Facebook क्रेडेन्शियल्स वापरून लॉग इन करू देतात. अॅप तुमची ओळख पडताळण्यासाठी आणि काही बाबतीत विशिष्ट सोशल मीडिया डेटाला प्रवेश करण्यासाठी पडद्यामागे OAuth किंवा OpenID Connect वापरेल.
सोशल SSO ही प्रमाणीकरणासाठी सोयीस्कर आणि व्यापकपणे स्वीकारलेली पद्धत आहे कारण ती वापरकर्त्यांसाठीचे अडथळे कमी करते, ज्यांना आणखी एक वापरकर्तानाव आणि पासवर्ड तयार करायचा नसतो.
फरकांचा सारांश:
- OAuth: अधिकृततेसाठी वापरले जाते, तृतीय-पक्ष अॅप्सना क्रेडेन्शियल्स उघड न करता वापरकर्ता डेटाला प्रवेश करू देते.
- OpenID Connect: प्रमाणीकरण पुरवण्यासाठी OAuth चा विस्तार करते, अॅप्सना वापरकर्त्याची ओळख पडताळू देते.
- SAML: SSO साठी वापरला जाणारा XML-आधारित प्रोटोकॉल, अनेकदा उद्योग वातावरणात.
- WS-Federation: ओळख फेडरेशनसाठी Microsoft-विशिष्ट प्रोटोकॉल, जुन्या प्रणालींमध्ये वापरला जातो.
- LDAP: वापरकर्त्यांचे प्रमाणीकरण करण्यासाठी आणि अधिकृतता व्यवस्थापित करण्यासाठी डिरेक्टरी सेवांची चौकशी करण्याचा प्रोटोकॉल.
- सोशल SSO पुरवठादार: OAuth-आधारित प्रणाली (जसे की Google, Facebook) ज्या तृतीय-पक्ष अॅप्सना वापरकर्त्यांचे त्यांची सोशल मीडिया क्रेडेन्शियल्स वापरून प्रमाणीकरण करू देतात.
या प्रत्येक तंत्रज्ञानाची स्वतःची ताकद आणि वापर प्रकरणे आहेत, आणि आधुनिक अनुप्रयोगांमध्ये, तुम्हाला सुरक्षेच्या वेगवेगळ्या पैलूंसाठी त्यांचे संयोजन वापरले जाताना दिसू शकते (उदा. API प्रवेशासाठी OAuth/OIDC, उद्योग SSO साठी SAML).