logo

Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll

REST API-ի նույնականացում՝ օգտագործելով արտաքին նույնականացման մատակարար

18/05/2025, by Ivan

Եթե ցանկանում եք պաշտպանել կամ սահմանափակել մուտքը ձեր Drupal REST API-ներին՝ օգտագործելով ձեր ինքնության մատակարար (Identity Provider), ապա պետք է օգտվեք Արտաքին Ինքնության Մատակարարի նույնականացման մեթոդից։ 

Drupal API-ի նույնականացումը արտաքին ինքնության մատակարարի միջոցով ներառում է երրորդ կողմի մատակարարներից (օր.՝ Google, Azure AD, Keycloak, Okta, Gitlab և այլն) ստացված թոքենների օգտագործում՝ Drupal REST API-ներին անվտանգ մուտք գործելու համար։

Այս մեթոդով դուք պետք է մոդուլում կարգավորեք Ձեր ինքնության մատակարարի կողմից տրամադրված User Info Endpoint-ը և Ձեր մատակարարից փոխանցվող օգտագործողի անունի հատկությունը։ Այս կերպ Դուք կարող եք նույնականացնել բոլոր Drupal API հարցումները՝ օգտագործելով մատակարարի կողմից տրամադրված թոքենը։ Drupal REST API  մոդուլը ստուգում է փոխանցված տվյալները ձեր Drupal օգտվողի հաշվին համապատասխան։ Այս մոդուլը համատեղելի է Drupal 7, Drupal 8, Drupal 9, Drupal 10 և Drupal 11 տարբերակների հետ։

 Ներբեռնել 

Կարգավորման տեսանյութ․

Նախադրյալներ՝ ներբեռնում և տեղադրում․

  • Ներբեռնեք և տեղադրեք Drupal REST & JSON API Authentication մոդուլը։
  • REST UI․ Այս մոդուլը տրամադրում է REST մոդուլի կարգավորման ինտերֆեյս։ 
  • Ձեր Drupal կայքում (Extend բաժին /admin/modules) միացրեք հետևյալ Web Services մոդուլները․
    • REST UI
    • RESTful Web Services
    • Serialization
    install modules

API Authentication-ի կարգավորման քայլեր արտաքին հավելվածի/ինքնության մատակարարի միջոցով․

  • Ավելի լավ պատկերացման համար դիտարկենք օրինակ՝ ինչպես ավելացնել արտաքին ինքնության մատակարարով նույնականացում օգտվող ստեղծելու API-ին Drupal-ում։
  • Նշենք, որ Drupal-ի /entity/user API-ն օգտագործվում է նոր օգտվող ստեղծելու համար։

Միացրեք API-ն և նշանակեք մեթոդներ և գործողություններ․

  • Առաջին քայլը API-ն միացնելն է և համապատասխան մեթոդներն ու գործողությունները ընտրելը տվյալ API-ի համար։ Սա կարելի է անել REST UI մոդուլի միջոցով կամ պարզապես փոխել config-ը։
  • REST UI մոդուլով API-ն միացնելու համար սեղմեք Configure կոճակը REST UI մոդուլի դիմաց (ինչպես նկարում) REST UI
  • Մեր օրինակում անհրաժեշտ է միացնել /entity/user API-ն, որը գտնվում է User-ի տակ։ Սեղմեք Enable՝ API-ն ակտիվացնելու համար։
    Add node
  • Քանի որ մեր նպատակը Drupal-ում օգտվող ստեղծելն է, ընտրեք հետևյալ կարգավորումները․
    • Մեթոդ՝ POST
    • Ֆորմատ՝ json
    • Նույնականացման մատակարար՝ rest_api_authentication.
  • rest_api_authentication ընտրելով՝ հնարավորություն եք տալիս miniOrange REST API Authentication մոդուլին նույնականացնել ձեր API հարցումը։ Սեղմեք Save Configuration շարունակելու համար։ Resource content

Drupal REST API Authentication մոդուլի կարգավորում․

  • Այս քայլում մենք կկարգավորենք External Identity Provider տարբերակը որպես API Authentication մեթոդ։ Դրա համար անցեք REST API Authentication մոդուլի API Authentication ներդիր (/admin/config/people/rest_api_authentication/auth_settings) հասցեով։
    • Նշեք Enable Authentication տուփը և սեղմեք Save Settings.
    • Save Settings-ի ներքևում ընտրեք External Identity Provider տարբերակը։
    • User Info Endpoint դաշտում մուտքագրեք Ձեր Ինքնության մատակարարի user info endpoint-ը, որպեսզի մոդուլը կարողանա թոքենով ստանալ օգտվողի տվյալները։
    • Username Attribute դաշտում մուտքագրեք ձեր մատակարարի այն հատկության անունը, որով փոխանցվում է օգտվողի անունը։
      External authentication

Տվեք Drupal-ի դերերին օգտվող ստեղծելու իրավունք․

  • Անհրաժեշտության դեպքում կարող եք թույլատրել ոչ ադմինիստրատոր դեր ունեցող օգտվողներին օգտվողներ ստեղծել Drupal-ում։ Դա կարող եք անել համապատասխան դերերին Administer users թույլտվություն տալով (/admin/people/permissions)։ Add permissions

Ահա և վերջ!!!

  • Այժմ կարող ենք փորձել օգտվող ստեղծել Drupal-ում API-հարցմամբ՝ օգտագործելով արտաքին ինքնության մատակարարի նույնականացում։

Օրինակներ․

  • Օգտվող ստեղծելու համար պետք է ուղարկեք POST հարցում՝ այն թոքենով, որը ստացել եք ինքնության մատակարարից։

    Հարցում:  POST  <your_drupal_base_url>/entity/user?_format=json
    Վերնագիր:   Token: <Token_receievd_from_external_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_receievd_from_external_identity_proider>' \
    --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 Documentation-ից։