Azure AI-servicestoepassingen ontwikkelen met Key Vault

Meer informatie over het veilig ontwikkelen van Azure AI-servicestoepassingen met behulp van Azure Key Vault.

Key Vault vermindert het risico dat geheimen per ongeluk worden gelekt, omdat u geen beveiligingsgegevens in uw toepassing opslaat.

Vereisten

Notitie

Raadpleeg de documentatie en quickstart-artikelen voor de Azure AI-service die u gebruikt om inzicht te krijgen in:

  • De referenties en andere informatie die u nodig hebt om API-aanroepen te verzenden.
  • De pakketten en code die u nodig hebt om uw toepassing uit te voeren.

Uw referenties ophalen uit uw Azure AI-servicesresource

Voordat u uw referentiegegevens toevoegt aan uw Azure-sleutelkluis, moet u deze ophalen uit uw Azure AI-servicesresource. Als uw service bijvoorbeeld een sleutel en eindpunt nodig heeft, vindt u deze met behulp van de volgende stappen:

  1. Navigeer naar uw Azure-resource in Azure Portal.

  2. Selecteer sleutels en eindpunt in het samenvouwbare menu aan de linkerkant.

    A screenshot showing the key and endpoint page in the Azure portal.

Voor sommige Azure AI-services zijn verschillende gegevens vereist voor het verifiëren van API-aanroepen, zoals een sleutel en regio. Zorg ervoor dat u deze informatie ophaalt voordat u doorgaat.

Uw referenties toevoegen aan uw sleutelkluis

Voor het ophalen en gebruiken van uw referenties voor het verifiëren van API-aanroepen moet u deze toevoegen aan uw sleutelkluisgeheimen.

Herhaal deze stappen om een geheim te genereren voor elke vereiste resourcereferentie. Bijvoorbeeld een sleutel en eindpunt. Deze geheime namen worden later gebruikt om uw toepassing te verifiëren.

  1. Open een nieuw browsertabblad of -venster. Navigeer naar uw sleutelkluis in Azure Portal.

  2. Selecteer objectengeheimen> in het samenvouwbare menu aan de linkerkant.

  3. Selecteer Genereren/Importeren.

    A screenshot showing the key vault key page in the Azure portal.

  4. Voer in het scherm Een geheim maken de volgende waarden in:

    Naam Weergegeven als
    Uploadopties Handmatig
    Naam Een geheime naam voor uw sleutel of eindpunt. Bijvoorbeeld: 'CognitiveServicesKey' of 'CognitiveServicesEndpoint'
    Weergegeven als De resourcesleutel of het eindpunt van uw Azure AI-services.

    Later gebruikt uw toepassing het geheim 'Naam' om veilig toegang te krijgen tot de 'Waarde'.

  5. Laat de andere waarden ongewijzigd. Selecteer Maken.

    Tip

    Onthoud de namen die u voor uw geheimen hebt ingesteld, omdat u deze later in uw toepassing gaat gebruiken.

U moet nu benoemde geheimen hebben voor uw resourcegegevens.

Een omgevingsvariabele maken voor de naam van uw sleutelkluis

U wordt aangeraden een omgevingsvariabele te maken voor de naam van uw Azure-sleutelkluis. Uw toepassing leest deze omgevingsvariabele tijdens runtime om uw sleutel- en eindpuntgegevens op te halen.

Als u omgevingsvariabelen wilt instellen, gebruikt u een van de volgende opdrachten. KEY_VAULT_NAME door de naam van de omgevingsvariabele en vervang deze door Your-Key-Vault-Name de naam van uw sleutelkluis, die wordt opgeslagen in de omgevingsvariabele.

Maak en wijs permanente omgevingsvariabele toe op basis van de waarde.

setx KEY_VAULT_NAME "Your-Key-Vault-Name"

Lees de omgevingsvariabele in een nieuw exemplaar van de opdrachtprompt.

echo %KEY_VAULT_NAME%

Verifiëren bij Azure met Visual Studio

Ontwikkelaars die Visual Studio 2017 of hoger gebruiken, kunnen een Microsoft Entra-account verifiëren via Visual Studio. Hierdoor kunt u vanuit de IDE toegang krijgen tot geheimen in uw sleutelkluis door u aan te melden bij uw Azure-abonnement.

