Abonnementen maken in Azure API Management

In Azure API Management zijn abonnementen de meest voorkomende manier voor API-gebruikers om toegang te krijgen tot API's die zijn gepubliceerd via een API Management-exemplaar. In dit artikel vindt u een overzicht van het concept.

Wat zijn abonnementen?

Door API's te publiceren via API Management, kunt u api-toegang eenvoudig beveiligen met behulp van abonnementssleutels. Ontwikkelaars die de gepubliceerde API's moeten gebruiken, moeten een geldige abonnementssleutel in HTTP-aanvragen opnemen bij het aanroepen van deze API's. Zonder een geldige abonnementssleutel zijn de aanroepen:

  • Onmiddellijk geweigerd door de API Management-gateway.
  • Niet doorgestuurd naar de back-endservices.

Voor toegang tot API's hebben ontwikkelaars een abonnement en een abonnementssleutel nodig. Een abonnement is een benoemde container voor een paar abonnementssleutels.

Bovendien

  • Ontwikkelaars kunnen abonnementen krijgen zonder goedkeuring van API-uitgevers.
  • API-uitgevers kunnen rechtstreeks abonnementen maken voor API-gebruikers.

Tip

API Management ondersteunt ook andere mechanismen voor het beveiligen van toegang tot API's, waaronder de volgende voorbeelden:

Abonnementssleutels beheren

Regelmatig opnieuw genereren van sleutels is een veelvoorkomende beveiligingsmaatregel. Net als de meeste Azure-services waarvoor een abonnementssleutel is vereist, genereert API Management sleutels in paren. Elke toepassing die de service gebruikt, kan overschakelen van sleutel A naar sleutel B en sleutel A opnieuw genereren met minimale onderbreking en vice versa.

Notitie

  • API Management biedt geen ingebouwde functies voor het beheren van de levenscyclus van abonnementssleutels, zoals het instellen van vervaldatums of het automatisch roteren van sleutels. U kunt werkstromen ontwikkelen om deze processen te automatiseren met behulp van hulpprogramma's zoals Azure PowerShell of de Azure SDK's.
  • Om tijdsgebonden toegang tot API's af te dwingen, kunnen API-uitgevers mogelijk beleidsregels gebruiken met abonnementssleutels of een mechanisme gebruiken dat ingebouwde verlooptijd biedt, zoals verificatie op basis van tokens.

Bereik van abonnementen

Abonnementen kunnen worden gekoppeld aan verschillende bereiken: product, alle API's of een afzonderlijke API.

Abonnementen voor een product

Normaal gesproken werden abonnementen in API Management gekoppeld aan één productbereik. Ontwikkelaars:

  • De lijst met producten op de ontwikkelaarsportal gevonden.
  • Abonnementsaanvragen ingediend voor de producten die ze wilden gebruiken.
  • Gebruik de sleutels in deze abonnementen (automatisch goedgekeurd of door API-uitgevers) voor toegang tot alle API's in het product.

Op dit moment worden in de ontwikkelaarsportal alleen de productbereikabonnementen weergegeven in de sectie Gebruikersprofiel .

Productabonnementen

Abonnementen voor alle API's of een afzonderlijke API

U kunt ook sleutels maken die toegang verlenen tot:

  • Eén API of
  • Alle API's in een API Management-exemplaar.

In dergelijke gevallen hoeft u geen product te maken en er eerst API's aan toe te voegen.

Abonnement met alle toegang

Elk API Management exemplaar wordt geleverd met een onveranderbaar abonnement met alle API's (ook wel een abonnement met alle toegang genoemd). Dit ingebouwde abonnement maakt het eenvoudig om API's te testen en fouten op te sporen in de testconsole.

Waarschuwing

Het abonnement voor alle toegang biedt toegang tot elke API in het API Management-exemplaar en mag alleen worden gebruikt door geautoriseerde gebruikers. Gebruik dit abonnement nooit voor routine-API-toegang of sluit de abonnementssleutel voor alle toegang in client-apps in.

Notitie

Als u een abonnement met API-bereik of het abonnement voor alle toegang gebruikt, worden beleidsregels die zijn geconfigureerd in het productbereik, niet toegepast op aanvragen van dat abonnement.

Zelfstandige abonnementen

API Management staat ook zelfstandige abonnementen toe, die niet zijn gekoppeld aan een ontwikkelaarsaccount. Deze functie is nuttig in scenario's die vergelijkbaar zijn met verschillende ontwikkelaars of teams die een abonnement delen.

Als u een abonnement maakt zonder een eigenaar toe te wijzen, wordt dit een zelfstandig abonnement. Als u ontwikkelaars en de rest van uw team toegang wilt verlenen tot de zelfstandige abonnementssleutel, gaat u als volgende te werk:

  • Deel de abonnementssleutel handmatig.
  • Gebruik een aangepast systeem om de abonnementssleutel beschikbaar te maken voor uw team.

Abonnementen maken en beheren in Azure Portal

API-uitgevers kunnen abonnementen rechtstreeks in de Azure Portal maken.

Wanneer een abonnement in de portal wordt gemaakt, heeft deze de status Actief , wat betekent dat een abonnee een gekoppelde API kan aanroepen met behulp van een geldige abonnementssleutel. U kunt de status van het abonnement zo nodig wijzigen. U kunt bijvoorbeeld het abonnement onderbreken, annuleren of verwijderen om API-toegang te voorkomen.

Abonnementsvereiste voor API- of producttoegang in- of uitschakelen

Wanneer u een API maakt, is standaard een abonnementssleutel vereist voor API-toegang. Wanneer u een product maakt, is standaard een abonnementssleutel vereist voor toegang tot api's die aan het product worden toegevoegd. In bepaalde scenario's wil een API-uitgever mogelijk een product of een bepaalde API publiceren naar het publiek zonder dat er abonnementen nodig zijn. Hoewel een uitgever ervoor kan kiezen om onbeveiligde (anonieme) toegang tot bepaalde API's in te schakelen, wordt het configureren van een ander mechanisme voor beveiligde clienttoegang aanbevolen.

Waarschuwing

Wees voorzichtig bij het configureren van een product of een API waarvoor geen abonnement is vereist. Deze configuratie is mogelijk te ruim en kan een API kwetsbaarder maken voor bepaalde API-beveiligingsbedreigingen.

U kunt de abonnementsvereiste uitschakelen op het moment dat u een API of product maakt, of op een later tijdstip.

De abonnementsvereiste uitschakelen met behulp van de portal:

  • Vereiste voor product uitschakelen: schakel abonnement vereist uit op de pagina Instellingen van het product
  • Vereiste voor API uitschakelen: schakel abonnement vereist uit op de pagina Instellingen van de API.

Nadat de abonnementsvereiste is uitgeschakeld, is de geselecteerde API of API's toegankelijk zonder abonnementssleutel.

Hoe API Management aanvragen met of zonder abonnementssleutels verwerkt

API-aanvraag met een abonnementssleutel

Wanneer API Management een API-aanvraag ontvangt van een client met een abonnementssleutel, wordt de aanvraag verwerkt volgens deze regels:

  1. Controleer of het een geldige sleutel is die is gekoppeld aan een actief abonnement:

    • Een abonnement dat is afgestemd op de API
    • Een abonnement dat is gericht op een product dat is toegewezen aan de API
    • Een abonnement dat is gericht op alle API's
    • Het serviceabonnement (ingebouwd abonnement voor alle toegang)

    Als er een geldige sleutel voor een actief abonnement in een geschikt bereik wordt opgegeven, is toegang toegestaan. Beleidsregels worden toegepast, afhankelijk van de configuratie van de beleidsdefinitie in dat bereik.

  2. Anders wordt de toegang geweigerd (fout 401 Toegang geweigerd).

