Lezen in het Engels

Delen via


Microsoft Entra-verificatie toevoegen voor het aanroepen van aangepaste API's vanuit Azure Logic Apps

Als u de beveiliging van aanroepen naar uw API's wilt verbeteren, kunt u Microsoft Entra-verificatie instellen via Azure Portal, zodat u uw code niet hoeft bij te werken. Of u kunt verificatie vereisen en afdwingen via de code van uw API.

U kunt verificatie op de volgende manieren toevoegen:

Aanroepen naar uw API verifiëren zonder code te wijzigen

Dit zijn de algemene stappen voor deze methode:

  1. Maak twee Microsoft Entra-toepassingsidentiteiten (app-registratie): één voor uw logische app-resource en één voor uw web-app (of API-app).

  2. Als u oproepen naar uw API wilt verifiëren, gebruikt u de referenties (client-id en geheim) voor de service-principal die is gekoppeld aan de Microsoft Entra toepassingsidentiteit van uw logische app.

  3. Neem de toepassings-id's op in de werkstroomdefinitie van uw logische app.

Deel 1: Een Microsoft Entra-toepassingsidentiteit maken voor uw logische app

Uw logische app-resource gebruikt deze Microsoft Entra-toepassingsidentiteit om te authenticeren bij Microsoft Entra ID. U hoeft deze identiteit slechts één keer in te stellen voor uw tenant. U kunt er bijvoorbeeld voor kiezen om dezelfde identiteit te gebruiken voor al uw logische apps, ook al kunt u voor elke logische app unieke identiteiten maken. U kunt deze identiteiten instellen in Azure Portal of PowerShell gebruiken.

  1. Zoek en selecteer Microsoft Entra ID in het zoekvak van Azure Portal.

  2. Controleer of u zich in dezelfde tenant bevindt als uw web-app of API-app.

    Tip

    Als u van tenant wilt wisselen, opent u uw profiel op de titelbalk van Azure en selecteert u Schakelen tussen mappen.

  3. Selecteer app-registraties in het menu tenantresource onder Beheren.

    Op de pagina App-registraties worden alle app-registraties in uw tenant weergegeven. Als u alleen uw app-registraties wilt weergeven, selecteert u Toepassingen in eigendom.

  4. Selecteer Nieuwe registratie op de werkbalk.

    Schermopname van Azure Portal met de Microsoft Entra-tenant, het deelvenster App-registraties, en de geselecteerde opdracht Nieuwe registratie.

  5. Voer op de pagina Een toepassing registreren de volgende stappen uit:

    1. Geef voor Naam een beschrijvende, gebruikersgerichte naam op voor de toepassingsidentiteit van uw logische app.

    2. Selecteer onder Ondersteunde accounttypen de optie die het beste de accounttypen beschrijft die de toepassingsidentiteit kunnen gebruiken of toegang krijgen tot uw API.

    3. Selecteer onder Omleidings-URIde optie Web als platform. Geef naast deze optie een unieke URL op voor de locatie om het verificatieantwoord te retourneren.

      Schermopname van het deelvenster voor het registreren van een toepassing met de naam van de toepassingsidentiteit en de URL voor het verzenden van een verificatieantwoord.

    4. Wanneer u klaar bent, selecteert u Registreren.

    Op het tabblad Toepassingen in eigendom wordt nu uw gemaakte toepassingsidentiteit weergegeven. Als deze identiteit niet wordt weergegeven, selecteert u Vernieuwen op de werkbalk.

    Schermopname van de toepassingsidentiteit voor uw logische app.

  6. Selecteer uw nieuwe toepassings-id in de lijst met app-registraties.

  7. Selecteer Overzicht in het navigatiemenu van de toepassingsidentiteit.

  8. Kopieer en sla op de pagina Overzicht onder Essentials de toepassings-id (client) op die moet worden gebruikt als de client-id voor uw logische app in deel 3.

    Screenshot toont de gemarkeerde toepassings-id (client).

  9. Selecteer in het menu Toepassingsidentiteit onder Beherende optie Certificaten en geheimen.

  10. Selecteer Nieuw clientgeheim op de pagina Clientgeheimen.

  11. Geef in het deelvenster Een clientgeheim toevoegen voor Beschrijving een naam op voor uw geheim. Voor Verlopen selecteert u een duur voor uw geheim. Wanneer u klaar bent, selecteert u Toevoegen.

    Het geheim dat u maakt, fungeert als het 'geheim' of wachtwoord van de toepassingsidentiteit voor uw logische app.

    Schermopname van het maken van een geheim voor de toepassingsidentiteit.

    Op de pagina Certificaten en geheimen , op het tabblad Clientgeheimen , wordt uw geheim nu samen met een geheime waarde en geheime id weergegeven.

    Schermopname van geheime waarde en geheime id met de knop Kopiëren voor geheime waarde geselecteerd.

  12. Kopieer de geheime waarde voor later gebruik. Wanneer u uw logische app in deel 3 configureert, geeft u deze waarde op als het geheim of wachtwoord.