Als u zich wilt verifiëren in Visual Studio, selecteert u Extra in het bovenste navigatiemenu en selecteert u Opties. Navigeer naar de optie Azure Service Authentication om u aan te melden met uw gebruikersnaam en wachtwoord.

Verifiëren met behulp van de opdrachtregel

Voordat u toegang kunt verlenen tot uw sleutelkluis, moet u zich verifiëren met uw Microsoft Entra-gebruikersnaam en -wachtwoord.

Voer de az login opdracht uit om te verifiëren met de Azure CLI.

az login

Op systemen met een standaardwebbrowser start de Azure CLI de browser om te verifiëren. Voor systemen zonder een standaardwebbrowser gebruikt de az login opdracht de verificatiestroom voor apparaatcode. U kunt ook afdwingen dat de Azure CLI de apparaatcodestroom gebruikt in plaats van een browser te starten door het --use-device-code argument op te geven.

Als u meerdere abonnementen hebt, moet u het Azure-abonnement selecteren dat uw sleutelkluis bevat.

Toegang verlenen tot uw sleutelkluis

Maak toegangsbeleid voor de sleutelkluis waarmee geheimmachtigingen worden verleend aan uw gebruikersaccount.

Voer de opdracht az keyvault set-policy uit om het toegangsbeleid in te stellen. Vervang Your-Key-Vault-Name door de naam van uw sleutelkluis. Vervang door user@domain.com uw Microsoft Entra-gebruikersnaam.

az keyvault set-policy --name Your-Key-Vault-Name --upn user@domain.com --secret-permissions delete get list set purge

Een nieuwe C#-toepassing maken

Maak een nieuwe console-app in .NET Core met behulp van de Visual Studio IDE. Hiermee maakt u een 'Hallo wereld'-project met één C#-bronbestand: program.cs.

Installeer de volgende clientbibliotheken door met de rechtermuisknop op de oplossing in Solution Explorer te klikken en NuGet-pakketten beheren te selecteren. Selecteer Bladeren en zoek in pakketbeheer de optie Bladeren en zoek naar de volgende bibliotheken en selecteer Installeren voor elk van deze bibliotheken:

  • Azure.Security.KeyVault.Secrets
  • Azure.Identity

De voorbeeldcode importeren

Kopieer de volgende voorbeeldcode naar uw program.cs bestand. Vervang en Your-Endpoint-Secret-Name door Your-Key-Secret-Name de geheime namen die u in uw sleutelkluis hebt ingesteld.

using System;
using System.Threading.Tasks;
using Azure;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
using System.Net;

namespace key_vault_console_app
{
    class Program
    {
        static async Task Main(string[] args)
        {
            //Name of your key vault
            var keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME");

            //variables for retrieving the key and endpoint from your key vault.
            //Set these variables to the names you created for your secrets
            const string keySecretName = "Your-Key-Secret-Name";
            const string endpointSecretName = "Your-Endpoint-Secret-Name";

            //Endpoint for accessing your key vault
            var kvUri = $"https://{keyVaultName}.vault.azure.net";

            var keyVaultClient = new SecretClient(new Uri(kvUri), new DefaultAzureCredential());

            Console.WriteLine($"Retrieving your secrets from {keyVaultName}.");

            //Key and endpoint secrets retrieved from your key vault
            var keySecret = await keyVaultClient.GetSecretAsync(keySecretName);
            var endpointSecret = await keyVaultClient.GetSecretAsync(endpointSecretName);
            Console.WriteLine($"Your key secret value is: {keySecret.Value.Value}");
            Console.WriteLine($"Your endpoint secret value is: {endpointSecret.Value.Value}");
            Console.WriteLine("Secrets retrieved successfully");

        }
    }
}

De toepassing uitvoeren

Voer de toepassing uit door bovenaan Visual Studio de knop Foutopsporing te selecteren. Uw sleutel- en eindpuntgeheimen worden opgehaald uit uw sleutelkluis.

Een testtaalserviceoproep verzenden (optioneel)

