Delen via


Een verificatieservice bouwen met Behulp van Azure Functions

In dit artikel wordt beschreven hoe u Azure Functions gebruikt om een vertrouwde service voor gebruikerstoegang te bouwen.

Belangrijk

Het eindpunt dat in deze zelfstudie is gemaakt, is niet beveiligd. Lees meer over de beveiligingsdetails in het Azure Functions-beveiligingsartikel . U moet beveiliging toevoegen aan het eindpunt om ervoor te zorgen dat kwaadwillenden geen tokens kunnen verstrekken.

In dit artikel wordt beschreven hoe u:

  • Een functie instellen.
  • Toegangstokens genereren.
  • Test de functie.
  • Implementeer en voer de functie uit.

Code downloaden

Zoek de voltooide code voor deze quickstart op GitHub.

Vereisten

Overzicht

Diagram met vertrouwde servicearchitectuur.

Voor deze zelfstudie maakt u een functie-applicatie die fungeert als een vertrouwde tokentoewijzingsservice. U kunt deze handleiding gebruiken om uw eigen tokenvoorzieningsdienst op te zetten.

Deze service is verantwoordelijk voor het verifiëren van gebruikers bij Communication Services. Voor gebruikers van uw Communication Services-toepassingen is een toegangstoken vereist om deel te nemen aan chatthreads en VoIP-oproepen. De functie werkt als een vertrouwde middleman tussen de gebruiker en Communication Services. U kunt toegangstokens inrichten zonder uw resourceverbindingsreeks beschikbaar te maken voor uw gebruikers.

Zie de documentatie over de concepten client-serverarchitectuur en verificatie en autorisatie voor meer informatie.

Een functie instellen

In deze sectie worden de procedures beschreven voor het instellen van een functie.

Azure Functions instellen

Laten we eerst de basisstructuur voor de functie instellen. Zie Quickstart: Een C#-functie maken in Azure met behulp van Visual Studio Code voor stapsgewijze instructies voor het instellen.

Voor de functie is de volgende configuratie vereist:

  • Taal: JavaScript
  • Sjabloon: HTTP-trigger
  • Autorisatieniveau: Anoniem (als u liever een ander autorisatiemodel gebruikt, kunt u dit later overschakelen)
  • Functienaam: door de gebruiker gedefinieerd

Nadat u de instructies in quickstart hebt gevolgd: Een C#-functie maken in Azure met behulp van Visual Studio Code met de voorgaande configuratie, moet u een project in Visual Studio Code hebben voor de functie met een index.js bestand dat de functie zelf bevat. De volgende code in het bestand moet zijn:


module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');

    const name = (req.query.name || (req.body && req.body.name));
    const responseMessage = name
        ? "Hello, " + name + ". This HTTP triggered function executed successfully."
        : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";

    context.res = {
        // status: 200, /* Defaults to 200 */
        body: responseMessage
    };
}

De volgende stap bestaat uit het installeren van Communication Services-bibliotheken.

Communication Services-bibliotheken installeren

U gebruikt de Identity bibliotheek om tokens voor gebruikerstoegang te genereren.

Gebruik de npm install opdracht om de Communication Services Identity SDK voor JavaScript te installeren.


npm install @azure/communication-identity --save

De optie --save geeft de bibliotheek weer als afhankelijkheid in het package.json-bestand.

Importeer bovenaan het index.js bestand de interface voor de CommunicationIdentityClient parameter.

const { CommunicationIdentityClient } = require('@azure/communication-identity');

Toegangstokens genereren

Als u wilt dat uw functie tokens voor gebruikerstoegang genereert, moet u eerst de verbindingsreeks voor uw Communication Services-resource gebruiken.

Zie Quickstart: Communication Services-resources maken en beheren voor meer informatie over het ophalen van uw verbindingstekenreeks.

const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'

Vervolgens wijzigt u de oorspronkelijke functie om tokens voor gebruikerstoegang te genereren.

Als u tokens voor gebruikerstoegang wilt genereren, gebruikt u de createUser methode om een gebruiker te maken. Nadat de gebruiker is gemaakt, gebruikt u de getToken methode om een token te genereren voor die gebruiker, die door de functie wordt geretourneerd.

In dit voorbeeld configureert u het tokenbereik op voip. Er kunnen andere scopes nodig zijn voor uw toepassing. Voor meer informatie over scopes, zie Toegangstokens maken en beheren.

module.exports = async function (context, req) {
    let tokenClient = new CommunicationIdentityClient(connectionString);

    const user = await tokenClient.createUser();

    const userToken = await tokenClient.getToken(user, ["voip"]);

    context.res = {
        body: userToken
    };
}

Voor de bestaande Communication Services-parameter CommunicationUser kunt u de aanmaakstap overslaan en een toegangstoken genereren. Zie Toegangstokens maken en beheren voor meer informatie.

De functie testen

Voer de functie lokaal uit met behulp van F5. Met deze actie initialiseert u de functie lokaal en maakt deze toegankelijk via http://localhost:7071/api/FUNCTION_NAME. Zie quickstart: Een C#-functie maken in Azure met behulp van Visual Studio Code voor meer informatie over lokaal uitvoeren.

Open de URL in uw browser en u ziet een antwoordtekst met de communicatiegebruikers-id, het token en de vervaldatum voor het token.

Schermopname van een voorbeeld van een antwoord voor de gemaakte functie.

De functie implementeren in Azure

Als u uw functie wilt implementeren, volgt u de stapsgewijze instructies in Quickstart: Een C#-functie maken in Azure met behulp van Visual Studio Code.

Kortom, u moet het volgende doen:

  1. Meld u aan bij Azure vanuit Visual Studio.
  2. Publiceer uw project naar uw Azure-account. Hier moet u een bestaand abonnement kiezen.
  3. Maak een nieuwe functieresource met behulp van de Visual Studio-wizard of een bestaande resource. Voor een nieuwe resource moet u deze configureren in uw gewenste regio, runtime en unieke id.
  4. Wacht tot de implementatie is voltooid.
  5. Voer de functie uit.

De functie uitvoeren

Voer de functie uit met behulp van de URL http://<function-appn-ame>.azurewebsites.net/api/<function-name>.

Als u de URL wilt vinden, klikt u met de rechtermuisknop op de functie in Visual Studio Code en kopieert u de functie-URL.

Zie Quickstart: Een C#-functie maken in Azure met behulp van Visual Studio Code voor meer informatie over het uitvoeren van uw functie.

Het eindpunt beveiligen

Als onderdeel van het instellen van een vertrouwde service om toegangstokens voor gebruikers te bieden, moet u rekening houden met de beveiliging van dat eindpunt om ervoor te zorgen dat er geen ongeldige actor willekeurig tokens voor uw service kan maken. Azure Functions biedt ingebouwde beveiligingsfuncties die u kunt gebruiken om het eindpunt te beveiligen met behulp van verschillende typen verificatiebeleid. Zie Azure Functions-beveiliging voor meer informatie.

Resources opschonen

Als u een Azure Communication Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. Meer informatie over het opschonen van Communication Service-resources en het opschonen van Azure Functions-resources.