Deel 2: Een Microsoft Entra-toepassingsidentiteit maken voor uw web-app of API-app

Als uw web-app of API-app al is geïmplementeerd, kunt u verificatie inschakelen en de toepassingsidentiteit maken in Azure Portal. Anders kunt u verificatie inschakelen wanneer u implementeert met een Azure Resource Manager-sjabloon.

De toepassingsidentiteit maken voor een geïmplementeerde web-app of API-app in Azure Portal

  1. Zoek en selecteer uw web-app of API-app in Azure Portal.

  2. Selecteer onder Instellingen de optie Verificatie-id-provider> toevoegen.

  3. Nadat het deelvenster Een identiteitsprovider toevoegen is geopend, gaat u naar het tabblad Basisbeginselen, selecteert u in de lijst Identiteitsprovider de optie Microsoft om Microsoft Entra-identiteiten te gebruiken en selecteert u Toevoegen.

  4. Maak nu als volgt een toepassings-id voor uw web-app of API-app:

    1. Selecteer voor app-registratietype de optie Nieuwe app-registratie maken.

    2. Geef bij Naam een naam op voor uw toepassingsidentiteit.

    3. Selecteer voor ondersteunde accounttypen de accounttypen die geschikt zijn voor uw scenario.

    4. Voor Toegang beperken, selecteer Verificatie vereisen.

    5. Voor niet-geverifieerde aanvragen selecteert u de optie op basis van uw scenario.

    6. Wanneer u klaar bent, selecteert u Toevoegen.

    In de sectie Id-provider wordt de nieuwe toepassingsidentiteit voor uw web-app of API-app nu weergegeven:

    Schermopname van zojuist gemaakte toepassingsidentiteit voor web-app of API-app.

    Tip

    Als de toepassings-id niet wordt weergegeven, selecteert u Vernieuwen op de werkbalk.

Nu moet u de toepassings-id (client) en tenant-id vinden voor de toepassings-id die u zojuist hebt gemaakt voor uw web-app of API-app. U gebruikt deze id's in deel 3. Ga dus verder met de volgende stappen voor Azure Portal.

De client-id en tenant-id van de toepassingsidentiteit zoeken voor uw web-app of API-app in Azure Portal

  1. Selecteer Verificatie in het menu van uw web-app onder Beheren.

  2. Zoek in de sectie Id-provider de eerder gemaakte toepassings-id. Selecteer de naam van de toepassings-id.

    Schermopname toont de geopende verificatiepagina voor recent aangemaakte toepassingsidentiteit.

  3. Zoek op de pagina Overzicht de waarden voor Applicatie (client) ID en Directory (tenant) ID. Kopieer en sla de waarden op voor gebruik in deel 3.

    Schermopname met overzichtspagina geopend voor de identiteit van de web-app-toepassing en geselecteerde waarden voor de toepassings-id (client) en map-id (tenant).

    U kunt de tenant-id-GUID ook gebruiken in de implementatiesjabloon van uw web-app of API-app, indien nodig. Deze GUID is de GUID van uw specifieke tenant ('tenant-id') en moet worden weergegeven in deze URL: https://sts.windows.net/<tenant-GUID>

