Een vertrouwde service voor gebruikerstoegang 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 aan het einde van deze zelfstudie is gemaakt, is niet beveiligd. Lees meer over de beveiligingsdetails in het artikel Azure Function Security . U moet beveiliging toevoegen aan het eindpunt om ervoor te zorgen dat slechte actoren geen tokens kunnen inrichten.
Code downloaden
Zoek de voltooide code voor deze quickstart op GitHub
Vereisten
- Een Azure-account met een actief abonnement. Zie Gratis een account maken voor meer informatie.
- Visual Studio Code op een van de ondersteunde platforms.
-
Node.js, Active LTS en Maintenance LTS-versies (10.14.1 aanbevolen). Gebruik de opdracht
node --version
om uw versie te controleren. - De Azure Functions-extensie voor Visual Studio Code.
- Een actieve Communication Services-resource en verbindingsreeks. Een Communication Services-resource maken.
Overzicht
Voor deze zelfstudie gaan we een Azure-functie maken die als een service voor het inrichten van een vertrouwde token zal fungeren. U kunt deze zelfstudie gebruiken om uw eigen service voor het inrichten van een token te bootstrappen.
Met deze service worden gebruikers bij Azure Communication Services geverifieerd. Voor gebruikers van uw Communication Services-toepassingen is een Access Token
vereist om deel te kunnen nemen aan chatthreads en VoIP-oproepen. De Azure-functie werkt als een vertrouwde schakel tussen de gebruiker en Communication Services. Zo kunt u toegangstokens inrichten zonder dat uw gebruikers de verbindingsreeks van uw resource krijgen te zien.
Zie de documentatie over de concepten client-serverarchitectuur en verificatie en autorisatie voor meer informatie.
Instellen
Azure Functions instellen
Eerst gaat u de basisstructuur voor uw Azure-functie instellen. Stapsgewijze instructies voor deze instellingen vindt u hier: Een functie maken met behulp van Visual Studio Code
Voor de Azure-functie is de volgende configuratie vereist:
- Taal: Javascript
- Sjabloon: HTTP-trigger
- Autorisatieniveau: Anoniem (dit kan later worden gewijzigd als u de voorkeur geeft aan een ander autorisatiemodel)
- Functienaam: Door de gebruiker gedefinieerd
Na het volgen van de instructies voor Azure Functions met de bovenstaande configuratie, moet u een project in Visual Studio Code voor de Azure-functie hebben dat een bestand index.js
heeft dat de functie zelf bevat. De code in dit bestand moet er als volgt uitzien:
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
};
}
We gaan nu verder met het installeren van Azure Communication Services-bibliotheken.
Communicatie Services-bibliotheken installeren
We gaan bibliotheek gebruiken Identity
om User Access Tokens
te genereren.
Gebruik de npm install
opdracht om de Azure Communication Services Identity SDK voor JavaScript te installeren.
npm install @azure/communication-identity --save
Met de optie --save
wordt de bibliotheek als een afhankelijkheid in bestand package.json vermeld.
Importeer de interface voor de CommunicationIdentityClient
boven in het bestand index.js
.
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Toegangstoken genereren
Als u wilt dat uw Azure-functie User Access Tokens
kan genereren, moet u eerst de verbindingsreeks voor de Communication Services-resource gebruiken.
Ga naar de quickstart over het inrichten van resources voor meer informatie over het ophalen van uw verbindingsreeks.
const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'
U gaat nu uw oorspronkelijke functie aanpassen om User Access Tokens
te genereren.
User Access Tokens
worden gegenereerd door een gebruiker te maken met behulp van de methode createUser
. Zodra de gebruiker is gemaakt, kan de methode getToken
worden gebruikt om een token te genereren voor de gebruiker die door de Azure-functie wordt geretourneerd.
Voor dit voorbeeld wordt het tokenbereik geconfigureerd voor voip
. Er kunnen andere bereiken nodig zijn voor uw toepassing. Meer informatie over bereiken
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 bestaande CommunicationUser
van Communication Services kunt u de stap voor het maken van een gebruiker overslaan en alleen een toegangstoken genereren. Meer informatie vindt u in de quickstart voor het maken van tokens voor gebruikerstoegang.
De Azure-functie testen
Test de Azure-functie lokaal met behulp van F5
. Hiermee initialiseert u de Azure-functie lokaal en maakt u deze toegankelijk via: http://localhost:7071/api/FUNCTION_NAME
. Bekijk aanvullende documentatie over lokaal uitvoeren
Open de URL in uw browser en controleer of er een antwoordtekst wordt weergeven met de gebruikers-id voor Communication, het token en de vervaltijd van het token.
De functie implementeren in Azure
Als u uw Azure-functie wilt implementeren, kunt u daarvoor stapsgewijze instructies volgen
Kortom, u moet het volgende doen:
- Meld u vanuit Visual Studio aan bij Azure
- Publiceer uw project naar uw Azure-account. Hier moet u een bestaand abonnement kiezen.
- Maak een nieuwe Azure-functieresource met behulp van de Visual Studio-wizard of gebruik een bestaande resource. Als het een nieuwe resource betreft, moet u deze configureren voor de gewenste regio, runtime en uw unieke id.
- Wacht tot de implementatie is voltooid.
- Voer de functie 🎉 uit.
Azure-functie uitvoeren
Voer de Azure-functie uit via de URL http://<function-appn-ame>.azurewebsites.net/api/<function-name>
.
U kunt de URL vinden door in Visual Studio Code met de rechtermuisknop op de functie te klikken en de functie-URL te kopiëren.
Meer informatie over het uitvoeren van uw Azure-functie
Azure-functie beveiligen
Als onderdeel van het instellen van een vertrouwde service voor het inrichten van toegangstokens voor gebruikers, moeten we rekening houden met de beveiliging van dat eindpunt om ervoor te zorgen dat geen slechte actor willekeurig tokens voor uw service kan maken. Azure Functions ingebouwde beveiligingsfuncties bieden die u kunt gebruiken om het eindpunt te beveiligen met behulp van verschillende typen verificatiebeleid. Meer informatie over Azure Function Security
Resources opschonen
Als u een 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. U kunt meer vinden over het opruimen van Azure Communication Services-resources en opruimen van Azure Function-resources.
Volgende stappen
U wilt mogelijk ook: