Sökresultat :

×

Drupal REST API-autentisering


I det här dokumentet tar vi dig genom stegen för att konfigurera och använda var och en av autentiseringsmetoderna som vi tillhandahåller i miniOrange REST API-autentiseringsmodulen. Denna modul stöder både REST samt JSON API moduler.

Du kan hänvisa till vår detaljerade installationsguide för alla autentiseringsmetoder via följande länk-API-autentiseringsguide.

Om du har några andra anpassade API:er som du vill att vår modul ska stödja eller om du behöver någon form av hjälp, är du välkommen att kontakta oss på drupalsupport@xecurify.com Klicka här för att se hela funktionen lista.

1. Grundläggande autentisering

  • Grundläggande autentisering är en enkel autentiseringsmekanism där klienten kan använda sina referenser för att skydda Drupal API:er. För att kunna använda vilket API som helst med denna autentiseringsmetod måste du skicka en begäran med ditt base64-kodade användarnamn och lösenord i auktoriseringshuvudet.
  • För att välja denna metod klicka på Grundläggande autentisering från modulen enligt nedan:
  • Drupal API Authentication välj grundläggande autentiseringsmetod
  • För att få nodinformation i Drupal måste du göra en GET-förfrågan tillsammans med användarens Drupal-användarnamn och lösenord. Värdet på användarnamnet och lösenordet måste vara i base64-kodat format. Du kan använda formatet nedan för att ringa ett samtal.
  • 
                 Request: GET <your_drupal_base_url>/node/{node}?_format=json
                 Header: 
                        Authorization: Basic base64encoded <username:api_key>
                        Accept: application/json 
                        Content-Type: application/json
                 
                 Sample curl Request Format-
                 --location --request GET '<your_drupal_base_url>/node/1?_format=json' \
                 --header 'Accept: application/json' \
                 --header 'Content-Type: application/json' \
                 --header 'Authorization: Basic base64encoded <username:API key’> \
                
  • Din förfrågan ska innehålla rubrikerna och bodyparametrarna på följande sätt:
  • Drupal API-autentisering skicka svar
  • Ett lyckat svar skulle se ut så här:
  • Drupal API-autentiseringssvar

    2. API-nyckelautentisering

    • API-nyckelautentisering är en av de enklaste metoderna för att skydda Drupal REST API:er. När du har skapat API-nycklar för alla dina användare kan du använda dessa nycklar för att säkra åtkomsten till dina Drupal REST API:er.
    • För att ställa in API Key som en API-autentiseringsmetod, vänligen navigera till API-autentisering fliken i REST API Authentication Module (/admin/config/people/rest_api_authentication/auth_settings).
    • Välj Kryssrutan Aktivera autentisering och klicka på Spara ovan inställningar knapp.
    • För att aktivera API-nyckelbaserad autentisering, välj alternativknappen API-nyckel.
    • På samma skärm kan du generera API-nyckeln för en viss användare eller så kan du generera API-nyckeln för alla användare samtidigt.
    • Drupal selectAPI-autentisering
    • Du måste skapa ett användarattribut för fältets API-nyckel. Du kan hänvisa detta länk för att skapa en Field API Key.
    • För att utveckla mer, låt oss ta ett exempel på att skapa en användare i Drupal
    • För att skapa en användare i Drupal måste en POST-begäran göras med användarens användarnamn och en API-nyckel som tillhandahålls av miniOrange REST API Authentication Module. Användarnamnet och API-nyckeln ska kodas i base64. Använd följande format som referens för att ringa samtalet:
    • 
                   Request: POST <your_drupal_base_url>/entity/user?_format=json
                   Header: 
                          Authorization: Basic base64encoded <username:api_key>
                          Accept: application/json 
                          Content-Type: application/json
                   Body:
                   
                      {
                       "name": [
                               {"value": "username"}
                         ],
                       "mail": [
                               {"value": "email"}
                         ],
                       "pass": [
                               {"value": "password"}
                         ],
                      "status":[
                               {"value": "1"}
                         ]
                     }
       
                   Sample curl Request Format-
                   --location --request POST '<your_drupal_base_url>/entity/user?_format=json' \
                   --header 'Accept: application/json' \
                   --header 'Content-Type: application/json' \
                   --header 'Authorization: Basic base64encoded’ \
                   --data-raw   '   
                     {
                       "name": [
                           {"value": "Username"}
                         ],
                       "mail": [
                           {"value": "email"}
                         ],
                       "pass":[
                           {"value": "Password"}
                         ],
                       "status":[
                           {"value": "1"
                     }
                       ]
                      
               
                  
    • Din förfrågan ska innehålla rubrikerna och bodyparametrarna på följande sätt:
    • Drupal REST API skicka svar
    • Ett lyckat svar skulle se ut så här:
    • Drupal REST API-autentiseringssvar

    3. JWT-autentisering

    • JSON Web Token (JWT) är ett säkert sätt att representera en användares identitet under en tvåpartsinteraktion. Inledningsvis används inloggningsuppgifterna för din Drupal-webbplats för att först få en JWT-token. Efter att ha verifierat användarnamnet och lösenordet skapar Drupal REST API-autentiseringsmodulen en signerad JWT-token, som skickas tillbaka till klientapplikationen för efterföljande API-förfrågningar.
    • Denna token används för att utföra operationerna i Drupal tills den går ut. Drupal REST API-autentiseringsmodulen ger åtkomst endast när den får en giltig JWT från applikationen.
    • För att ställa in JWT som en API-autentiseringsmetod, vänligen navigera till API-autentisering fliken i REST API Authentication Module (/admin/config/people/rest_api_authentication/auth_settings).
    • Välj Kryssrutan Aktivera autentisering och klicka på Spara ovan inställningar knapp.
    • Välj alternativknappen JWT under knappen Spara ovanför inställningar. Ange attributnamnet i vilket ditt användarnamn kommer att tas emot i textfältet "Användarnamnsattribut".
    • Slutligen klickar du på Spara JWT-konfiguration knapp.
    • För att använda en externt skapad JWT-token för autentisering kan du konfigurera följande alternativ:
  • Ange attributnamnet som ditt användarnamn kommer att tas emot i textfältet "Användarnamnsattribut".
  • Om du vill använda en extern JWT-token kan du också ange JWKS-URL för att validera den token i Drupal.
    Drupal välj metod för jwt-token
  • Låt oss överväga följande exempel - vi måste initiera en API-begäran för att få en JWT. Därefter kommer vi att använda token för att autentisera Drupal API för att skapa en grundläggande sida.
  • För att skaffa JWT måste vi skicka in en POST-fråga som innehåller användarens Drupal-uppgifter. Användarnamnet och lösenordet måste skickas i ett base64-kodat format. För din bekvämlighet, se formatet för begäran nedan.
  • 
                     Request: POST <your_drupal_base_url>/rest_api/id_token
                     Header: 
                            Authorization: Basic base64encoded <username:password;>
                            Accept: application/json
                     Sample curl Request Format-
                     --location --request POST "<your_drupal_base_url>/rest_api/id_token' \"
                     --header 'Accept: application/json'\
                     --header 'Content-Type: application/json' \
                     --header 'Authorization: Basic base64encoded’ \'
                 
  • Dessutom kan du hänvisa till bilden av Postman-begäran för att få JWT från Drupal.
  • Drupal REST API JWT token slutpunkt
  • Ett lyckat svar returnerar JWT tillsammans med dess tokens utgång. (se bilden nedan)
  • Drupal REST API-id JWT-token lyckades
  • För att autentisera Drupal REST API:er med den mottagna JWT, kan du hänvisa till följande guide - Autentisera Drupal REST API:er.

4. OAuth 2.0-autentisering

  • För att autentisera åtkomst till Drupal-webbplats-API:er via REST API använder OAuth 2.0-metoden OAuth 2.0-protokollflödet. Detta innebär att du skaffar en säkerhetsåtkomsttoken, som sedan används för att autentisera åtkomst till din Drupal-webbplats. OAuth-autentiseringsmetoden tillhandahåller en åtkomsttoken som är mycket krypterad och säker, vilket säkerställer fullständig säkerhet för dina Drupal API:er. Det anses vara en av de säkraste metoderna för att skydda dina Drupal REST- eller JSONAPI API-slutpunkter mot obehörig åtkomst.
  • Navigera till API-autentisering fliken i REST API Authentication Module (/admin/config/people/rest_api_authentication/auth_settings)
  • Välj Kryssrutan Aktivera autentisering och klicka på Spara ovan inställningar knapp.
  • Välj alternativknappen OAuth/Access Token under knappen Save Above Settings.
  • Klicka nu på knappen Skapa ett nytt klient-ID och hemlighet.
  • Drupal välj metod för åtkomsttoken
  • MiniOrange API Authentication-modulen stöder två bidragstyper som kan användas för att få en åtkomsttoken:
  • Bevilja lösenord: I den här beviljandetypen kan du erhålla åtkomsttoken genom att skicka en POST-begäran som innehåller användarens Drupal-användarnamn och lösenord tillsammans med klient-ID som utfärdats av REST API-autentiseringsmodulen:
  • 
             Request: POST <drupal_base_url>/rest_api/access_token
             Body: 
                 grant_type = password
                 username   = drupal_username
                 password   = drupal_password 
                 client_id  = client_id
                 
             Sample curl Request Format-
             --location --request POST '<your_drupal_base_url>/rest_api/access_token' \
             --header 'Accept: application/json'\
             --header 'Content-Type: pplication/x-www-form-urlencoded' \
             --data-urlencode 'grant_type=password' \
             --data-urlencode 'client_id= ' \
             --data-urlencode 'username='\
             --data-urlencode 'password='
         
  • Du kan också hänvisa till bilden av Postman-förfrågan för att få en åtkomsttoken från Drupal med hjälp av lösenordsbeviljande.
  • Drupal Access-token Autentiseringsbegäran
  • Ett lyckat svar returnerar åtkomsttoken tillsammans med tokens utgång och tokentyp (se bilden nedan)
  • Drupal Access-token Autentiseringsbegäran
  • Bevilja kunduppgifter: I detta tillstånd kan du skaffa åtkomsttoken genom att göra en POST-begäran som innehåller klient-ID och klienthemlighet som utfärdats av REST API-autentiseringsmodulen tillsammans med användarens Drupal-användarnamn.
  • 
         Request: POST <drupal_base_url>/rest_api/access_token
         Body: 
             grant_type  = client_credentials
             client_id   = client_id
            client_secret = client_secret
            Username      = drupal_username
             
         Sample curl Request Format-
         --location --request POST '<your_drupal_base_url>/rest_api/access_token' \
         --header  'Accept: application/json'\
         --header 'Content-Type: pplication/x-www-form-urlencoded' \
         --data-urlencode 'grant_type=client_credentials' \
         --data-urlencode 'client_id= <Client_ID>'\
         --data-urlencode 'username=<drupal_username>' \
         --data-urlencode 'client_secret=<Client_secret>'
     
  • Du kan också hänvisa till bilden av Postman-begäran för att få en åtkomsttoken från Drupal med hjälp av klientuppgifterna.
  • Drupal Access-token Autentiseringsbegäran
  • Ett lyckat svar returnerar åtkomsttoken tillsammans med tokens utgång och tokentyp (se bilden nedan)
  • Drupal Access-token Autentiseringsbegäran
  • För att göra ett API-anrop för att få en åtkomsttoken. Vi kommer sedan att använda detta för att autentisera Drupal API för att få en användares informationsreferens detta länken.

5. Tredjepartsleverantörsautentisering

  • För att implementera den här metoden behöver du skaffa tokens från tredjepartsleverantörer som Google, Azure AD, etc. Dessa tokens gör att du kan komma åt Drupals REST API på ett säkert sätt.
  • För att använda extern identitetsleverantörsautentisering måste du konfigurera modulen genom att ange slutpunkten för användarinformation som tillhandahålls av din identitetsleverantör, samt användarnamnsattributet som är kopplat till din identitetsleverantör. När du väl har konfigurerat kan du autentisera alla Drupal API-förfrågningar med hjälp av token som tillhandahålls av din leverantör.
  • Navigera till API-autentisering fliken i REST API Authentication Module (/admin/config/people/rest_api_authentication/auth_settings)
  • Markera Kryssrutan Aktivera autentisering och slå Spara ovan inställningar knapp.
  • Under knappen Spara ovanför inställningar väljer du alternativknappen Extern identitetsleverantör.
  • I textrutan User Info Endpoint anger du slutpunkten för användarinformation för din identitetsleverantör. Detta gör att modulen kan hämta användarens information med hjälp av den medföljande token.
  • I fältet Användarnamnsattribut anger du attributnyckeln/namnet för din identitetsleverantör som den externa leverantören använder för att skicka användarnamnet.
  • Drupal väljer tredje parts autentiseringsmetod
  • För att skapa en användare i Drupal måste en POST-begäran göras tillsammans med Token som tas emot från identitetsleverantören.
  • 
             Request: POST <your_drupal_base_url>/entity/user?_format=json
             Header: 
                     Token: <Token_receievd_from_external_identity_provider>
                     Accept: application/jsonContent-Type: application/json
             Body:
             
                {
                  "name": [
                             {"value": "username"}
                     ],
                  "mail": [
                             {"value": "email"}
                     ],
                  "pass": [
                             {"value": "password"}
                     ],
                 "status": [
                             {"value": "1"}
                     ]
                }
          
             Sample curl Request Format-
             --location --request POST '<your_drupal_base_url>/entity/user?_format=json' \
             --header 'Accept: application/json' \
             --header 'Content-Type: application/json' \
             --header 'Token: ' \
             --data-raw   '   
              {
                 "name": [
                     {"value": "Username"}
                 ],
                 "mail": [
                     {"value": "email"}
                 ],
                 "pass": [
                     {"value": "Password"}
                 ],
                 "status": [
                     {"value": "1"}
                 ]
              }
     
             
  • Du kan hänvisa till bilden av Postman-förfrågan som läggs till nedan:
  • Drupal Begäran om tredjepartsautentisering
  • Ett lyckat svar returnerar användarinformationen som skapats -
  • Drupal Tredjepartsautentiseringssvar

24*7 Aktiv support

Om du stöter på några problem eller om du har några frågor är du välkommen att kontakta oss på drupalsupport@xecurify.com. Om du vill att några ytterligare funktioner ska inkluderas i modulen, vänligen kontakta oss, så kan vi skräddarsy det för dig. Om du vill kan vi också schemalägga ett onlinemöte för att hjälpa dig att konfigurera Drupal REST API-autentiseringsmodulen.

Ytterligare resurser

Våra övriga moduler

Hej där!

Behövs hjälp? Vi är här!

stödja
Kontakta miniOrange Support
framgång

Tack för din förfrågan.

Om du inte hör från oss inom 24 timmar, skicka gärna ett uppföljningsmail till info@xecurify.com