Als u een resource met meerdere services of taalresources gebruikt, kunt u uw toepassing bijwerken door deze stappen uit te voeren om een voorbeeld van een aanroep entiteitsherkenning met benoemde entiteiten te verzenden door een sleutel en eindpunt op te halen uit uw sleutelkluis.

  1. Installeer de Azure.AI.TextAnalytics bibliotheek door met de rechtermuisknop op de oplossing te klikken in Solution Explorer en NuGet-pakketten beheren te selecteren. Selecteer Bladeren en zoek in pakketbeheer de optie Bladeren en zoek naar de volgende bibliotheken en selecteer Installeren voor elk van deze bibliotheken:

  2. Voeg de volgende instructie toe aan het begin van uw program.cs bestand.

    using Azure.AI.TextAnalytics;
    
  3. Voeg het volgende codevoorbeeld toe aan uw toepassing.

    // Example method for extracting named entities from text 
    private static void EntityRecognitionExample(string keySecret, string endpointSecret)
    {
        //String to be sent for Named Entity Recognition
        var exampleString = "I had a wonderful trip to Seattle last week.";
    
        AzureKeyCredential azureKeyCredential = new AzureKeyCredential(keySecret);
        Uri endpoint = new Uri(endpointSecret);
        var languageServiceClient = new TextAnalyticsClient(endpoint, azureKeyCredential);
    
        Console.WriteLine($"Sending a Named Entity Recognition (NER) request");
        var response = languageServiceClient.RecognizeEntities(exampleString);
        Console.WriteLine("Named Entities:");
        foreach (var entity in response.Value)
        {
            Console.WriteLine($"\tText: {entity.Text},\tCategory: {entity.Category},\tSub-Category: {entity.SubCategory}");
            Console.WriteLine($"\t\tScore: {entity.ConfidenceScore:F2},\tLength: {entity.Length},\tOffset: {entity.Offset}\n");
        }
    }
    
  4. Voeg de volgende code toe om aan te roepen EntityRecognitionExample() vanuit uw hoofdmethode, met uw sleutel- en eindpuntwaarden.

    EntityRecognitionExample(keySecret.Value.Value, endpointSecret.Value.Value);
    
  5. Voer de toepassing uit.

Verifieer uw toepassing

Voordat u toegang kunt verlenen tot uw sleutelkluis, moet u zich verifiëren met uw Microsoft Entra-gebruikersnaam en -wachtwoord.

Voer de az login opdracht uit om te verifiëren met de Azure CLI.

az login

Op systemen met een standaardwebbrowser start de Azure CLI de browser om te verifiëren. Voor systemen zonder een standaardwebbrowser gebruikt de az login opdracht de verificatiestroom voor apparaatcode. U kunt ook afdwingen dat de Azure CLI de apparaatcodestroom gebruikt in plaats van een browser te starten door het --use-device-code argument op te geven.

Als u meerdere abonnementen hebt, moet u het Azure-abonnement selecteren dat uw sleutelkluis bevat.

Toegang verlenen tot uw sleutelkluis

Maak toegangsbeleid voor de sleutelkluis waarmee geheimmachtigingen worden verleend aan uw gebruikersaccount.

Voer de opdracht az keyvault set-policy uit om het toegangsbeleid in te stellen. Vervang Your-Key-Vault-Name door de naam van uw sleutelkluis. Vervang door user@domain.com uw Microsoft Entra-gebruikersnaam.

az keyvault set-policy --name Your-Key-Vault-Name --upn user@domain.com --secret-permissions delete get list set purge

Een Python-toepassing maken

Maak een nieuwe map met de naam keyVaultExample. Gebruik vervolgens de code-editor van uw voorkeur om een bestand te maken met de naam program.py in de zojuist gemaakte map.

Key Vault- en Language-servicepakketten installeren

  1. Navigeer in een terminal of opdrachtprompt naar de projectmap en installeer de Microsoft Entra-identiteitsbibliotheek:

    pip install azure-identity
    
  2. Installeer de Key Vault-geheimenbibliotheek:

    pip install azure-keyvault-secrets
    

De voorbeeldcode importeren

Voeg het volgende codevoorbeeld toe aan het bestand met de naam program.py. Vervang en Your-Endpoint-Secret-Name door Your-Key-Secret-Name de geheime namen die u in uw sleutelkluis hebt ingesteld.

