Een connector maken voor met Microsoft Entra ID beveiligde Azure-functie-apps

Een belangrijk principe met Microsoft Power Apps-connectors die gebruikmaken van Microsoft Entra ID voor verificatie is dat ze gebruikers geen toegang bieden tot gegevens waartoe de gebruiker nog geen toegang heeft. Dit komt doordat de API-aanroep van de door Microsoft Entra ID beveiligde service wordt uitgevoerd onder de gebruikers-id die wordt gebruikt bij het aanmelden bij de connector. Daarom onderhoudt de doelservice de verantwoordelijkheid voor het afdwingen van wat is toegestaan voor de geverifieerde gebruiker.

In deze zelfstudie leert u hoe u Azure Functions kunt gebruiken om een REST API te maken, Microsoft Entra ID-verificatie in te schakelen en als een aangepaste connector beschikbaar te maken voor Power Apps.

Azure Functions-apps maken met Visual Studio Code

Met Azure Functions beschikt u over diverse opties, waaronder hostingopties, taalkeuze en ontwerpopties, zoals het gebruik van de Azure-portal, Visual Studio Code of Visual Studio. Voor deze zelfstudie wordt gebruikgemaakt van C# en Visual Studio Code. Om deze zelfstudie te voltooien, moet u eerst de zelfstudie Aan de slag: Een C#-functie in Azure maken met Visual Studio Code voltooien. Noteer de naam die u aan uw functie-app hebt gegeven in de stap De functie-app in Azure maken.

Belangrijk

Voltooi het gedeelte Resources opschonen niet in de Quickstart. U moet al uw resources bij de hand hebben om verder te kunnen bouwen aan wat u al hebt gedaan.

Aanroepen voor Azure-functie-apps beveiligen met Microsoft Entra ID

  1. Zoek uw functie-app in de Azure-portal. Selecteer de naam van uw functie-app in de lijst.

    Lijst met functie-apps in de Azure-portal.

  2. Selecteer het tabblad Platformfuncties.

    Het tabblad Platformfuncties gemarkeerd op het tabblad Functie-apps in de Azure-portal.

  3. Selecteer in de groep Netwerken de koppeling Verificatie/autorisatie.

    De koppeling Verificatie/autorisatie gemarkeerd op het tabblad Functie-apps in de Azure-portal.

  4. Schakel op het tabblad Verificatie/autorisatie de schakelaar App Service-verificatie in.

    De optie Aan voor de wisselknop App Service-verificatie gemarkeerd in de verificatie-instellingen van de functie-app in de Azure-portal.

  5. In de vervolgkeuzelijst Te ondernemen actie wanneer de aanvraag niet is geverifieerd wijzigt u de waarde in Aanmelden met Azure Active Directory. Deze instelling zorgt ervoor dat anonieme aanvragen voor de API niet zijn toegestaan.

    De optie 'Aanmelden met Azure Active Directory' gemarkeerd in de vervolgkeuzelijst Te ondernemen actie wanneer de aanvraag niet is geverifieerd op het tabblad verificatie-instellingen van de functie-app.

  6. Selecteer vervolgens in de lijst met verificatieproviders de optie Azure Active Directory.

    'Azure Active Directory' gemarkeerd in de lijst met verificatieproviders voor een functie-app.

  7. Stel op het tabblad Azure Active Directory-instellingen de optie Beheermodus in op Express. Stel de tweede optie Beheermodus in op Nieuwe AD-app maken.

    Het tabblad met Azure Active Directory-instellingen geopend voor een functie-app in de Azure-portal.

    Belangrijk

    Voordat u doorgaat, kopieert u de waarde in het veld App maken en slaat u deze op voor later. Deze waarde vertegenwoordigt de naam van de Microsoft Entra ID-toepassing die u gebruikt om de API te beveiligen. U gebruikt deze waarde later wanneer u uw aangepaste connector configureert.

  8. Klik op OK om uw selectie te bevestigen.

  9. Selecteer op het tabblad Verificatie/autorisatie de optie Opslaan om de instellingen voor verificatie en autorisatie van de functie-app bij te werken.

    De knop Opslaan gemarkeerd op het tabblad Verificatie/autorisatie voor een functie-app in de Azure-portal.

  10. Selecteer na het opslaan Azure Active Directory in de sectie Verificatieproviders.

    Azure Active Directory-provider.

  11. Selecteer de Azure AD-app en kopieer vervolgens de waarde Client-id en sla deze op voor later.

    Pagina Client-id.

  12. Controleer of de API goed is beveiligd door een nieuw browservenster in privémodus te openen en naar de API te gaan. De URL voor uw functie-app vindt u in de sectie Overzicht van het tabblad Functie-apps. Als de verificatie-instellingen correct worden toegepast, wordt u omgeleid naar de aanmeldingspagina van Microsoft Entra ID.

    Microsoft Entra ID-aanmeldpagina.