API-aanvraag zonder abonnementssleutel

Wanneer API Management een API-aanvraag ontvangt van een client zonder abonnementssleutel, wordt de aanvraag verwerkt volgens deze regels:

  1. Controleer eerst of er een product bestaat dat de API bevat, maar waarvoor geen abonnement (een open product) is vereist. Als het geopende product bestaat, verwerkt u de aanvraag in de context van de API's, beleidsregels en toegangsregels die voor het product zijn geconfigureerd.
  2. Als er geen geopend product met inbegrip van de API wordt gevonden, controleert u of voor de API een abonnement is vereist. Als er geen abonnement is vereist, verwerkt u de aanvraag in de context van die API en bewerking.
  3. Als er geen geconfigureerd product of API wordt gevonden, wordt de toegang geweigerd (fout 401 Toegang geweigerd).

Overzichtstabel

De volgende tabel geeft een overzicht van hoe de gateway API-aanvragen met of zonder abonnementssleutels verwerkt in verschillende scenario's. Configuraties die mogelijk onbedoelde, anonieme API-toegang mogelijk maken, worden genoteerd.

Voor alle producten die zijn toegewezen aan de API is een abonnement vereist API vereist abonnement API-aanroep met abonnementssleutel API-aanroep zonder abonnementssleutel Typische scenario's
✔️ ✔️ Toegang toegestaan:

• Product-scoped sleutel
• Api-scoped sleutel
• Alle API's-sleutel
• Sleutel met servicebereik

Toegang geweigerd:

• Andere sleutel die niet is afgestemd op het toepasselijke product of de API
Toegang geweigerd Beveiligde API-toegang met een abonnement met een productbereik of EEN API-bereik
✔️ Toegang toegestaan:

• Product-scoped sleutel
• Api-scoped sleutel
• Alle API's-sleutel
• Sleutel met servicebereik

Toegang geweigerd:

• Andere sleutel die niet is afgestemd op het toepasselijke product of de API
Toegang toegestaan (API-context) • Beveiligde API-toegang met een abonnement met productbereik

• Anonieme toegang tot API. Als anonieme toegang niet is bedoeld, configureert u beleid op API-niveau om verificatie en autorisatie af te dwingen.
1 ✔️ Toegang toegestaan:

• Product-scoped sleutel
• Api-scoped sleutel
• Alle API's-sleutel
• Sleutel met servicebereik

Toegang geweigerd:

• Andere sleutel die niet is afgestemd op het toepasselijke product of de API
Toegang toegestaan (productcontext openen) • Beveiligde API-toegang met abonnement met API-bereik

• Anonieme toegang tot API. Als anonieme toegang niet is bedoeld, configureert u met productbeleid om verificatie en autorisatie af te dwingen
1 Toegang toegestaan:

• Product-scoped sleutel
• Api-scoped sleutel
• Alle API's-sleutel
• Sleutel met servicebereik

Toegang geweigerd:

• Andere sleutel die niet is afgestemd op het toepasselijke product of de API
Toegang toegestaan (productcontext openen) Anonieme toegang tot API. Als anonieme toegang niet is bedoeld, configureert u met productbeleid om verificatie en autorisatie af te dwingen

1 Er bestaat een open product.

Overwegingen

  • API-toegang in een productcontext is hetzelfde, ongeacht of het product wordt gepubliceerd of niet. Als u de publicatie van het product ongedaan maakt, wordt het verborgen in de ontwikkelaarsportal, maar worden nieuwe of bestaande abonnementssleutels niet ongeldig gemaakt.
  • Zelfs als voor een product of API geen abonnement is vereist, kan nog steeds een geldige sleutel van een actief abonnement worden gebruikt die toegang tot het product of de API mogelijk maakt.
  • API-toegang 'context' betekent de beleidsregels en toegangsbeheer die worden toegepast op een bepaald bereik (bijvoorbeeld API of product).

Volgende stappen

Meer informatie over API Management: