Een aangepaste connector maken voor met Azure AD beveiligde Azure-functies

Een belangrijk principe met Power Apps-connectors die gebruikmaken van Azure Active Directory (AAD) 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 AAD 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, AAD-verificatie in te schakelen en als een aangepaste connectorr beschikbaar te maken voor Power Apps.

Azure Functions 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, Visual Studio enzovoort. 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 Azure Functions-project maken met Visual Studio Code voltooien. Noteer de naam die u aan de functie-app hebt gegeven in de stap Het project publiceren naar Azure.

Belangrijk

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

Aanroepen voor Azure Functions beveiligen met AAD

  1. Zoek de 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. Schakel in het bovenste gedeelte over naar het tabblad Platformfuncties,

    Het tabblad Platformfuncties gemarkeerd op de blade Functie-app in de Azure-portal

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

    De koppeling Verificatie/autorisatie gemarkeerd op de blade Functie-app in de Azure-portal

  4. Schakel op de blade Verificatie/autorisatie de App Service-verificatie in door de wisselknop App Service-verificatie op Aan te zetten.

    De optie Aan voor de wisselknop App Service-verificatie gemarkeerd in de authenticatie-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' die is gemarkeerd in de vervolgkeuzelijst 'Te ondernemen actie wanneer de aanvraag niet is geverifieerd op het tabblad met verificatie-instellingen van de Function-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 Function-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 Function-app in de Azure-portal

    Belangrijk

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

  8. Selecteer de knop OK om uw selectie te bevestigen.

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

    De knop Opslaan gemarkeerd op de blade 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, 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 navigeren. De URL voor uw functie-app vindt u in de sectie Overzicht van de blade Functie-app. Als de verificatie-instellingen correct zijn toegepast, wordt u omgeleid naar de aanmeldingspagina van Azure AD.

    Aanmeldingspagina van Azure AD

Een aangepaste connector maken voor uw Azure-functie

Als u een aangepaste connector wilt maken die gebruikmaakt van AAD-verificatie, moet u een AAD-app-registratie maken om de aangepaste connector te beveiligen en gedelegeerde toegang te verkrijgen tot de Azure-functies die worden beveiligd door de AAD-app-registratie die is gemaakt in de sectie Aanroepen voor Azure Functions beveiligen met AAD.

Een app-registratie maken voor uw aangepaste connector in AAD

Maak eerst een AAD-toepassing voor uw aangepaste connector. Dit is vereist om de aangepaste connector toestemming te geven om uw Azure-functies aan te roepen.

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

    Pagina voor Azure AD-registraties in de Azure-portal

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

    Knop Toevoegen

  3. Voer een naam in voor uw toepassing, selecteer de opties die in de onderstaande schermafbeelding worden weergegeven en selecteer vervolgens de knop Registreren.

    Een toepassingsformulier registreren

    Notitie

    Zie 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 de knop 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 Functions beveiligen met AAD. Klik op 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 klik op de knop Machtigingen toevoegen.

    Machtiging voor user_impersonation toevoegen

    Notitie

    Zie Machtigingen en toestemming in het eindpunt van Microsoft identity platform voor meer informatie over machtigingen.

  8. Selecteer Certificaten en geheimen en selecteer vervolgens de knop 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. U hebt deze later nodig.

    Een sleutel maken

  11. Selecteer Overzicht en sla de waarde van de Toepassings(client)-id op. U hebt deze later nodig.

    Een sleutel maken

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 AAD-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-functies 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 Function lokaal maken, testen en de fouten erin opsporen.
  2. Implementeer de functie-app in Azure.
  3. Werk de configuratie van de aangepaste connector bij, zodat de wijzigingen in de functie-app worden doorgevoerd.

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

Notitie

Zie 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. Zie 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 onderstaande 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. In het navigatiedeelvenster selecteert u Gegevens om het uit te vouwen, selecteer vervolgens Aangepaste connectors.

    Aangepaste connectors in navigatiedeelvenster

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

    Een Postman-verzameling importeren

  5. Voer een naam in voor de connector, selecteer de knop Importeren, blader naar het bestand dat u in stap 2 hebt gemaakt en selecteer 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 AAD-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.

    Resource-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 AAD hebt gemaakt. Controleer of u zich in de sectie Overzicht bevindt en selecteer Een omleidings-URI toevoegen.

    Resource-URL

  10. Selecteer de knop Een platform toevoegen.

    Knop Een platform toevoegen

  11. In het deelvenster Platforms configureren selecteert u Web.

    Platforms configureren

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

    Platforms 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.

    Platforms configureren

    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 Azure Functions-project 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.

    Nieuwe verbinding

  3. Selecteer de knop Maken en meld u aan met uw AAD-gebruikersaccount.

    Nieuwe verbinding

  4. Ga terug naar de pagina Testen.

    • In Power Automate wordt u teruggeleid naar de pagina Testen. Kies 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. In het navigatiedeelvenster selecteert u Aangepaste connectors. Zoek de aangepaste connector en selecteer het bewerkingspictogram.

      Aangepaste connectors in navigatiedeelvenster

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

    Testbewerking

  6. Bekijk de Aanvraag en het Antwoord.

    Connectoraanvraag

    Connectoraanvraag

Volgende stappen

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