import os
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
from azure.core.credentials import AzureKeyCredential

keyVaultName = os.environ["KEY_VAULT_NAME"]

# Set these variables to the names you created for your secrets
keySecretName = "Your-Key-Secret-Name"
endpointSecretName = "Your-Endpoint-Secret-Name"

# URI for accessing key vault
KVUri = f"https://{keyVaultName}.vault.azure.net"

# Instantiate the client and retrieve secrets
credential = DefaultAzureCredential()
kv_client = SecretClient(vault_url=KVUri, credential=credential)

print(f"Retrieving your secrets from {keyVaultName}.")

retrieved_key = kv_client.get_secret(keySecretName).value
retrieved_endpoint = kv_client.get_secret(endpointSecretName).value

print(f"Your secret key value is {retrieved_key}.");
print(f"Your secret endpoint value is {retrieved_endpoint}.");

De toepassing uitvoeren

Gebruik de volgende opdracht om de toepassing uit te voeren. Uw sleutel- en eindpuntgeheimen worden opgehaald uit uw sleutelkluis.

python ./program.py

Een testtaalserviceoproep verzenden (optioneel)

Als u een resource met meerdere services of taalresources gebruikt, kunt u uw toepassing bijwerken door deze stappen uit te voeren om een voorbeeld van een aanroep entiteitsherkenning met benoemde entiteiten te verzenden door een sleutel en eindpunt op te halen uit uw sleutelkluis.

  1. Installeer de Taalservicebibliotheek:

    pip install azure-ai-textanalytics==5.1.0
    
  2. Voeg de volgende code toe aan uw toepassing

    from azure.ai.textanalytics import TextAnalyticsClient
    # Authenticate the key vault secrets client using your key and endpoint 
    azure_key_credential = AzureKeyCredential(retrieved_key)
    # Now you can use key vault credentials with the Language service
    language_service_client = TextAnalyticsClient(
        endpoint=retrieved_endpoint, 
        credential=azure_key_credential)
    
    # Example of recognizing entities from text
    
    print("Sending NER request")
    
    try:
        documents = ["I had a wonderful trip to Seattle last week."]
        result = language_service_client.recognize_entities(documents = documents)[0]
        print("Named Entities:\n")
        for entity in result.entities:
            print("\tText: \t", entity.text, "\tCategory: \t", entity.category, "\tSubCategory: \t", entity.subcategory,
                    "\n\tConfidence Score: \t", round(entity.confidence_score, 2), "\tLength: \t", entity.length, "\tOffset: \t", entity.offset, "\n")
    
    except Exception as err:
        print("Encountered exception. {}".format(err))
    
  3. Voer de toepassing uit.

Verifieer uw toepassing

Voordat u toegang kunt verlenen tot uw sleutelkluis, moet u zich verifiëren met uw Microsoft Entra-gebruikersnaam en -wachtwoord.

Voer de az login opdracht uit om te verifiëren met de Azure CLI.

az login

Op systemen met een standaardwebbrowser start de Azure CLI de browser om te verifiëren. Voor systemen zonder een standaardwebbrowser gebruikt de az login opdracht de verificatiestroom voor apparaatcode. U kunt ook afdwingen dat de Azure CLI de apparaatcodestroom gebruikt in plaats van een browser te starten door het --use-device-code argument op te geven.

Als u meerdere abonnementen hebt, moet u het Azure-abonnement selecteren dat uw sleutelkluis bevat.

Toegang verlenen tot uw sleutelkluis

Maak toegangsbeleid voor de sleutelkluis waarmee geheimmachtigingen worden verleend aan uw gebruikersaccount.

Voer de opdracht az keyvault set-policy uit om het toegangsbeleid in te stellen. Vervang Your-Key-Vault-Name door de naam van uw sleutelkluis. Vervang door user@domain.com uw Microsoft Entra-gebruikersnaam.

az keyvault set-policy --name Your-Key-Vault-Name --upn user@domain.com --secret-permissions delete get list set purge

Een Java-toepassing maken

Maak in uw favoriete IDE een nieuw Java-consoletoepassingsproject en maak een klasse met de naam Example.

Afhankelijkheden toevoegen

