सेवाओं के मूल प्रमाणीकरण का उपयोग कैसे करें?


10

सेवाओं के मूल प्रमाणीकरण मॉड्यूल का उपयोग कैसे करें ?

मैं अपनी सेवा के लिए http मूल अधिकार जोड़ना चाहता हूं। मैंने इसे स्थापित किया है और इसे मेरे अंतिम बिंदु कॉन्फ़िगरेशन पर सक्षम किया है। मुझे अपने अंतिम बिंदु कॉन्फ़िगरेशन में "HTTP मूल प्रमाणीकरण सेवाएँ_basic_auth की कोई सेटिंग उपलब्ध नहीं है" मिली। सेटिंग पृष्ठ कहां है

जवाबों:


11

मॉड्यूल ड्रूपल खातों के खिलाफ एक वेब सेवा कॉल को प्रमाणित करता है।

  1. मॉड्यूल सक्षम करें
  2. एक ड्रुपल उपयोगकर्ता को सेट करें
  3. उपयोगकर्ता के क्रेडेंशियल्स के साथ वेब सेवा कॉल करें।

ध्यान दें कि यदि एसएसएल का उपयोग नहीं किया जाता है, तो मूल स्थिति के साथ, क्रेडेंशियल को इंटरसेप्ट किया जा सकता है।

मॉड्यूल किसी भी विशिष्ट भूमिकाओं या अनुमतियों की जांच के बिना मानक PHP प्रमाणीकरण हेडर का उपयोग करता है और मानक ड्रुपल लॉगिन फ़ॉर्म को सबमिट करता है। तो कोई भी ड्रुपल यूजर काम करेगा।

परीक्षण करने के लिए कर्ल या विग के साथ एक परीक्षण वेब-सेवा कॉल करेंकर्ल स्टैकओवरफ्लो उत्तर के साथ कॉल में PHP के साथ कॉल करने के तरीके के भी निर्देश हैं ।


क्या यह एकल URL कॉल में इस संरचना का उपयोग करने से पूरी तरह से अलग है? myusername: mypassword@example.com/callback
Citricguy

@Citricguy अलग नहीं है। यह सिंटैक्स URI स्कीम en.wikipedia.org/wiki/URI_scheme द्वारा प्रदान किया गया है । मैं इसे इस तरह से नहीं करूंगा। कुछ REST सेवाओं का ब्राउज़र में परीक्षण किया जा सकता है और मुझे चिंता होगी कि क्रेडेंशियल्स ब्राउज़र इतिहास में चले गए हैं। Https क्रेडेंशियल के साथ एन्क्रिप्टेड हैं। यह http लाइब्रेरी पर भी निर्भर करेगा, php http ठीक हो सकता है php.net/manual/en/features.http-auth.php#44686 पर टिप्पणी देखें । Microsoft ब्राउज़र अब सिंटैक्स का समर्थन नहीं करते हैं, इसलिए यदि आप कॉल करने के लिए जावास्क्रिप्ट का उपयोग करते हैं तो यह काम नहीं कर सकता है। कुछ एपीआई इस विधि का उपयोग करते हैं। goo.gl/eS9mqv
इंटरलेलेटेड

क्षमा करें, आपके द्वारा कॉल को कार्यान्वित करने के तरीके का कॉल पर कोई प्रभाव नहीं पड़ता है। इसलिए यदि यह ठीक है तो u: p@host.com के साथ परीक्षण करना। मैं कह रहा हूं कि इस तरह से लागू करने के मुद्दे हो सकते हैं। मुझे लगता है कि हेडर होगा, न कि जल्द से जल्द परीक्षण को कारगर बनाने के लिए URL।
२३

4

ऊपर मॉड्यूल बेसिक एक्सेस ऑथेंटिकेशन तकनीक का उपयोग करते हुए सेवाओं की कॉल को प्रमाणित करने के लिए उपयोग किया जाता है .. आप अपने ड्रुपल यूजरनेम और पासवर्ड का उपयोग सेवा कॉल के लिए प्राधिकरण हेडर जोड़कर सेवाओं कॉल को प्रमाणित करने के लिए करेंगे।

जब उपयोगकर्ता एजेंट सर्वर प्रमाणीकरण क्रेडेंशियल भेजना चाहता है तो वह प्राधिकरण शीर्ष लेख का उपयोग कर सकता है।

प्राधिकरण शीर्षलेख का निर्माण निम्नानुसार किया गया है:

उपयोगकर्ता नाम और पासवर्ड एक स्ट्रिंग "उपयोगकर्ता नाम: पासवर्ड" में संयुक्त हैं

परिणामी स्ट्रिंग शाब्दिक को फिर बेस 64 के RFC2045-MIME वैरिएंट का उपयोग करके एन्कोड किया गया है, सिवाय इसके कि 76 char / line तक सीमित न हो प्राधिकरण विधि और एक स्पेस अर्थात "बेसिक" को तब एन्कोडेड स्ट्रिंग से पहले रखा जाता है।