Een aangepaste connector maken voor uw Azure-functie-app

Als u een aangepaste connector wilt maken die gebruikmaakt van Microsoft Entra ID-verificatie, moet u een Microsoft Entra ID-app-registratie maken om de aangepaste connector te beveiligen en gedelegeerde toegang te verkrijgen tot de Azure-functie-app die wordt beveiligd door de Microsoft Entra ID-app-registratie die is gemaakt in de sectie Aanroepen voor Azure-functie-apps beveiligen met Microsoft Entra ID.

Een app-registratie maken voor uw aangepaste connector in Microsoft Entra ID

Maak eerst een Microsoft Entra ID-toepassing voor uw aangepaste connector. Dit is vereist om de aangepaste connector toestemming te geven om uw Azure-functie-app aan te roepen.

  1. Ga naar de pagina App-registraties in de Azure-portal.

    Pagina voor Microsoft Entra ID-registraties in de Azure Portal.

  2. Selecteer in de lijst met geregistreerde toepassingen de optie Nieuwe registratie.

    Knop Nieuwe registratie.

  3. Voer een naam in voor uw toepassing, selecteer de ondersteunde accounttypen en platformconfiguratie (optioneel) en selecteer vervolgens Registreren.

    Selecteer onder Ondersteunde accounttypen de optie Accounts alleen in deze organisatiemap. Selecteer onder Platformconfiguratie de optie Web-API.

    Notitie

    Ga naar Aan de slag: Een toepassing bij het Microsoft-identiteitsplatform voor meer informatie over opties voor de registratie van apps.

  4. Nadat u de knop Registreren hebt geselecteerd, worden API-machtigingen voor uw App-registratie weergegeven.

    Scherm API-machtigingen.

  5. Selecteer Een machtiging toevoegen.

    Knop Een machtiging toevoegen.

  6. Selecteer het tabblad API's die in mijn organisatie worden gebruikt en zoek vervolgens de naam van de app uit stap 7 in de sectie Aanroepen voor Azure-functie-apps beveiligen met Microsoft Entra ID. Selecteer de naam van de app wanneer u deze hebt gevonden.

    Belangrijk

    De app-naam komt niet overeen met wat er in de schermafbeelding staat.

    Naam van de Azure-functie-app.

  7. Schakel het selectievakje user_impersonation in en selecteer vervolgens Machtigingen toevoegen.

    Machtiging voor user_impersonation toevoegen.

    Notitie

    Ga naar Machtigingen en toestemming in het eindpunt van het Microsoft-identiteitsplatform voor meer informatie over machtigingen.

  8. Selecteer Certificaten en geheimen en selecteer vervolgens Nieuw clientgeheim.

    Certificaten en geheimen.

  9. Voer een beschrijving in voor uw geheim, selecteer een vervalperiode en selecteer vervolgens Toevoegen.

    Een clientgeheim toevoegen.

  10. Uw nieuwe geheim wordt weergegeven. Kopieer de waarde en sla deze op. Deze hebt u later nodig.

    Schermopname met het nieuwe geheim in de sectie Clientgeheimen.

  11. Selecteer Overzicht en kopieer en plak vervolgens de waarde van de Id van toepassing (client). Deze hebt u later nodig.

    Schermopname die de waarde van de toepassings-id (client) laat zien.

Houd deze pagina open zodat u er snel naar terug kunt gaan. Er moet nog één stap worden uitgevoerd in de Azure Portal, maar eerst maakt u een aangepaste connector.

Een aangepaste connector maken

Nu de Microsoft Entra ID-toepassing is geconfigureerd, kunt u de aangepaste connector maken. Als u een aangepaste connector wilt maken, beschrijft u de API waarmee u verbinding wilt maken, zodat de connector de bewerkingen en gegevensstructuren van de API begrijpt. Als u Azure-functie-apps voor aangepaste connectors maakt, maakt u de connector vaak iteratief door de volgende stappen te herhalen:

  1. Met Visual Studio Code gaat u de Azure-functie-app lokaal maken, testen en de fouten erin opsporen.
  2. Implementeer uw functie-app in Azure.
  3. Werk de configuratie van de aangepaste connector bij, zodat de wijzigingen in uw functie-app worden doorgevoerd.