Voeg in uw project de volgende afhankelijkheden toe aan uw pom.xml bestand.

<dependencies>

        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-security-keyvault-secrets</artifactId>
            <version>4.2.3</version>
        </dependency>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-identity</artifactId>
            <version>1.2.0</version>
        </dependency>
    </dependencies>

De voorbeeldcode importeren

Kopieer de volgende code naar een bestand met de naam Example.java. Vervang en Your-Endpoint-Secret-Name door Your-Key-Secret-Name de geheime namen die u in uw sleutelkluis hebt ingesteld.

import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
import com.azure.core.credential.AzureKeyCredential;

public class Example {

    public static void main(String[] args) {

        String keyVaultName = System.getenv("KEY_VAULT_NAME");
        String keyVaultUri = "https://" + keyVaultName + ".vault.azure.net";

        //variables for retrieving the key and endpoint from your key vault.
        //Set these variables to the names you created for your secrets
        String keySecretName = "Your-Key-Secret-Name";
        String endpointSecretName = "Your-Endpoint-Secret-Name";

        //Create key vault secrets client
        SecretClient secretClient = new SecretClientBuilder()
                .vaultUrl(keyVaultUri)
                .credential(new DefaultAzureCredentialBuilder().build())
                .buildClient();

        //retrieve key and endpoint from key vault
        String keyValue = secretClient.getSecret(keySecretName).getValue();
        String endpointValue = secretClient.getSecret(endpointSecretName).getValue();
        System.out.printf("Your secret key value is: %s", keyValue)
        System.out.printf("Your secret endpoint value is: %s", endpointValue)
    }
}

Een testtaalserviceoproep verzenden (optioneel)

Als u een resource met meerdere services of taalresources gebruikt, kunt u uw toepassing bijwerken door deze stappen uit te voeren om een voorbeeld van een aanroep entiteitsherkenning met benoemde entiteiten te verzenden door een sleutel en eindpunt op te halen uit uw sleutelkluis.

  1. Voeg in uw toepassing de volgende afhankelijkheid toe:

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-ai-textanalytics</artifactId>
        <version>5.1.12</version>
    </dependency>
    
  2. voeg de volgende importinstructies toe aan uw bestand.

    import com.azure.ai.textanalytics.models.*;
    import com.azure.ai.textanalytics.TextAnalyticsClientBuilder;
    import com.azure.ai.textanalytics.TextAnalyticsClient;
    
  3. Voeg de volgende code toe aan de main() methode in uw toepassing:

    
    TextAnalyticsClient languageClient = new TextAnalyticsClientBuilder()
            .credential(new AzureKeyCredential(keyValue))
            .endpoint(endpointValue)
            .buildClient();
    
    // Example for recognizing entities in text
    String text = "I had a wonderful trip to Seattle last week.";
    
    for (CategorizedEntity entity : languageClient.recognizeEntities(text)) {
        System.out.printf(
                "Recognized entity: %s, entity category: %s, entity sub-category: %s, score: %s, offset: %s, length: %s.%n",
                entity.getText(),
                entity.getCategory(),
                entity.getSubcategory(),
                entity.getConfidenceScore(),
                entity.getOffset(),
                entity.getLength());
    }
    
  4. Uw toepassing uitvoeren

Verifieer uw toepassing

Voordat u toegang kunt verlenen tot uw sleutelkluis, moet u zich verifiëren met uw Microsoft Entra-gebruikersnaam en -wachtwoord.

Voer de az login opdracht uit om te verifiëren met de Azure CLI.

az login

Op systemen met een standaardwebbrowser start de Azure CLI de browser om te verifiëren. Voor systemen zonder een standaardwebbrowser gebruikt de az login opdracht de verificatiestroom voor apparaatcode. U kunt ook afdwingen dat de Azure CLI de apparaatcodestroom gebruikt in plaats van een browser te starten door het --use-device-code argument op te geven.

Als u meerdere abonnementen hebt, moet u het Azure-abonnement selecteren dat uw sleutelkluis bevat.

Toegang verlenen tot uw sleutelkluis

Maak toegangsbeleid voor de sleutelkluis waarmee geheimmachtigingen worden verleend aan uw gebruikersaccount.

