Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du använder Azure Functions för att skapa en betrodd användaråtkomsttjänst.
Important
Slutpunkten som skapas i den här självstudien är inte säker. Se till att läsa om säkerhetsdetaljerna i artikeln om Azure Functions-säkerhet. Du måste lägga till säkerhet till slutpunkten för att säkerställa att skadliga aktörer inte kan generera token.
I den här artikeln beskrivs hur du:
- Konfigurera en funktion.
 - Generera åtkomsttoken.
 - Testa funktionen.
 - Distribuera och kör funktionen.
 
Ladda ned kod
Hitta den färdiga koden för den här snabbstarten på GitHub.
Prerequisites
- Ett Azure-konto med en aktiv prenumeration. Om du inte har en Azure-prenumeration kan du skapa ett konto kostnadsfritt.
 - Visual Studio Code på någon av plattformarna som stöds.
 - 
              
              Node.js, Active LTS- och Maintenance LTS-versioner (10.14.1 rekommenderas). 
              
node --versionAnvänd kommandot för att kontrollera din version. - Azure Functions-tillägget för Visual Studio Code.
 - En aktiv Communication Services-resurs och anslutningssträng. Mer information finns i Snabbstart: Skapa och hantera Communication Services-resurser.
 
Overview
              
              
              
              
            
I den här handledningen skapar du en funktionsapp som fungerar som en pålitlig tokenutfärdandetjänst. Du kan använda den här guiden för att starta din egen tjänst för tokenförsörjning.
Den här tjänsten ansvarar för att autentisera användare till Kommunikationstjänster. Användare av dina Communication Services-program kräver en åtkomsttoken för att delta i chatttrådar och VoIP-samtal. Funktionen fungerar som en betrodd mellanhand mellan användaren och Kommunikationstjänster. Du kan etablera åtkomsttoken utan att exponera resursanslutningssträngen för dina användare.
Mer information finns i dokumentationen om klientserverarkitektur och autentisering och auktorisering .
Konfigurera en funktion
I det här avsnittet beskrivs procedurerna för att konfigurera en funktion.
Konfiguration av Azure Functions
Vi ska först konfigurera den grundläggande strukturen för funktionen. Stegvisa instruktioner för konfiguration finns i Snabbstart: Skapa en C#-funktion i Azure med hjälp av Visual Studio Code.
Funktionen kräver följande konfiguration:
- Språk: JavaScript
 - Mall: HTTP-utlösare
 - Auktoriseringsnivå: Anonym (om du föredrar en annan auktoriseringsmodell kan du växla den senare)
 - Funktionsnamn: Användardefinierad
 
När du har följt anvisningarna i Snabbstart: Skapa en C#-funktion i Azure med hjälp av Visual Studio Code med föregående konfiguration bör du ha ett projekt i Visual Studio Code för funktionen med en index.js fil som innehåller själva funktionen. Följande kod i filen ska vara:
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
    };
}
Nästa steg är att installera Communication Services-bibliotek.
Installera kommunikationstjänstebibliotek
Du använder Identity biblioteket för att generera användaråtkomsttoken.
              npm install Använd kommandot för att installera Communication Services Identity SDK för JavaScript.
npm install @azure/communication-identity --save
Alternativet --save visar biblioteket som ett beroende i din package.json-fil .
Importera gränssnittet för index.js parametern överst i CommunicationIdentityClient filen.
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Generera åtkomsttoken
För att din funktion ska kunna generera användaråtkomsttoken måste du först använda anslutningssträngen för din Communication Services-resurs.
Mer information om hur du hämtar anslutningssträngen finns i Snabbstart: Skapa och hantera Communication Services-resurser.
const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'
Sedan ändrar du den ursprungliga funktionen för att generera användaråtkomsttoken.
Om du vill generera användaråtkomsttoken använder du createUser metoden för att skapa en användare. När användaren har skapats använder du getToken metoden för att generera en token för användaren, som funktionen returnerar.
I det här exemplet konfigurerar du tokenomfånget till voip. Andra omfång kan vara nödvändiga för din applikation. Mer information om omfång finns i Skapa och hantera åtkomsttoken.
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
    };
}
För den befintliga communication services-parametern CommunicationUser kan du hoppa över skapandesteget och generera en åtkomsttoken. Mer information finns i Skapa och hantera åtkomsttoken.
Testa funktionen
Kör funktionen lokalt med hjälp av F5. Den här åtgärden initierar funktionen lokalt och gör den tillgänglig via http://localhost:7071/api/FUNCTION_NAME. Mer information om hur du kör lokalt finns i Snabbstart: Skapa en C#-funktion i Azure med hjälp av Visual Studio Code.
Öppna URL:en i webbläsaren och du ser en svarstext med kommunikationsanvändar-ID, token och förfallodatum för token.
              
              
              
              
            
Distribuera funktionen till Azure
Om du vill distribuera din funktion följer du de stegvisa anvisningarna i Snabbstart: Skapa en C#-funktion i Azure med hjälp av Visual Studio Code.
Sammanfattningsvis måste du:
- Logga in på Azure från Visual Studio.
 - Publicera projektet till ditt Azure-konto. Här måste du välja en befintlig prenumeration.
 - Skapa en ny funktionsresurs med hjälp av Visual Studio-guiden eller en befintlig resurs. För en ny resurs måste du konfigurera den till önskad region, körning och unik identifierare.
 - Vänta tills distributionen har slutförts.
 - Kör funktionen.
 
Kör funktionen
Kör funktionen med hjälp av URL:en http://<function-appn-ame>.azurewebsites.net/api/<function-name>.
Om du vill hitta URL:en högerklickar du på funktionen i Visual Studio Code och kopierar funktions-URL:en.
Mer information om hur du kör din funktion finns i Snabbstart: Skapa en C#-funktion i Azure med hjälp av Visual Studio Code.
Skydda slutpunkten
Som en del av konfigurationen av en betrodd tjänst för att tillhandahålla åtkomsttoken för användare måste du ta hänsyn till säkerheten för slutpunkten för att se till att ingen dålig aktör slumpmässigt kan skapa token för din tjänst. Azure Functions tillhandahåller inbyggda säkerhetsfunktioner som du kan använda för att skydda slutpunkten med hjälp av olika typer av autentiseringsprinciper. Mer information finns i Azure Functions-säkerhet.
Rensa resurser
Om du vill rensa och ta bort en Azure Communication Services-prenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även alla andra resurser som är associerade med den bort. Du kan läsa mer om hur du rensar kommunikationstjänstens resurser och rensar Azure Functions-resurser.