Verificatie instellen wanneer u implementeert met een Azure Resource Manager-sjabloon

Als u een Azure Resource Manager-sjabloon (ARM-sjabloon) gebruikt, moet u nog steeds een Microsoft Entra-toepassingsidentiteit maken voor uw web-app of API-app die verschilt van de app-identiteit voor uw logische app. Als u de toepassings-id wilt maken en vervolgens de client-id en tenant-id wilt vinden, volgt u de vorige stappen in deel 2 voor Azure Portal. U gebruikt zowel de client-id als de tenant-id in de implementatiesjabloon van uw app en ook voor deel 3.

Belangrijk

Wanneer u de Microsoft Entra-toepassingsidentiteit voor uw web-app of API-app maakt, moet u Azure Portal gebruiken, niet PowerShell. De PowerShell-commandlet stelt de vereiste machtigingen niet in om gebruikers aan te melden bij een website.

Nadat u de client-id en tenant-id hebt opgehaald, neemt u deze id's op als subresource van uw web-app of API-app in uw implementatiesjabloon:

"resources": [
   {
      "apiVersion": "2015-08-01",
      "name": "web",
      "type": "config",
      "dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
      "properties": {
         "siteAuthEnabled": true,
         "siteAuthSettings": {
            "clientId": "<client-ID>",
            "issuer": "https://sts.windows.net/<tenant-ID>/"
         }
      }
   }
]

Als u automatisch een lege web-app en een logische app samen met Microsoft Entra-verificatie wilt implementeren, bekijkt u de volledige sjabloon hier of selecteert u de volgende knop Implementeren in Azure :

Implementeren op Azure

Deel 3: De sectie Autorisatie invullen in uw logische app

De vorige sjabloon heeft deze autorisatiesectie al ingesteld, maar als u de definitie van uw logische app rechtstreeks ontwerpt, moet u de volledige autorisatiesectie opnemen.

  1. Open de definitie van uw logische app in de codeweergave.

  2. Ga naar de HTTP-actiedefinitie , zoek de sectie Autorisatie en neem de volgende eigenschappen op:

{
   "tenant": "<tenant-ID>",
   "audience": "<client-ID-from-Part-2-web-app-or-API app>",
   "clientId": "<client-ID-from-Part-1-logic-app>",
   "secret": "<secret-from-Part-1-logic-app>",
   "type": "ActiveDirectoryOAuth"
}
Eigenschap Vereist Omschrijving
tenant Ja De GUID voor de Microsoft Entra-tenant.
audience Ja De GUID voor de doelresource die u wilt openen. Dit is de client-id van de toepassings-id voor uw web-app of API-app.
clientId Ja De GUID voor de cliënt die toegang aanvraagt, is de client-ID afkomstig uit de toepassingsidentiteit voor uw logische app.
secret Ja Het geheim of wachtwoord van de toepassings-id voor de client die het toegangstoken aanvraagt.
type Ja Het verificatietype. Voor verificatie via ActiveDirectoryOAuth is de waarde ActiveDirectoryOAuth.

Voorbeeld:

{
   "actions": {
      "HTTP": {
         "inputs": {
            "method": "POST",
            "uri": "https://your-api-azurewebsites.net/api/your-method",
            "authentication": {
               "tenant": "tenant-ID",
               "audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
               "clientId": "client-ID-from-azure-ad-app-for-logic-app",
               "secret": "key-from-azure-ad-app-for-logic-app",
               "type": "ActiveDirectoryOAuth"
            }
         }
      }
   }
}

API-aanroepen beveiligen via code

Verificatie via certificaat

Als u de binnenkomende aanvragen van uw werkstroom voor logische apps wilt valideren naar uw web-app of API-app, kunt u clientcertificaten gebruiken. Als u uw code wilt instellen, leert u hoe u wederzijdse TLS-verificatie configureert.

Belangrijk