Voer de opdracht az keyvault set-policy uit om het toegangsbeleid in te stellen. Vervang Your-Key-Vault-Name door de naam van uw sleutelkluis. Vervang door user@domain.com uw Microsoft Entra-gebruikersnaam.

az keyvault set-policy --name Your-Key-Vault-Name --upn user@domain.com --secret-permissions delete get list set purge

Een nieuwe Node.js-toepassing maken

Maak een Node.js-toepassing die gebruikmaakt van uw sleutelkluis.

Maak in een terminal een map met de naam key-vault-js-example en ga naar die map:

mkdir key-vault-js-example && cd key-vault-js-example

Initialiseer het Node.js project:

npm init -y

Key Vault- en Language-servicepakketten installeren

  1. Installeer met behulp van de terminal de Azure Key Vault-geheimenbibliotheek, @azure/keyvault-secrets voor Node.js.

    npm install @azure/keyvault-secrets
    
  2. Installeer de Azure Identity-bibliotheek @azure /identiteitspakket om te verifiëren bij een Key Vault.

    npm install @azure/identity
    

Het codevoorbeeld importeren

Voeg het volgende codevoorbeeld toe aan een bestand met de naam index.js. Vervang en Your-Endpoint-Secret-Name door Your-Key-Secret-Name de geheime namen die u in uw sleutelkluis hebt ingesteld.

const { SecretClient } = require("@azure/keyvault-secrets");
const { DefaultAzureCredential } = require("@azure/identity");
// Load the .env file if it exists
const dotenv = require("dotenv");
dotenv.config();

async function main() {
    const credential = new DefaultAzureCredential();

    const keyVaultName = process.env["KEY_VAULT_NAME"];
    const url = "https://" + keyVaultName + ".vault.azure.net";

    const kvClient = new SecretClient(url, credential);

    // Set these variables to the names you created for your secrets
    const keySecretName = "Your-Key-Secret-Name";
    const endpointSecretName = "Your-Endpoint-Secret-Name";

    console.log("Retrieving secrets from ", keyVaultName);
    const retrievedKey = await (await kvClient.getSecret(keySecretName)).value;
    const retrievedEndpoint = await (await kvClient.getSecret(endpointSecretName)).value;
    console.log("Your secret key value is: ", retrievedKey);
    console.log("Your secret endpoint value is: ", retrievedEndpoint);
}

main().catch((error) => {
  console.error("An error occurred:", error);
  process.exit(1);
});

De voorbeeldtoepassing uitvoeren

Gebruik de volgende opdracht om de toepassing uit te voeren. Uw sleutel- en eindpuntgeheimen worden opgehaald uit uw sleutelkluis.

node index.js

Een testtaalserviceoproep verzenden (optioneel)

Als u een resource met meerdere services of taalresources gebruikt, kunt u uw toepassing bijwerken door deze stappen uit te voeren om een voorbeeld van een aanroep entiteitsherkenning met benoemde entiteiten te verzenden door een sleutel en eindpunt op te halen uit uw sleutelkluis.

  1. Installeer de Azure AI-service voor taalbibliotheek, @azure/ai-text-analytics om API-aanvragen naar de taalservice te verzenden.

    npm install @azure/ai-text-analytics@5.1.0
    
  2. Voeg de volgende code toe aan uw toepassing:

    const { TextAnalyticsClient, AzureKeyCredential } = require("@azure/ai-text-analytics");
    // Authenticate the language client with your key and endpoint
    const languageClient = new TextAnalyticsClient(retrievedEndpoint,  new AzureKeyCredential(retrievedKey));
    
    // Example for recognizing entities in text
    console.log("Sending NER request")
    const entityInputs = [
        "I had a wonderful trip to Seattle last week."
    ];
    const entityResults = await languageClient.recognizeEntities(entityInputs);
    entityResults.forEach(document => {
        console.log(`Document ID: ${document.id}`);
        document.entities.forEach(entity => {
            console.log(`\tName: ${entity.text} \tCategory: ${entity.category} \tSubcategory: ${entity.subCategory ? entity.subCategory : "N/A"}`);
            console.log(`\tScore: ${entity.confidenceScore}`);
        });
    });
    
  3. Voer de toepassing uit.

Volgende stappen