Microsoft Azure Data Manager for Energy API's publiceren naar een beveiligde API-gateway
Azure API Management fungeert als een cruciale intermediair tussen clienttoepassingen en back-end-API's. Het maakt het eenvoudiger voor clients om toegang te krijgen tot services door de technische details te verbergen en organisaties controle te geven over API-beveiliging.
Door Azure Data Manager for Energy API's te publiceren via Azure API Management, kunt u azure Data Manager for Energy Private Link gebruiken voor privéverkeer en directe openbare toegang tot uw exemplaar volledig verwijderen.
In dit artikel wordt beschreven hoe u Azure API Management instelt voor het beveiligen van Azure Data Manager voor Energy-API's.
Vereisten
U hebt de volgende onderdelen, hulpprogramma's en informatie nodig om dit scenario te voltooien:
Een virtueel netwerk met twee beschikbare subnetten, één voor het privé-eindpunt van Azure Data Manager for Energy en de andere voor de injectie van virtuele netwerken van Azure API Management.
Azure Data Manager for Energy geconfigureerd met private link die is geïmplementeerd in het subnet.
Azure API Management is ingericht en geïmplementeerd in het virtuele netwerk met behulp van virtuele netwerkinjectie. Selecteer de externe modus of zie de sectie Overige opties voor de interne modus.
Een code-editor zoals Visual Studio Code voor het wijzigen van de Azure Data Manager for Energy OpenAPI-specificaties voor elk van de API's die worden gepubliceerd.
Download de Specificaties van Azure Data Manager for Energy OpenAPI vanuit de GitHub-opslagplaats adme-samples . Navigeer naar de rest-apis-map en selecteer de juiste versie voor uw toepassing.
In de app-registratie voor de Azure Data Manager for Energy-app die tijdens het inrichten is gebruikt, noteert u de tenant-id en client-id:
Het API Management-exemplaar voorbereiden
Gebruik de volgende stappen om configuratiewijzigingen aan te brengen in uw Azure API Management-exemplaar:
Kies in het deelvenster Alle resources het Azure API Management-exemplaar dat voor dit scenario wordt gebruikt.
Navigeer naar de pagina Producten-instellingen door deze te kiezen in de GROEP API-instellingen:
Selecteer op de pagina Producten de knop Toevoegen om een nieuw product te maken. Met Azure API Management-producten kunt u een losjes gekoppelde groepering van API's maken die samen kunnen worden beheerd en beheerd. We maken een product voor onze Azure Data Manager for Energy-API's.
Voer op de pagina Product toevoegen waarden in die worden beschreven in de volgende tabel om het product te maken.
Instelling Weergegeven als Weergavenaam "Azure Data Manager for Energy Product" Id "adme-product" Beschrijving Voer een beschrijving in die aangeeft aan ontwikkelaars welke API's we groeperen Gepubliceerd Schakel dit selectievakje in om het product te publiceren dat we maken Abonnement is vereist Schakel dit selectievakje in om basisautorisatie voor onze API's te bieden Goedkeuring vereist Selecteer desgewenst of u wilt dat een beheerder abonnementspogingen naar dit product beoordeelt en accepteert of weigert. Als deze optie niet is geselecteerd, worden abonnementspogingen automatisch goedgekeurd. Limiet voor het aantal abonnementen U kunt desgewenst het aantal gelijktijdige abonnementen beperken. Juridische voorwaarden Definieer eventueel de gebruiksvoorwaarden voor het product dat abonnees moeten accepteren om het product te kunnen gebruiken. API's We kunnen deze functie negeren. Verderop in dit artikel koppelen we API's Klik op Create (Maken) om een nieuw product te maken.
Zodra het product is gemaakt, keert de portal u terug naar de pagina Producten. Selecteer ons zojuist gemaakte product Azure Data Manager for Energy Product om naar de pagina Productresource te gaan. Selecteer de menuopdracht Beleidsinstelling in het instellingenmenu.
Selecteer in het deelvenster Binnenkomende verwerking het </> -pictogram, waarmee u beleidsregels voor het product kunt wijzigen. U voegt drie sets beleidsregels toe om de beveiliging van de oplossing te verbeteren:
- Valideer het Entra ID-token om ervoor te zorgen dat niet-geverifieerde aanvragen worden opgevangen bij de API-gateway
- Quotum - en frequentielimiet om de frequentie van aanvragen en het totale aantal aanvragen/overgedragen gegevens te bepalen
- Stel header in om headers te verwijderen die worden geretourneerd door back-end-API's, waardoor gevoelige details kunnen worden weergegeven aan potentiële slechte actoren
Voeg het volgende validate-azure-ad-tokenbeleid toe aan onze configuratie binnen de binnenkomende tags en onder de basistag . Zorg ervoor dat u de sjabloon bijwerkt met de details van de Microsoft Entra ID-app die zijn vermeld in de vereisten.
<validate-azure-ad-token tenant-id="INSERT_TENANT_ID"> <client-application-ids> <application-id>INSERT_APP_ID</application-id> </client-application-ids> </validate-azure-ad-token>
Voeg onder het beleid validate-azure-ad-token het volgende quota - en frequentielimietbeleid toe. Werk de beleidsconfiguratiewaarden zo nodig bij voor uw consumenten.
<rate-limit calls="20" renewal-period="90" remaining-calls-variable-name="remainingCallsPerSubscription"/> <quota calls="10000" bandwidth="40000" renewal-period="3600" />
Voeg de volgende set-headerbeleid toe aan de uitgaande sectie van de beleidseditor en onder de basistag.
<set-header name="x-envoy-upstream-service-time" exists-action="delete" /> <set-header name="x-internal-uri-pattern" exists-action="delete" />
Selecteer Opslaan om uw wijzigingen op te slaan.
Ga terug naar de API Management-resource in Azure Portal. Selecteer het menu-item Back-end en selecteer de knop + Toevoegen .
Voer in de modale back-end de waarden in die worden beschreven in de volgende tabel om de back-end te maken.
Instelling Weergegeven als Naam "adme-backend" Beschrijving Voer een beschrijving in die aan ontwikkelaars aangeeft dat deze back-end is gerelateerd aan Azure Data Manager for Energy-API's Type Aangepaste URL Runtime-URL Voer uw Azure Data Manager for Energy URI-_ex in. https://INSERT_ADME_NAME.energy.azure.com/
Certificaatketen valideren Geselecteerd Certificaatnaam valideren Geselecteerd Selecteer Maken om de back-end te maken. Deze zojuist gemaakte back-end wordt gebruikt in de volgende sectie wanneer we API's publiceren.
Azure Data Manager for Energy-API's importeren
Gebruik de volgende stappen om Azure Data Manager for Energy API's te importeren, configureren en publiceren in de Azure API Management-gateway:
Ga terug naar het Azure API Management-exemplaar dat in de laatste sectie is gebruikt.
Selecteer het menu-item API's in het menu en selecteer vervolgens de knop + API toevoegen.
Selecteer OpenAPI onder de kop Maken op basis van definitie .
Selecteer in het venster Maken op basis van de modale openAPI-specificatie de wisselknop Volledig .
Zoek de OpenAPI-specificaties die u hebt gedownload als onderdeel van de vereisten en open de schemaspecificatie met behulp van de code-editor van uw keuze. Zoek het woord 'server' en noteer de server-URL in het bestand bijvoorbeeld /api/schema-service/v1/.
Selecteer een bestand en selecteer de schema-API-specificatie . Wanneer het uploaden is voltooid, laadt het modale venster enkele waarden uit de specificatie.
Voer voor de andere velden waarden in die worden beschreven in de volgende tabel:
Instelling Weergegeven als Vereiste queryparameters opnemen in bewerkingssjablonen Geselecteerd Weergavenaam Voer een weergavenaam in die zinvol is voor app-ontwikkelaars , bijvoorbeeld Azure Data Manager voor Energy Schema Service Naam API Management stelt een naam voor in de hoofdletters. De naam kan eventueel worden gewijzigd, maar moet uniek zijn voor het exemplaar Beschrijving De OpenAPI-specificatie kan een beschrijving definiëren, als de beschrijving automatisch wordt ingevuld. Werk desgewenst de beschrijving bij per gebruiksvoorbeeld. URL-schema Selecteer 'Beide' API-URL-achtervoegsel Voer een achtervoegsel in voor alle Azure Data Manager for Energy-API's (bijvoorbeeld adme). Voer vervolgens de server-URL uit stap 5 in. De uiteindelijke waarde moet eruitzien als /adme/api/schema-service/v1/. Met een achtervoegsel kunnen we voldoen aan bestaande clients en softwareontwikkelingskits die normaal gesproken rechtstreeks verbinding maken met Azure Data Manager for Energy-API's Tags Optioneel tags invoeren Producten Selecteer het product 'Azure Data Manager for Energy' dat in de vorige sectie is gemaakt Belangrijk
Valideer het URL-achtervoegsel van de API. Dit is een veelvoorkomende oorzaak van fouten bij het publiceren van azure Data Manager for Energy-API's
Selecteer Maken om de API-gevel te maken.
Selecteer de zojuist gemaakte schema-API-gevel in de lijst met API's en selecteer alle bewerkingen in de lijst met bewerkingen . Selecteer in het deelvenster Binnenkomende verwerking het </> -pictogram om het beleidsdocument te bewerken.
Als u de API wilt configureren, voegt u twee sets beleidsregels toe:
- Back-endservice instellen om aanvragen naar het Azure Data Manager for Energy-exemplaar te routeren
- Herschrijf de URI om het adme-voorvoegsel te verwijderen en de aanvraag te bouwen naar de back-end-API. Deze beleidsinstructie maakt gebruik van beleidsexpressies om de waarde van de URL-sjabloon van de huidige bewerking dynamisch toe te voegen aan onze server-URL.
Noteer de server-URL uit stap 5. Voeg onder de basistag in de sectie Binnenkomend verkeer de volgende twee beleidsinstructies in.
<set-backend-service backend-id="adme-backend" />
<!-- replace the '/api/schema-service/v1' with the server URL for this API specification you noted in step 5 --> <rewrite-uri template="@{return "/api/schema-service/v1"+context.Operation.UrlTemplate;}" />
Selecteer Opslaan om uw wijzigingen op te slaan.
Test de API door de bewerking GET-versiegegevens te selecteren in de lijst met bewerkingen. Selecteer vervolgens het tabblad Testen om naar de Azure API Management-testconsole te navigeren.
Voer waarden in die in de volgende tabel worden beschreven. Genereer een verificatietoken voor uw Azure Data Manager for Energy. Selecteer Verzenden om de API te testen.
Instelling Weergegeven als gegevenspartitie-id De gegevenspartitie-id voor uw Azure Data Manager for Energy-exemplaar Product Selecteer het Azure Data Manager for Energy-product dat u eerder hebt gemaakt Autorisatie Bearer en het verificatietoken dat u hebt gegenereerd Als de API correct is geconfigureerd, ziet u een HTTP 200 - OK-antwoord dat lijkt op de schermopname. Als dat niet het probleem is, controleert u de sectie Probleemoplossing.
Herhaal de bovenstaande stappen voor elke Azure Data Manager for Energy-API en de bijbehorende specificatie.
Probleemoplossing
Tijdens het testen van API's via Azure API Management, als er fouten optreden, wijzen ze meestal op configuratieproblemen. Bekijk de mogelijke oplossingsstappen op basis van de fout.
Code | Foutmelding | DETAILS |
---|---|---|
HTTP 401 Unauthorized |
Invalid Azure AD JWT |
Controleer of u een geldige verificatieheader hebt voor de Microsoft Entra ID-tenant en client-app voor uw Azure Data Manager for Energy-exemplaar. |
HTTP 401 Unauthorized |
Azure AD JWT not present |
Controleer of de verificatieheader is toegevoegd aan uw testaanvraag. |
HTTP 404 Not Found |
Deze fout betekent meestal dat de aanvraag naar de back-end-API naar de verkeerde URL wordt verzonden. Traceer uw API-aanvraag in API Management om te begrijpen welke URL wordt gegenereerd voor de back-endaanvraag en zorg ervoor dat deze geldig is. Als dat niet het is, controleert u het url-herschrijfbeleid of de back-end. | |
HTTP 500 Internal Server Error |
Internal server error |
Deze fout weerspiegelt doorgaans een probleem bij het indienen van aanvragen naar de back-end-API. Meestal is het probleem in dit scenario gerelateerd aan DNS -services (Domain Name Services). Controleer of er een privé-DNS-zone is geconfigureerd in uw virtuele netwerken of dat uw aangepaste DNS-resolutie de juiste doorstuurservers heeft. Traceer uw API-aanvraag in API Management om te begrijpen welke back-endaanvraag is gedaan en welke fouten API Management rapporteert bij het indienen van de aanvraag. |
Andere overwegingen
Interne virtuele netwerkmodus van API Management
Interne modus isoleert azure API Management volledig in plaats van de eindpunten beschikbaar te maken via een openbaar IP-adres. In deze configuratie kunnen organisaties ervoor zorgen dat alle Azure Data Manager for Energy intern is. Aangezien Azure Data Manager for Energy een samenwerkingsoplossing is voor het werken met partners en klanten, is dit scenario mogelijk niet nuttig.
App Gateway met Web Application Firewall
In plaats van alleen de interne modus voor virtueel netwerk te gebruiken, kiezen veel organisaties ervoor om een beveiligd mechanisme voor omgekeerde proxy toe te passen om de interne modus azure API Management-exemplaar beschikbaar te maken voor externe partners en klanten. Het exemplaar van de interne modus blijft volledig geïsoleerd met een strak beheerd inkomend verkeer dat via de proxy moet gaan.
Azure-app Gateway is een algemene service die moet worden gebruikt als omgekeerde proxy. Azure-app Gateway heeft ook een WAF-mogelijkheid (Web Application Firewall), waarmee potentiële aanvallen tegen beveiligingsproblemen in uw toepassingen en API's actief worden gedetecteerd.
Azure API Management configureren met een aangepast domein
Een andere algemene functie van deze architectuur is het toepassen van een aangepast domein op de API's. Hoewel Azure Data Manager for Energy deze functie niet ondersteunt, kunt u in plaats daarvan een aangepast domein configureren in Azure API Management.
Een certificaat voor het domein is een vereiste. Azure API Management biedt echter ondersteuning voor het maken van gratis beheerde certificaten voor uw aangepaste domein.