Beveilig gevoelige en persoonlijke gegevens altijd en beveilig deze, zoals referenties, geheimen, toegangssleutels, verbindingsreeksen, certificaten, vingerafdrukken en vergelijkbare informatie met het hoogst beschikbare of ondersteunde beveiligingsniveau.

Zorg ervoor dat u dergelijke informatie veilig opslaat met behulp van Microsoft Entra ID en Azure Key Vault. Codeer deze informatie niet, deel deze met andere gebruikers of sla ze op in tekst zonder opmaak waar anderen toegang toe hebben. Stel een plan op om geheimen te roteren of ongeldig te maken in het geval dat ze worden aangetast. Zie de volgende bronnen voor meer informatie:

Neem in de sectie Autorisatie de volgende eigenschappen op:

{
   "type": "ClientCertificate",
   "password": "<password>",
   "pfx": "<long-pfx-key>"
}
Eigenschap Vereist Omschrijving
type Ja Het verificatietype. Voor TLS/SSL-clientcertificaten moet de waarde zijn ClientCertificate.
password Nee Het wachtwoord voor toegang tot het clientcertificaat (PFX-bestand).
pfx Ja De base64-gecodeerde inhoud van het PFX-bestand (clientcertificaat).

Basisverificatie

Als u binnenkomende aanvragen van uw logische app naar uw web-app of API-app wilt valideren, kunt u basisverificatie gebruiken, zoals een gebruikersnaam en wachtwoord. Hoewel basisverificatie een gemeenschappelijk patroon is en u deze verificatie kunt gebruiken in elke taal die wordt gebruikt om uw web-app of API-app te bouwen, gebruikt u altijd het beste beschikbare of ondersteunde verificatieniveau.

Waarschuwing

Microsoft adviseert tegen het gebruik van de volgende werkwijzen voor verificatie en autorisatie:

  • Wachtwoordreferenties van resource-eigenaar (ROPC) voor OAuth 2.0

    Met dit proces kunt u zich met een wachtwoord aanmelden bij een applicatie. De stroom is niet compatibel met meervoudige verificatie (MFA), vereist een zeer hoge mate van vertrouwen in de toepassing en draagt risico's die niet aanwezig zijn in andere stromen. Gebruik deze stroom alleen als andere veiligere stromen niet worden ondersteund of beschikbaar zijn.

    Voor meer informatie, zie Oauth 2.0 Resource Owner Password Credentials.

  • Impliciete toekenningsstroom voor OAuth 2.0

    Deze stroom op basis van tokens is bedoeld voor traditionele web-apps waar de server veiliger controle heeft over de verwerking van POST gegevens en vaak wordt gebruikt met de autorisatiecodestroom. Vanwege de manier waarop deze stroom id-tokens of toegangstokens verwerkt en retourneert, vereist de stroom een zeer hoge mate van vertrouwen in de toepassing en loopt deze risico's die niet in andere stromen voorkomen. Gebruik deze stroom alleen als andere veiligere stromen niet worden ondersteund of beschikbaar zijn.

    Zie OAuth 2.0 impliciete toekenningsstroom voor meer informatie.

Neem in de sectie Autorisatie de volgende eigenschappen op:

{
   "type": "Basic",
   "username": "<username>",
   "password": "<password>"
}
Eigendom Vereist Omschrijving
type Ja Het verificatietype dat u wilt gebruiken. Voor basisverificatie moet de waarde **Basic**zijn.
username Ja De gebruikersnaam die u wilt gebruiken voor verificatie.
password Ja Het wachtwoord dat u wilt gebruiken voor verificatie.

Microsoft Entra-verificatie via code

Standaard biedt de Microsoft Entra-verificatie die u inschakelt in Azure Portal geen verfijnde autorisatie. Met deze verificatie wordt uw API bijvoorbeeld vergrendeld voor alleen een specifieke tenant, niet voor een specifieke gebruiker of app.

Als u de API-toegang tot uw logische app wilt beperken via code, extraheert u de header met het JSON-webtoken (JWT). Controleer de identiteit van de beller en negeer aanvragen die niet overeenkomen.

Volgende stappen


Aanvullende resources

Documentatie