Ghid rapid pentru autentificarea Shell
Introducere
API-ul de autentificare Shell permite aplicațiilor partenerilor să se autentifice la API Gateway folosind fluxul de acreditări client OAuth 2.0. Această API furnizează tokenuri de acces cu durată limitată care autorizează solicitările către API-urile Shell, asigurând o comunicare securizată între aplicația dvs. și serviciile Shell.
| Avantaj | Descriere |
|---|---|
| Acces securizat | Standardul OAuth 2.0 cu tokenuri cu durată limitată |
| Integrare simplă | Un singur punct final pentru generarea tokenurilor |
| Mediile flexibile | Suport atât pentru mediile de testare, cât și pentru cele de producție |
Autentificare
Notă privind migrarea
Această API oferă atât versiunea v1, cât și versiunea v2 a punctului final pentru tokenul OAuth. Versiunea 1 este învechită și va fi eliminată într-o viitoare fereastră de actualizare. Noile integrări ar trebui să utilizeze v2, iar utilizatorii existenți ar trebui să migreze la v2 cât mai curând posibil. Diferențele principale se regăsesc în formatul răspunsului: v2 utilizează denumirile standard ale câmpurilor OAuth (expires_in în loc de expires_in(seconds) și Bearer în loc de BearerToken).
Fluxul de autorizare
- Solicitați ID-ul clientului și cheia secretă
Contactați echipa API Shell pentru a solicita acces la autentificarea OAuth. Echipa API Shell vă va furniza un ID de client și o cheie secretă.
- Solicitați tokenul Bearer
Odată ce ați obținut datele de autentificare, efectuați o solicitare către punctul final pentru tokenul OAuth al API-ului de autentificare Shell folosind datele de autentificare.
Exemplu de solicitare:
curl --location --request POST 'https://api-test.shell.com/v2/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=**************' \
--data-urlencode 'client_secret=**************' \
--data-urlencode 'grant_type=client_credentials'Veți primi un token Bearer în răspuns:
{
"access_token": "**************",
"expires_in": "899",
"token_type": "Bearer"
}Notă: Timpul de expirare al tokenului Bearer este exprimat în secunde.
- Autorizarea cererilor API
Când apelați API-urile Shell, includeți următoarele în antetul cererii.
Authorization: Bearer access_tokenURL-uri de bază
| Mediu | URL |
|---|---|
| Test | https://api-test.shell.com |
| Producție | https://api.shell.com |
Integrare de bază
1. Generare token OAuth
Descriere: Solicitați un token de acces OAuth utilizând datele de autentificare ale clientului. API-ul returnează un token Bearer cu durată limitată, care trebuie inclus în antetul „Authorization” al tuturor solicitărilor API ulterioare. Din motive de securitate, se utilizează metoda POST în locul metodei GET pentru a preveni stocarea în cache.
Cale: POST /v2/oauth/token
Exemplu de cerere
curl --location --request POST 'https://api-test.shell.com/v2/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'client_id=twuwywTYUHAH6AHHJ' \
--data-urlencode 'client_secret=yuahaYThdvdowoUUU7wjsjMM' \
--data-urlencode 'grant_type=client_credentials'Parametri de solicitare
| Parametru | Tip | Obligatoriu | Descriere |
|---|---|---|---|
| client_id | șir de caractere | Da | ID-ul clientului furnizat de Shell |
| client_secret | șir de caractere | Da | Secretul clientului furnizat de Shell |
| grant_type | șir de caractere | Da | Valoarea tipului de autorizare pentru acces (utilizați „client_credentials”) |
Exemplu de răspuns
{
"access_token": "NiE3gzPNVFpwYYMyyWu6mGFYtKN5",
"expires_in": "899",
"token_type": "Bearer"
}Parametrii răspunsului
| Parametru | Tip | Descriere |
|---|---|---|
| access_token | șir | Token de acces generat, destinat utilizării în solicitările API |
| expires_in | șir de caractere | Durata de expirare în secunde |
| token_type | șir de caractere | Tipul tokenului (Bearer) |
Gestionarea erorilor
API-ul utilizează coduri de stare HTTP standard. În cazul unei erori, vor fi furnizate detalii suplimentare în corpul răspunsului.
| Cod de eroare | Descriere | Soluție |
|---|---|---|
| 400 | Cerere incorectă - Cererea conține sintaxă incorectă sau nu poate fi procesată | Verificați dacă toți parametrii necesari sunt incluși și formatați corespunzător |
| 401 | ID client nevalid - Lipsește antetul de autorizare sau datele de autentificare sunt nevalide | Verificați dacă client_id și client_secret sunt corecte și codificate corespunzător |
| 403 | Acces interzis - Clientul nu are drepturi de acces | Contactați echipa Shell API pentru a vă verifica permisiunile de acces |
| 404 | Nu a fost găsit - Imposibil de identificat proxy-ul pentru URL-ul solicitat | Verificați dacă URL-ul punctului final este corect pentru mediul dvs. |
| 405 | Metodă nepermisă - Metoda HTTP nu este acceptată pentru această resursă | Asigurați-vă că utilizați metoda POST pentru punctul final al tokenului |
| 500 | Eroare internă a serverului - Execuția a eșuat pe server | Reîncercați solicitarea; contactați serviciul de asistență Shell dacă problema persistă |
