logo

Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

बाहरी पहचान प्रदाता का उपयोग करके REST API प्रमाणीकरण

02/09/2025, by Ivan

JSON Drop API Documentation

यदि आप अपने 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
    install modules

बाहरी एप्लिकेशन/पहचान प्रदाता का उपयोग करके API प्रमाणीकरण सेटअप करने के चरण:

  • इस उदाहरण में हम Drupal के Create User API में External Identity Provider Authentication जोड़ेंगे।
  • ध्यान दें कि Drupal का /entity/user API Drupal में उपयोगकर्ता बनाने के लिए प्रयोग होता है।

API को सक्षम करें और नीचे दिए अनुसार मेथड्स और ऑपरेशन्स असाइन करें:

  • सबसे पहले, API को सक्षम करें और संबंधित ऑपरेशन्स असाइन करें। यह आप REST UI मॉड्यूल या config के माध्यम से कर सकते हैं।
  • REST UI मॉड्यूल के द्वारा API को सक्षम करने के लिए, उसके Configure बटन पर क्लिक करें: REST UI
  • हमारे उदाहरण में, /entity/user API को User अनुभाग के अंतर्गत सक्षम करें: Add node
  • क्योंकि हमारा उद्देश्य उपयोगकर्ता बनाना है, निम्नलिखित कॉन्फ़िग्स चुनें:
    • Method: POST
    • Format: json
    • Authentication provider: rest_api_authentication
  • यह चुनने पर miniOrange REST API Authentication मॉड्यूल API को प्रमाणीकृत कर सकेगा। Save Configuration बटन पर क्लिक करें:
    Resource content

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 भेज रहा है।
      External authentication

Drupal भूमिकाओं को उपयोगकर्ता बनाने की अनुमति देना:

  • यदि आवश्यक हो, तो non-admin भूमिकाओं को उपयोगकर्ता बनाने की अनुमति दें। इसके लिए Administer users अनुमति दें:
    /admin/people/permissions
    Add 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 अनुरोध का उदाहरण:
    postman
  • यदि अनुरोध सफल होता है, तो उत्तर में बनाए गए उपयोगकर्ता की जानकारी प्राप्त होगी:
    Postman response
  • यदि उत्तर में कोई त्रुटि आती है, तो नीचे दिए गए टेबल में विवरण और समाधान देखें:

त्रुटि उत्तर:

त्रुटि विवरण
INVALID_USER_INFO_ENDPOINT जब आप गलत User Info URL प्रदान करते हैं, तो यह त्रुटि आती है।
INVALID_USERNAME_ATTRIBUTE जब आप गलत Username Attribute दर्ज करते हैं या username प्राप्त करने में समस्या होती है।
INVALID_TOKEN जब हेडर में टोकन गायब होता है या गलत होता है।

यह लेख Drupal दस्तावेज़ से लिया गया है।