logo

Dodatni tipovi blokova (EBT) - Novo iskustvo rada sa Layout Builder-om❗

Dodatni tipovi blokova (EBT) – stilizovani, prilagodljivi tipovi blokova: slajdšouvi, kartice sa tabovima, kartice, akordeoni i mnogi drugi. Ugrađena podešavanja za pozadinu, DOM Box, javascript dodatke. Iskusite budućnost kreiranja rasporeda već danas.

Demo EBT moduli Preuzmite EBT module

❗Dodatni tipovi pasusa (EPT) – Novo iskustvo rada sa pasusima

Dodatni tipovi pasusa (EPT) – analogni skup modula zasnovan na pasusima.

Demo EPT moduli Preuzmite EPT module

Scroll

REST API autentifikacija korišćenjem eksternog provajdera identiteta

21/05/2025, by Ivan

Ako želite da zaštitite/ograničite pristup svojim Drupal REST API-jevima korišćenjem svog Identity providera, treba da koristite metodu autentikacije putem Eksternog Identity Providera. 

Drupal API autentikacija putem Eksternog Identity Providera podrazumeva korišćenje tokena dobijenih od provajdera trećih strana kao što su Google, Azure AD, Keycloak, Okta, Gitlab itd., kako biste na bezbedan način pristupili Drupal REST API-jevima.

U ovoj metodi potrebno je da konfigurišete modul sa User Info Endpoint-om koji pruža vaš Identity Provider, kao i atribut korisničkog imena iz vašeg Identity Providera, nakon čega ćete moći da autentikujete sve Drupal API zahteve koristeći token koji dobijete od provajdera. Drupal REST API modul proverava primljene korisničke kredencijale u odnosu na Drupal korisnički nalog. Ovaj modul je kompatibilan sa Drupal 7, Drupal 8, Drupal 9, Drupal 10 i Drupal 11.

 Preuzmi 

Video vodič za podešavanje:

Preduslovi: Preuzimanje i instalacija:

  • Preuzmite i instalirajte Drupal REST & JSON API Authentication modul.
  • REST UI: Ovaj modul pruža korisnički interfejs za podešavanje REST modula. 
  • Omogućite sledeće Web Services module iz sekcije Extend (/admin/modules) na svom Drupal sajtu:
    • REST UI
    • RESTful Web Services
    • Serialization
    install modules

Koraci za podešavanje API autentikacije pomoću eksterne aplikacije/Identity Providera:

  • Radi boljeg razumevanja, kao primer ćemo koristiti dodavanje autentikacije na bazi eksternog Identity Providera za API za kreiranje korisnika u Drupalu.
  • Obratite pažnju da se API /entity/user u Drupalu koristi za kreiranje korisnika.

Omogućite API i dodelite metode i operacije na sledeći način:

  • Prvi korak je da omogućite API i dodelite metode i operacije koje su dozvoljene na tom API-ju. Ovo možete uraditi pomoću REST UI modula ili izmenom konfiguracije.
  • Da biste omogućili API koristeći REST UI modul, kliknite na dugme Configure kod REST UI modula (kao što je prikazano ispod) REST UI
  • U ovom primeru, potrebno je omogućiti /entity/user API koji se nalazi pod User. Omogućite ovaj API klikom na Enable opciju ispred njega.
    Add node
  • Sada, pošto nam je cilj kreiranje korisnika u Drupalu, izaberite sledeće konfiguracije:
    • Metod: POST
    • Format: json
    • Provider za autentikaciju: rest_api_authentication
  • Odabirom rest_api_authentication omogućavate da miniOrange REST API Authentication modul autentifikuje vaš API. Kliknite na Save Configuration da nastavite. Resource content

Konfiguracija modula Drupal REST API Authentication:

  • U ovom koraku, podesite External Identity Provider kao metodu API autentikacije. Da biste to uradili, idite na karticu API Authentication u REST API Authentication modulu (/admin/config/people/rest_api_authentication/auth_settings)
    • Označite Enable Authentication i kliknite na Save Settings.
    • Ispod dugmeta Save Settings, izaberite radio dugme External Identity Provider.
    • U polje User Info Endpoint unesite endpoint svog Identity Providera kako bi modul mogao da preuzme informacije o korisniku putem tokena.
    • U Username Attribute unesite ključ/naziv atributa vašeg Identity Providera u kojem eksterni provajder šalje korisničko ime.
      External authentication

Dodelite Drupal ulogama dozvolu za kreiranje korisnika u Drupalu: 

  • Ako je potrebno, možete dodeliti ne-administratorskim Drupal ulogama dozvolu za kreiranje korisnika u Drupalu. To se može uraditi dodeljivanjem uloga dozvoli Administer users u sekciji dozvola (/admin/people/permissions) vašeg Drupal sajta.
    Add permissions

To je to!!!

  • Sada možete pokušati da kreirate korisnika u Drupalu putem API poziva koristeći eksterni Identity Provider za autentikaciju.

Primeri:

  • Da biste kreirali korisnika u Drupalu, potrebno je da pošaljete POST zahtev zajedno sa Token-om dobijenim od vašeg Identity Providera.

    Zahtev:  POST  <your_drupal_base_url>/entity/user?_format=json
    Header:   Token: <Token_dobijen_od_eksternog_identity_providera>
                    Accept: application/json
                    Content-Type: application/json

    Telo:  {
        "name": [
            {"value": "<korisničko_ime>"}
        ],
        "mail": [
            {"value": "<email>"}
        ],
        "pass":[
            {"value": "<lozinka>"}
        ],
        "status":[
            {"value": "1"}
        ]
    }

    CURL zahtev primer-

    curl --location --request POST  ‘<your_drupal_base_url>/entity/user?_format=json' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'Token: <Token_dobijen_od_eksternog_identity_providera>' \
    --data-raw '{
        "name": [
            {"value": "KorisničkoIme"}
        ],
        "mail": [
            {"value": "email"}
        ],
        "pass":[
            {"value": "Lozinka"}
        ],
        "status":[
            {"value": "1"}
        ]
    }'

  • Možete pogledati i sliku Postman zahteva ispod:

    postman

  • Uspešan odgovor vraća podatke o korisniku kojeg ste kreirali. (pogledajte sliku ispod)

    Postman response

  • Ako dobijete bilo kakvu grešku u odgovoru, možete pogledati tabelu ispod za opis greške i moguća rešenja.

Greške u odgovoru:

Greška Opis
INVALID_USER_INFO_ENDPOINT Ovu grešku ćete dobiti kad unesete pogrešan User Info URL u konfiguraciji modula.
INVALID_USERNAME_ATTRIBUTE Ovu grešku ćete dobiti kad unesete pogrešan atribut korisničkog imena u konfiguraciji modula ili ako postoji greška pri pokušaju da se preuzme korisničko ime.
INVALID_TOKEN Ovu grešku ćete dobiti kad je token koji ste uneli pogrešan ili nedostaje u header-u.

Tekst preuzet sa Drupal Documentation.