Securizați API-urile utilizând abonamente
Atunci când publicați API-uri prin API Management, este ușor și obișnuit să securizați accesul la acele API-uri utilizând chei de abonament. Dezvoltatorii care trebuie să consume API-urile publicate trebuie să includă o cheie de abonament validă în solicitările HTTP atunci când efectuează apeluri către acele API-uri. Gateway-ul de gestionare API respinge apelurile fără o cheie de abonament și apelurile nu sunt redirecționate către serviciile back-end.
Pentru a obține o cheie de abonament pentru accesarea API-urilor, este necesar un abonament. Un abonament este în esență un container numit pentru o pereche de chei de abonament. Dezvoltatorii care trebuie să consume API-urile publicate pot obține abonamente. Și nu au nevoie de aprobarea editorilor API. De asemenea, editorii API pot crea abonamente direct pentru consumatorii API.
Notă
Gestionarea API acceptă, de asemenea, alte mecanisme pentru securizarea accesului la API-uri, inclusiv: OAuth2.0, certificate client și lista de permisiuni IP.
Abonamente și chei
O cheie de abonament este o cheie unică generată automat care poate fi transmisă în anteturile solicitării clientului sau ca parametru de șir de interogare. Cheia este direct legată de un abonament, care poate fi limitat la diferite zone. Abonamentele vă oferă control granular asupra permisiunilor și politicilor.
Cele trei domenii principale de abonament sunt:
| Domeniu de acoperire | Detalii |
|---|---|
| Toate API-urile | Se aplică fiecărui API accesibil de la gateway |
| API unic | Acest domeniu se aplică unui singur API importat și tuturor punctelor sale finale |
| Produs | Un produs este o colecție de unul sau mai multe API-uri pe care le configurați în Gestionarea API. Puteți atribui API-uri mai multor produse. Produsele pot avea reguli de acces, cote de utilizare și termeni de utilizare diferite. |
Aplicațiile care apelează un API protejat trebuie să includă cheia în fiecare solicitare.
Puteți regenera aceste chei de abonament în orice moment, de exemplu, dacă bănuiți că o cheie a fost partajată cu utilizatori neautorizați.
Fiecare abonament are două chei, una primară și una secundară. Având două chei, este mai ușor atunci când trebuie să regenerați o cheie. De exemplu, dacă doriți să schimbați cheia primară și să evitați timpul de nefuncționare, utilizați cheia secundară în aplicații.
Pentru produsele în care abonamentele sunt activate, clienții trebuie să furnizeze o cheie atunci când efectuează apeluri către API-urile din acel produs. Dezvoltatorii pot obține o cheie trimițând o cerere de abonament. Dacă aprobați solicitarea, trebuie să le trimiteți cheia de abonament în siguranță, de exemplu, într-un mesaj criptat. Acest pas este o parte esențială a fluxului de lucru API Management.
Apelați un API cu cheia de abonament
Aplicațiile trebuie să includă o cheie validă în toate solicitările HTTP atunci când efectuează apeluri către punctele finale API care sunt protejate de un abonament. Cheile pot fi transmise în antetul solicitării sau ca șir de interogare în adresa URL.
Numele implicit al antetului este Ocp-Apim-Subscription-Key, iar șirul de interogare implicit este subscription-key.
Pentru a testa apelurile API, puteți utiliza portalul pentru dezvoltatori sau instrumente de linie de comandă, cum ar fi curl. Iată un exemplu de GET solicitare care utilizează portalul pentru dezvoltatori, care afișează antetul cheii de abonament:
Iată cum puteți transmite o cheie în antetul cererii folosind curl:
curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path
Iată un exemplu de comandă curl care transmite o cheie în URL ca șir de interogare:
curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>
Dacă cheia nu este transmisă în antet sau ca șir de interogare în adresa URL, primiți un răspuns 401 Acces refuzat de la gateway-ul API.