Zelfstudie: Uw API transformeren en beveiligen

In deze zelfstudie leert u hoe u algemene beleidsregels configureert om uw API te transformeren. Mogelijk wilt u uw API transformeren, zodat er geen persoonlijke back-endgegevens worden weergegeven. Als u een API transformeert, kunt u de informatie over de technologiestack verbergen die in de back-end wordt uitgevoerd, of de oorspronkelijke URL's verbergen die worden weergegeven in de hoofdtekst van het HTTP-antwoord van de API.

In deze zelfstudie wordt ook uitgelegd hoe u beveiliging toevoegt aan uw back-end-API door een frequentielimietbeleid te configureren, zodat de API niet wordt gebruikt door ontwikkelaars. Zie API Management beleid voor meer beleidsopties.

Notitie

Standaard configureert API Management een globaal forward-request beleid. Het forward-request beleid is nodig voor de gateway om een aanvraag naar een back-endservice te voltooien.

In deze zelfstudie leert u het volgende:

  • Een API transformeren om antwoordheaders te verwijderen
  • Oorspronkelijke URL's in de hoofdtekst van het API-antwoord vervangen door API Management gateway-URL's
  • Een API beveiligen door beleid voor frequentielimieten (beperking) toe te voegen
  • De transformaties testen

Policies in portal

Vereisten

Ga naar uw API Management-exemplaar

  1. Zoek in de Azure-portal naar API Management-services en selecteer dit.

    Select API Management services

  2. Selecteer uw API Management-exemplaar op de pagina API Management-services.

    Select your API Management instance

Een API transformeren om antwoordheaders te verwijderen

In deze sectie wordt beschreven hoe u de HTTP-headers kunt verbergen die u niet wilt weergeven aan gebruikers. Verwijder bijvoorbeeld de volgende headers in het HTTP-antwoord:

  • X-Powered-By
  • X-AspNet-Version

Het oorspronkelijke antwoord testen

Het oorspronkelijke antwoord zien:

  1. Selecteer API’s in uw service-exemplaar van API Management.
  2. Selecteer Demo Conference-API in de API-lijst.
  3. Selecteer bovenaan het scherm het tabblad Testen.
  4. Selecteer de bewerking GetSpeakers en selecteer vervolgens Verzenden.

Het oorspronkelijke API-antwoord moet er ongeveer uitzien als het volgende antwoord:

Original API response

Zoals u ziet, bevat het antwoord de headers X-AspNet-Version en X-Powered-By.

Transformatiebeleid instellen

In dit voorbeeld ziet u hoe u de beleidseditor op basis van formulieren gebruikt, waarmee u veel beleidsregels kunt configureren zonder dat u de XML-instructies van het beleid rechtstreeks hoeft te bewerken.

  1. Selecteer Demo Conference-API>Ontwerpen>Alle bewerkingen.

  2. Selecteer + Beleid toevoegen in de sectie Uitgaande verwerking.

    Navigate to outbound policy

  3. Selecteer Kopteksten instellen in het venster Uitgaand beleid toevoegen.

    Set HTTP header policy

  4. Ga als volgt te werk om het setheadersbeleid te configureren:

    1. Voer onder NaamX-Powered-By in. Selecteer verwijderen onder Actie.
    2. Selecteer + Koptekst toevoegen.
    3. Voer onder NaamX-AspNet-Version in. Selecteer verwijderen onder Actie.

    Set HTTP header

  5. Selecteer Opslaan. Er worden twee beleidselementen voor set-headers weergegeven in de sectie Uitgaande verwerking .

Oorspronkelijke URL's in de hoofdtekst van het API-antwoord vervangen door API Management gateway-URL's

In deze sectie wordt beschreven hoe u de oorspronkelijke URL's vervangt die worden weergegeven in de hoofdtekst van het HTTP-antwoord van de API door API Management gateway-URL's. Mogelijk wilt u de oorspronkelijke back-end-URL's van gebruikers verbergen.

Het oorspronkelijke antwoord testen

Het oorspronkelijke antwoord zien:

  1. Selecteer Demo Conference-API>Testen.

  2. Selecteer de bewerking GetSpeakers en selecteer vervolgens Verzenden.

    Zoals u ziet, bevat het antwoord de oorspronkelijke back-end-URL's:

    Original URLs in response

Transformatiebeleid instellen

In dit voorbeeld gebruikt u de editor voor beleidscode om het XML-fragment van het beleid rechtstreeks toe te voegen aan de beleidsdefinitie.

  1. Selecteer Demo Conference-API>Ontwerpen>Alle bewerkingen.

  2. Selecteer in de sectie Uitgaande verwerking het pictogram van de code-editor (</>).

    Navigate to outbound policy code editor

  3. Plaats de cursor in het <outbound> element op een lege regel. Selecteer vervolgens Fragmenten weergeven in de rechterbovenhoek van het scherm.

    Select show snippets

  4. Selecteer in het rechtervenster onder Transformatiebeleid de optie URL’s in inhoud verbergen.

    Het <redirect-content-urls /> element wordt toegevoegd aan de cursor.

    Mask URLs in content

  5. Selecteer Opslaan.

Een API beveiligen door beleid voor frequentielimieten toe te voegen

In deze sectie wordt beschreven hoe u beveiliging toevoegt aan uw back-end-API door frequentielimieten te configureren, zodat de API niet wordt gebruikt door ontwikkelaars. In dit voorbeeld wordt de limiet ingesteld op drie aanroepen per 15 seconden voor elke abonnements-id. Na 15 seconden kan een ontwikkelaar opnieuw proberen een API aan te roepen.

  1. Selecteer Demo Conference-API>Ontwerpen>Alle bewerkingen.

  2. Selecteer in de sectie Voor binnenkomende verwerking het pictogram van de code-editor (</>).

    Navigate to inbound policy

  3. Plaats de cursor in het <inbound> element op een lege regel. Selecteer vervolgens Fragmenten weergeven in de rechterbovenhoek van het scherm.

    Set inbound policy

  4. Selecteer in het rechtervenster, onder Beleid voor toegangsbeperking, de aanroepsnelheid per sleutel beperken.

    Het <rate-limit-by-key /> element wordt toegevoegd aan de cursor.

    Select limit call rate per key

  5. Wijzig uw <rate-limit-by-key /> code in het <inbound> element in de volgende code. Selecteer vervolgens Opslaan.

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

De transformaties testen

Als u nu de code in de code-editor bekijkt, ziet uw beleid eruit als de volgende code:

<policies>
   <inbound>
     <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
     <base />
   </inbound>
   <backend>
     <base />
   </backend>
   <outbound>
     <set-header name="X-Powered-By" exists-action="delete" />
     <set-header name="X-AspNet-Version" exists-action="delete" />
     <redirect-content-urls />
     <base />
   </outbound>
   <on-error>
     <base />
   </on-error>
</policies>

In de rest van deze sectie worden de beleidstransformaties getest die u in dit artikel hebt ingesteld.

De verwijderde anwoordheaders testen

  1. Selecteer Demo Conference-API>Testen.

  2. Selecteer de bewerking GetSpeakers en selecteer Verzenden.

    Zoals u ziet, zijn de headers verwijderd:

    Stripped response headers

De vervangen URL testen

  1. Selecteer Demo Conference-API>Testen.

  2. Selecteer de bewerking GetSpeakers en selecteer Verzenden.

    Zoals u ziet, worden de URL's vervangen.

    Replaced URLs

De frequentielimiet testen

  1. Selecteer Demo Conference-API>Testen.

  2. Selecteer de bewerking GetSpeakers. Selecteer drie keer achter elkaar de optie Verzenden.

    Nadat u de aanvraag drie keer hebt verzonden, krijgt u het antwoord 429 Te veel aanvragen .

    Too many requests

  3. Wacht 15 seconden of meer en selecteer Opnieuw verzenden . Deze keer ontvangt u, als het goed is, het antwoord 200 OK.

Volgende stappen

In deze zelfstudie heeft u het volgende geleerd:

  • Een API transformeren om antwoordheaders te verwijderen
  • Oorspronkelijke URL's in de hoofdtekst van het API-antwoord vervangen door API Management gateway-URL's
  • Een API beveiligen door beleid voor frequentielimieten toe te voegen
  • De transformaties testen

Ga door naar de volgende zelfstudie: