Zelfstudie: Uw API transformeren en beveiligen
In de zelfstudie ziet u hoe u uw API kunt transformeren zodat deze geen persoonlijke informatie over de privéback-end weergeeft. U kunt bijvoorbeeld de gegevens verbergen over de technologiestack die wordt uitgevoerd voor de back-end. U kunt ook de oorspronkelijke URL's verbergen die worden weergegeven in de hoofdtekst van het HTTP-antwoord van de API, en deze in plaats hiervan omleiden naar de APIM-gateway.
In deze zelfstudie kunt u ook zien hoe eenvoudig het is om beveiliging toe te voegen voor uw back-end-API, door een frequentielimiet te configureren met Azure API Management. U kunt bijvoorbeeld de frequentie van API-aanroepen beperken, zodat de API niet te veel wordt gebruikt door ontwikkelaars. Zie API Management-beleid voor meer informatie.
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 APIM-gateway-URL's
- Een API beveiligen door beleid voor frequentielimieten (beperking) toe te voegen
- De transformaties testen
Vereisten
- Informatie over de terminologie van Azure API Management.
- Inzicht in het beleidsconcept in Azure API Management.
- Voltooi de volgende quickstart: Een Azure API Management-exemplaar maken.
- Voltooi ook de volgende zelfstudie: Uw eerste API importeren en publiceren.
Ga naar uw API Management-exemplaar
Zoek in de Azure-portal naar API Management-services en selecteer dit.
Selecteer uw API Management-exemplaar op de pagina API Management-services.
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. Dit voorbeeld laat zien hoe u de volgende headers kunt verwijderen in het HTTP-antwoord:
- X-Powered-By
- X-AspNet-Version
Het oorspronkelijke antwoord testen
Het oorspronkelijke antwoord zien:
- Selecteer API’s in uw service-exemplaar van API Management.
- Selecteer Demo Conference-API in de API-lijst.
- Selecteer bovenaan het scherm het tabblad Testen.
- Selecteer de bewerking GetSpeakers en selecteer Verzenden.
Het oorspronkelijke antwoord moet er ongeveer uitzien als op deze afbeelding:
Zoals u ziet, bevat het antwoord de headers X-AspNet-Version en X-Powered-By.
Transformatiebeleid instellen
Selecteer Demo Conference-API > Ontwerpen > Alle bewerkingen.
Selecteer in de sectie Uitgaande verwerking het pictogram code-editor ( </> ).
Plaats de cursor in het <uitgaande> element en selecteer Fragmenten weergeven in de rechterbovenhoek.
Selecteer in het rechtervenster onder Transformatiebeleid twee keer HTTP-header instellen (om twee beleidsfragmenten in te voegen).
Wijzig de code <outbound> zodat deze er als volgt uitziet:
<set-header name="X-Powered-By" exists-action="delete" /> <set-header name="X-AspNet-Version" exists-action="delete" />
Selecteer Opslaan.
Oorspronkelijke URL's in de hoofdtekst van het API-antwoord vervangen door APIM-gateway-URL's
In deze sectie ziet u hoe u de oorspronkelijke URL's kunt verbergen die worden weergegeven in de hoofdtekst van het HTTP-antwoord van de API, en deze in plaats hiervan kunt omleiden naar de APIM-gateway.
Het oorspronkelijke antwoord testen
Het oorspronkelijke antwoord zien:
Selecteer Demo Conference-API > Testen.
Selecteer de bewerking GetSpeakers en selecteer Verzenden.
Zoals u ziet, bevat het antwoord de oorspronkelijke back-end-URL's:
Transformatiebeleid instellen
- Selecteer Demo Conference-API > Alle bewerkingen > Ontwerpen.
- Selecteer in de sectie Uitgaande verwerking het pictogram code-editor ( </> ).
- Plaats de cursor in het <uitgaande> element en selecteer Fragmenten weergeven in de rechterbovenhoek.
- Selecteer in het rechtervenster onder Transformatiebeleid de optie URL’s in inhoud verbergen.
- Selecteer Opslaan.
Een API beveiligen door beleid voor frequentielimieten toe te voegen
In deze sectie wordt beschreven hoe u beveiliging voor uw back-end-API kunt toevoegen door frequentielimieten te configureren. U kunt bijvoorbeeld de frequentie van API-aanroepen beperken zodat de API niet te veel wordt gebruikt door ontwikkelaars. In dit voorbeeld is de limiet ingesteld op 3 aanroepen per 15 seconden voor elke abonnements-id. Na 15 seconden kan een ontwikkelaar de API opnieuw proberen aan te roepen.
Selecteer Demo Conference-API > Alle bewerkingen > Ontwerpen.
Selecteer in de sectie Inkomende verwerking het pictogram code-editor ( </> ).
Plaats de cursor in het <inkomende> element en selecteer Fragmenten weergeven in de rechterbovenhoek.
Selecteer in het rechtervenster onder Toegang tot beperkingsbeleid de optie + Aantal oproepen per sleutel beperken.
Wijzig de code rate-limit-by-key (in het element <inbound> ) in de volgende code:
<rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
De transformaties testen
Als u nu naar de code in de code-editor kijkt, ziet uw beleid er als volgt uit:
<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
Selecteer Demo Conference-API > Testen.
Selecteer de bewerking GetSpeakers en selecteer Verzenden.
Zoals u ziet, zijn de headers verwijderd:
De vervangen URL testen
Selecteer Demo Conference-API > Testen.
Selecteer de bewerking GetSpeakers en selecteer Verzenden.
Zoals u ziet, is de URL vervangen.
De frequentielimiet testen
Selecteer Demo Conference-API > Testen.
Selecteer de bewerking GetSpeakers. Selecteer drie keer achter elkaar de optie Verzenden.
Nadat de aanvraag 3 keer is verzonden, ontvangt u het antwoord 429 Te veel aanvragen.
Wacht ongeveer 15 seconden 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 APIM-gateway-URL's
- Een API beveiligen door beleid voor frequentielimieten toe te voegen
- De transformaties testen
Ga door naar de volgende zelfstudie: