Sikker API'er ved hjælp af abonnementer
Når du publicerer API'er via API-administration, er det nemt og almindeligt at sikre adgang til disse API'er ved hjælp af abonnementsnøgler. Udviklere, der skal bruge de publicerede API'er, skal inkludere en gyldig abonnementsnøgle i HTTP-anmodninger, når de foretager kald til disse API'er. API-administrationsgatewayen afviser opkald uden en abonnementsnøgle, og opkaldene videresendes ikke til back end-tjenesterne.
Hvis du vil have en abonnementsnøgle til at få adgang til API'er, skal du have et abonnement. Et abonnement er i bund og grund en navngivet objektbeholder for et par abonnementsnøgler. Udviklere, der har brug for at bruge de publicerede API'er, kan få abonnementer. Og de behøver ikke godkendelse fra API-udgivere. API-udgivere kan også oprette abonnementer direkte til API-forbrugere.
Seddel
API Management understøtter også andre mekanismer til sikring af adgang til API'er, herunder: OAuth2.0, klientcertifikater og IP-tilladelsesliste.
Abonnementer og nøgler
En abonnementsnøgle er en entydig automatisk genereret nøgle, der kan overføres i headerene for klientanmodningen eller som en forespørgselsstrengparameter. Nøglen er direkte relateret til et abonnement, som kan være begrænset til forskellige områder. Abonnementer giver dig detaljeret kontrol over tilladelser og politikker.
De tre primære abonnementsområder er:
| Omfanget | Detaljer |
|---|---|
| Alle API'er | Gælder for alle API'er, der er tilgængelige fra gatewayen |
| Enkelt API | Dette område gælder for en enkelt importeret API og alle dens slutpunkter |
| Produkt | Et produkt er en samling af en eller flere API'er, som du konfigurerer i API Management. Du kan tildele API'er til mere end ét produkt. Produkter kan have forskellige adgangsregler, forbrugskvoter og vilkår for anvendelse. |
Programmer, der kalder en beskyttet API, skal inkludere nøglen i alle anmodninger.
Du kan til enhver tid genoprette disse abonnementsnøgler, hvis du f.eks. har mistanke om, at en nøgle er blevet delt med uautoriserede brugere.
Hvert abonnement har to nøgler, en primær og en sekundær. Hvis du har to taster, bliver det nemmere, når du har brug for at genoprette en nøgle. Hvis du f.eks. vil ændre den primære nøgle og undgå nedetid, skal du bruge den sekundære nøgle i dine apps.
For produkter, hvor abonnementer er aktiveret, skal klienter angive en nøgle, når de foretager kald til API'er i det pågældende produkt. Udviklere kan få en nøgle ved at sende en abonnementsanmodning. Hvis du godkender anmodningen, skal du sende dem abonnementsnøglen sikkert, f.eks. i en krypteret meddelelse. Dette trin er en central del af API Management-arbejdsprocessen.
Ring til en API med abonnementsnøglen
Programmer skal indeholde en gyldig nøgle i alle HTTP-anmodninger, når de foretager kald til API-slutpunkter, der er beskyttet af et abonnement. Nøgler kan overføres i anmodningsheaderen eller som en forespørgselsstreng i URL-adressen.
Standardheadernavnet er Ocp-Apim-Subscription-Key, og standardforespørgselsstrengen er subscription-key.
Hvis du vil teste dine API-kald, kan du bruge udviklerportalen eller kommandolinjeværktøjer, f.eks. krøller. Her er et eksempel på en GET anmodning ved hjælp af udviklerportalen, som viser headeren for abonnementsnøgle:
for udviklerportalen
Sådan kan du overføre en nøgle i anmodningsheaderen ved hjælp af krølle:
curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path
Her er et eksempel krølle kommando, der overfører en nøgle i URL-adressen som en forespørgselsstreng:
curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>
Hvis nøglen ikke overføres i headeren eller som en forespørgselsstreng i URL-adressen, får du et 401 Adgang nægtet svar fra API-gatewayen.