बाहरी पहचान प्रदाता का उपयोग करके REST API प्रमाणीकरण
यदि आप अपने Drupal REST APIs तक पहुँच को अपने पहचान प्रदाता (Identity Provider) के माध्यम से सुरक्षित या सीमित करना चाहते हैं, तो आपको External Identity Provider Authentication विधि का उपयोग करना चाहिए।
Drupal API Authentication को एक बाहरी पहचान प्रदाता (जैसे Google, Azure AD, Keycloak, Okta, GitLab आदि) के साथ एकीकृत करके टोकन के माध्यम से सुरक्षित किया जाता है। ये टोकन REST APIs तक सुरक्षित पहुँच प्रदान करते हैं।
इस विधि में, आपको अपने पहचान प्रदाता द्वारा प्रदान किए गए User Info Endpoint और username attribute के साथ मॉड्यूल को कॉन्फ़िगर करना होता है। इसके बाद, आप अपने प्रदाता द्वारा जारी किए गए टोकन के माध्यम से Drupal API अनुरोधों को प्रमाणीकृत कर सकते हैं। Drupal REST API मॉड्यूल प्राप्त क्रेडेंशियल्स को Drupal उपयोगकर्ता खाते से सत्यापित करता है। यह मॉड्यूल Drupal 7, 8, 9, 10 और 11 के साथ संगत है।
सेटअप वीडियो:
पूर्व-आवश्यकताएँ: डाउनलोड और इंस्टॉलेशन
- Drupal REST & JSON API Authentication मॉड्यूल डाउनलोड और इंस्टॉल करें।
- REST UI: REST मॉड्यूल को कॉन्फ़िगर करने के लिए यूज़र इंटरफ़ेस प्रदान करता है।
- अपनी Drupal साइट के Extend अनुभाग (/admin/modules) से निम्नलिखित Web Services मॉड्यूल्स को सक्षम करें:
- REST UI
- RESTful Web Services
- Serialization
बाहरी एप्लिकेशन/पहचान प्रदाता का उपयोग करके API प्रमाणीकरण सेटअप करने के चरण:
- इस उदाहरण में हम Drupal के Create User API में External Identity Provider Authentication जोड़ेंगे।
- ध्यान दें कि Drupal का
/entity/user
API Drupal में उपयोगकर्ता बनाने के लिए प्रयोग होता है।
API को सक्षम करें और नीचे दिए अनुसार मेथड्स और ऑपरेशन्स असाइन करें:
- सबसे पहले, API को सक्षम करें और संबंधित ऑपरेशन्स असाइन करें। यह आप REST UI मॉड्यूल या config के माध्यम से कर सकते हैं।
- REST UI मॉड्यूल के द्वारा API को सक्षम करने के लिए, उसके Configure बटन पर क्लिक करें:
- हमारे उदाहरण में, /entity/user API को User अनुभाग के अंतर्गत सक्षम करें:
- क्योंकि हमारा उद्देश्य उपयोगकर्ता बनाना है, निम्नलिखित कॉन्फ़िग्स चुनें:
- Method: POST
- Format: json
- Authentication provider: rest_api_authentication
- यह चुनने पर miniOrange REST API Authentication मॉड्यूल API को प्रमाणीकृत कर सकेगा। Save Configuration बटन पर क्लिक करें:
Drupal REST API Authentication मॉड्यूल कॉन्फ़िगरेशन:
- अब हम External Identity Provider को प्रमाणीकरण विधि के रूप में सेट करेंगे। ऐसा करने के लिए जाएँ:
/admin/config/people/rest_api_authentication/auth_settings
- Enable Authentication बॉक्स को चेक करें और Save Settings पर क्लिक करें।
- नीचे External Identity Provider रेडियो बटन चुनें।
- User Info Endpoint फ़ील्ड में अपने पहचान प्रदाता का URL दर्ज करें, ताकि मॉड्यूल टोकन के ज़रिए उपयोगकर्ता की जानकारी प्राप्त कर सके।
- Username Attribute फ़ील्ड में उस key/name को दर्ज करें जिसमें प्रदाता username भेज रहा है।
Drupal भूमिकाओं को उपयोगकर्ता बनाने की अनुमति देना:
- यदि आवश्यक हो, तो non-admin भूमिकाओं को उपयोगकर्ता बनाने की अनुमति दें। इसके लिए Administer users अनुमति दें:
/admin/people/permissions
बस इतना ही!!!
- अब एक API कॉल के माध्यम से External Identity Provider का उपयोग करते हुए Drupal में एक उपयोगकर्ता बनाने का प्रयास करें।
उदाहरण:
- Drupal में उपयोगकर्ता बनाने के लिए आपको POST अनुरोध भेजना होगा, साथ में अपने Identity Provider से प्राप्त टोकन भी जोड़ें।
अनुरोध: POST
<your_drupal_base_url>/entity/user?_format=json
हेडर:
Token:<Token_from_identity_provider>
Accept: application/json
Content-Type: application/jsonबॉडी:
{ "name": [{"value": "username"}], "mail": [{"value": "email"}], "pass": [{"value": "password"}], "status": [{"value": "1"}] }
CURL अनुरोध:
curl --location --request POST '<your_drupal_base_url>/entity/user?_format=json' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Token: <Token_from_identity_provider>' \ --data-raw '{ "name": [{"value": "Username"}], "mail": [{"value": "email"}], "pass": [{"value": "Password"}], "status": [{"value": "1"}] }'
- Postman अनुरोध का उदाहरण:
- यदि अनुरोध सफल होता है, तो उत्तर में बनाए गए उपयोगकर्ता की जानकारी प्राप्त होगी:
- यदि उत्तर में कोई त्रुटि आती है, तो नीचे दिए गए टेबल में विवरण और समाधान देखें:
त्रुटि उत्तर:
त्रुटि | विवरण |
---|---|
INVALID_USER_INFO_ENDPOINT | जब आप गलत User Info URL प्रदान करते हैं, तो यह त्रुटि आती है। |
INVALID_USERNAME_ATTRIBUTE | जब आप गलत Username Attribute दर्ज करते हैं या username प्राप्त करने में समस्या होती है। |
INVALID_TOKEN | जब हेडर में टोकन गायब होता है या गलत होता है। |
यह लेख Drupal दस्तावेज़ से लिया गया है।