उदाहरण के लिए, यदि यूजर एजेंट यूजरनेम के रूप में 'अलादीन' और पासवर्ड के रूप में 'ओपन तिल' का उपयोग करता है तो हेडर बनता है:।

प्राधिकरण: मूल QWxhZGRpbjpvcGVuIHNlc2FtZQ ==

उदाहरण के लिए नीचे कर्ल का उपयोग कर कॉल है ..

curl -H "Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" http://www.example.com/endpoint/yourservice

2
हां, मैं इसे पहले ही पढ़ चुका हूं, लेकिन फिर भी यह नहीं पता कि इसे कैसे लागू किया जाए? मॉड्यूल स्थापित करने के बाद क्या करना है? कोई भी मदद बहुत अच्छी रहेगी। धन्यवाद
रिजालुल फिक्री

2
  1. एक बार मॉड्यूल सक्षम होने के बाद स्ट्रक्चर> सर्विसेज पर जाएं
  2. अपना समापन बिंदु चुनें और संपादित करें पर क्लिक करें यहां छवि विवरण दर्ज करें

  3. अपने ग्राहक का परीक्षण करने के लिए https://addons.mozilla.org/fr/firefox/addon/restclient/ जैसे टूल का उपयोग करें :

यहां छवि विवरण दर्ज करें

नोट: मुझे इसके साथ समस्याएँ आ रही हैं, भले ही विकल्प HTTP बेसिक ऑथेंटिकेशन को चिह्नित किया गया था, इस बिंदु के संसाधन को कॉल करते हुए 401 के बजाय 200 वापस आ रहा था । कहने के लिए, मॉड्यूल मेरे समापन बिंदु को सुरक्षित करने में विफल रहा।

समस्या इसमें दिखाई देती है:

https://www.drupal.org/project/services_basic_auth
version: 7.x-1.4

मैंने इसे मॉड्यूल के लिए एक पैच करते हुए हल किया:

https://www.drupal.org/node/2734207


1

क्या गलत हो सकता है: सभी सेटिंग्स सेट करने के बाद:

  1. सेवाओं-बुनियादी-प्रमाणीकरण मॉड्यूल को सक्षम करें
  2. उदाहरण के लिए, सेवाओं को एंडी-पॉइंट बनाएं: सभी नोड प्राप्त करें
  3. एडिट पेज पर "HTTP बेसिक ऑथेंटिकेशन" चेकबॉक्स सेट करें
  4. एक उपयोगकर्ता बनाएँ

और ध्यान दिया, कि यदि आप "प्रकाशित सामग्री देखें" अनुमति को अक्षम नहीं करेंगे, तो किसी भी उपयोगकर्ता के पास लौटे परिणाम के साथ सेवा एपीआई के अंतिम-बिंदु तक पहुंच हो सकती है।


0

Services Basic Authenticationमॉड्यूल स्थापित करने के बाद अपने सर्वर की अन्य सेटिंग्स पर जाएं:

/admin/structure/services

Editविकल्प दर्ज करें और नीचे एक चेकबॉक्स है:

HTTP basic authentication

इसे सक्षम करें और सहेजें बटन दबाएं।


क्या उपयोगकर्ता: पासवर्ड मैं HTTP मूल प्रमाणीकरण के लिए उपयोग करूंगा?
अश्विन ने

-1

सामग्री एक्सेस मॉड्यूल का उपयोग करना न भूलें।

MPD के अनुरोध के अनुसार अतिरिक्त विवरण जोड़ना।

यदि आप सामग्री एक्सेस मॉड्यूल का उपयोग नहीं कर रहे हैं, तो उपयोगकर्ता अन्य द्वारा बनाई गई सामग्री सहित उन सभी सामग्री को देखेगा, जिन्हें वे नहीं देखना चाहते थे। उदाहरण के लिए, उपयोगकर्ता ए ने व्यक्तिगत डेटा संग्रहीत किया है जो उपयोगकर्ता बी को वर्सा देखने या बुद्धिमान नहीं माना जाता है। सेवा मूल प्रमाणीकरण मॉड्यूल सक्षम बनाता है, लेकिन सामग्री पहुंच को लागू नहीं करता है। सामग्री एक्सेस मॉड्यूल को लागू करता है। यदि आप सामग्री अभिगम नियंत्रण का उपयोग नहीं कर रहे हैं तो उपयोगकर्ता को प्रमाणित करने का कोई मतलब नहीं है।


क्या आप इस पर विस्तार कर सकते हैं कि यह मॉड्यूल उपयोगकर्ता की जरूरतों को कैसे हल कर सकता है?
mpdonadio

कृपया मूल उत्तर में मेरा अपडेट देखें।
Techwestcoastsfosea
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.