Postman is een populair hulpprogramma om web-API's te testen. Het wordt vaak gebruikt om Azure-functie-apps te testen. In dit artikel gaat u een aangepaste connector maken op basis van een Postman-collectie. De Postman-collectie wordt aan u verstrekt.

Notitie

Ga naar het onderwerp Een Postman-verzameling voor een aangepaste connector maken voor informatie over hoe u uw eigen Postman-verzameling kunt maken. Postman is slechts een van de opties voor het maken van een aangepaste connector. Ga naar het onderwerp De API beschrijven en de aangepaste connector definiëren voor informatie over andere opties.

  1. Meld u op een nieuw browsertabblad aan bij Power Apps of Power Automate.

  2. Kopieer de volgende code. Maak een nieuw bestand in uw favoriete teksteditor, maak een nieuw bestand en plak de code erin als de inhoud van het bestand. Sla het bestand op. U kunt het een naam naar wens geven, maar onthoud deze wel (bijvoorbeeld zelfstudie-aangepaste-connector.json). U hebt dit bestand nodig in de volgende stappen.

    {
        "id": "c4b5deba-f97b-47d0-82a5-a2b32561fb01",
        "name": "Custom Connector",
        "description": null,
        "auth": null,
        "events": null,
        "variables": [],
        "order": [
            "374365a1-ede5-4ead-8068-d878085dad26"
        ],
        "folders_order": [],
        "protocolProfileBehavior": {},
        "folders": [],
        "requests": [
            {
                "id": "374365a1-ede5-4ead-8068-d878085dad26",
                "name": "Hello",
                "url": "http://localhost:7071/api/Hello",
                "description": "",
                "data": [],
                "dataOptions": {
                    "raw": {
                        "language": "json"
                    }
                },
                "dataMode": "raw",
                "headerData": [
                    {
                        "key": "Content-Type",
                        "name": "Content-Type",
                        "value": "application/json",
                        "description": "",
                        "type": "text"
                    }
                ],
                "method": "POST",
                "pathVariableData": [],
                "queryParams": [],
                "auth": null,
                "events": null,
                "folder": null,
                "responses": [
                    {
                        "id": "46baba58-7b85-4a2e-8c7d-303080e08ba9",
                        "name": "Hello",
                        "status": null,
                        "mime": null,
                        "language": "plain",
                        "text": "Hello, Marc. This HTTP triggered function executed successfully.",
                        "responseCode": {
                            "code": 200,
                            "name": "OK"
                        },
                        "requestObject": {
                            "data": [],
                            "dataMode": "raw",
                            "dataOptions": {
                                "raw": {
                                    "language": "json"
                                }
                            },
                            "headerData": [
                                {
                                    "key": "Content-Type",
                                    "name": "Content-Type",
                                    "value": "application/json",
                                    "description": "",
                                    "type": "text"
                                }
                            ],
                            "method": "POST",
                            "pathVariableData": [],
                            "queryParams": [],
                            "url": "http://localhost:7071/api/Hello",
                            "rawModeData": "{\n\t\"name\": \"Marc\"\n}"
                        },
                        "headers": [
                            {
                                "key": "Date",
                                "value": "Wed, 04 Mar 2020 22:32:06 GMT"
                            },
                            {
                                "key": "Content-Type",
                                "value": "text/plain; charset=utf-8"
                            },
                            {
                                "key": "Server",
                                "value": "Kestrel"
                            },
                            {
                                "key": "Transfer-Encoding",
                                "value": "chunked"
                            }
                        ],
                        "cookies": null,
                        "request": "374365a1-ede5-4ead-8068-d878085dad26",
                        "collection": "c4b5deba-f97b-47d0-82a5-a2b32561fb01"
                    }
                ],
                "rawModeData": "{\n\t\"name\": \"Marc\"\n}",
                "headers": "Content-Type: application/json\n",
                "pathVariables": {}
            }
        ]
    }
    
  3. Vouw in het linkernavigatiedeelvenster Gegevens uit en selecteer vervolgens Aangepaste connectors.

    Schermopname met gegevens- en aangepaste connectors in het linkerdeelvenster.

  4. In de rechterbovenhoek selecteert u Nieuwe aangepaste connector en vervolgens selecteert u Een Postman-verzameling importeren.

    Een Postman-verzameling importeren.

  5. Voer een naam in voor de connector, selecteer Importeren, blader naar het bestand dat u in stap 2 hebt gemaakt en selecteer vervolgens Doorgaan.

    Naam en bestandslocatie.

  6. De pagina Algemeen wordt geopend. Wijzig het Schema in HTTPS, vervang de waarde Host door het domein van uw functie-app en ga vervolgens met de wizard naar de pagina Beveiliging.

    Instellingen Algemene informatie.

  7. Geef op de pagina Beveiliging Microsoft Entra ID-gegevens voor de toepassing op:

    OAuth-instellingen.

    Als u de beveiligingsgegevens hebt ingevoerd, selecteert u de knop Connector bijwerken om de aangepaste connector te maken.

  8. Op de pagina Beveiliging is het veld Omleidings-URL nu ingevuld. Kopieer deze URL zodat u deze in de volgende sectie van deze zelfstudie kunt gebruiken.

    Notitie

    Mogelijk moet u omlaag schuiven om de omleidings-URL te kunnen zien.

    Schermopname met het veld Omleidings-URL.

  9. Ga in een ander browsertabblad terug naar de app-registratie die u in de sectie Een app-registratie maken voor uw aangepaste connector in Microsoft Entra ID hebt gemaakt. Controleer of u zich in de sectie Overzicht bevindt en selecteer vervolgens Een omleidings-URI toevoegen.

    Schermopname met de knop Een omleidings-URI toevoegen.

  10. Selecteer Een platform toevoegen.

    Knop Een platform toevoegen.

  11. In het deelvenster Platforms configureren selecteert u Web.

    Schermopname die Web toont in het deelvenster Platforms configureren.

  12. In het deelvenster Web configureren plakt u de waarde Omleidings-URL uit stap 7 en selecteert u vervolgens Configureren.

    Schermopname met het deelvenster Web configureren.

  13. Ga terug naar het browsertabblad met de configuratie van de aangepaste connector. Als het goed is bevindt u zich nog steeds op de pagina Beveiliging in de wizard.

  14. Ga door naar de pagina Definitie in de wizard door het woord Definitie te selecteren. Controleer het resultaat.

    Schermopname met de knop Definitie.

    Notitie

    De definitie is afkomstig van de Postman-verzameling die u hebt geïmporteerd. Als u wijzigingen hebt aangebracht in de code in de zelfstudie Aan de slag: Een C#-functie in Azure maken met Visual Studio Code, komt het importbestand mogelijk niet overeen met de vorm van uw API. U moet een nieuwe Postman-verzameling maken of de actie handmatig aanpassen in de aangepaste connector. Als u een nieuwe Postman-verzameling wilt maken, gebruikt u de koppelingen die hier eerder in deze zelfstudie zijn gedeeld. Als u de actie handmatig wilt aanpassen, kunt u de sectie De definitie van de connector maken in de zelfstudie Een volledig nieuwe aangepaste connector maken lezen.

De connector testen

Nu u de connector hebt gemaakt, test u deze om te controleren of de connector juist werkt. Testen is momenteel alleen beschikbaar in Power Automate en Power Apps.

  1. Ga door naar de pagina Testen in de wizard door het woord Testen te selecteren.

    Pagina Testen.

  2. Op de pagina Testen selecteert u Nieuwe verbinding.

    Schermopname met de knop Nieuwe verbinding.

  3. Selecteer Maken en meld u aan met uw Microsoft Entra ID-gebruiker.

    Schermopname met de knop Maken en het aanmeldingsscherm.

  4. Ga terug naar de pagina Testen en voer een van de volgende handelingen uit:

    • In Power Automate wordt u teruggeleid naar de pagina Testen. Selecteer het pictogram Vernieuwen om ervoor te zorgen dat de verbindingsgegevens worden bijgewerkt.

      Verbinding vernieuwen.

    • In Power Apps wordt u naar de lijst met verbindingen geleid die beschikbaar zijn in de huidige omgeving. Selecteer Aangepaste connectors in het linkerdeelvenster. Zoek uw aangepaste connector en selecteer het bewerkingspictogram vervolgens.

      Schermopname met de lijst met aangepaste connectors.

  5. Ga terug naar de pagina Testen, voer een waarde in het veld Naam in en selecteer vervolgens Testbewerking.

    Testbewerking.

  6. Bekijk de Aanvraag en het Antwoord.

    Schermopname met de aanvraagvelden van URL, Methode, Kopteksten en Hoofdtekst.

    Schermopname met de responsvelden van Status, Kopteksten en Hoofdtekst.

Volgende stappen

Nu u een aangepaste connector hebt gemaakt en het gedrag van deze connector hebt gedefinieerd, kunt u de connector gebruiken.

Feedback geven

We stellen feedback over problemen met ons connectorplatform of ideeën voor nieuwe functies zeer op prijs. Om feedback te geven, gaat u naar Problemen melden of hulp krijgen met connectoren en selecteer uw feedbacktype.