Sdílet prostřednictvím


Vytvoření ověřovací služby pomocí Azure Functions

Tento článek popisuje, jak používat Azure Functions k vytvoření důvěryhodné služby pro přístup uživatelů.

Important

Koncový bod vytvořený v tomto kurzu není zabezpečený. Nezapomeňte si přečíst podrobnosti o zabezpečení v článku Azure Functions security. Potřebujete přidat zabezpečení k rozhraní, aby se zajistilo, že škodliví aktéři nemohou zřizovat tokeny.

Tento článek popisuje následující postupy:

  • Nastavte funkci.
  • Vygenerujte přístupové tokeny.
  • Otestujte funkci.
  • Nasaďte a spusťte funkci.

Stažení kódu

Najděte finalizovaný kód pro tento rychlý start na GitHubu.

Prerequisites

Overview

Diagram, který ukazuje architekturu důvěryhodné služby.

Pro tento tutoriál vytvoříte aplikační funkci, která slouží jako důvěryhodná služba pro poskytování tokenů. Tento tutoriál můžete použít ke spuštění vlastní služby poskytování tokenů.

Tato služba zodpovídá za ověřování uživatelů ve službě Communication Services. Uživatelé vašich aplikací Služeb komunikace potřebují přístupový token pro účast v diskusních vláknech a VoIP hovorech. Funkce funguje jako důvěryhodný middleman mezi uživatelem a komunikačními službami. Přístupové tokeny můžete zřídit bez vystavení připojovacího řetězce prostředku uživatelům.

Pro více informací se podívejte na konceptuální dokumentaci o klient-server architektuře a ověření a autorizaci.

Nastavte funkci

Tato část popisuje postupy pro nastavení funkce.

Nastavení služby Azure Functions

Nejprve nastavme základní strukturu pro funkci. Pro podrobné pokyny k nastavení viz Quickstart: Vytvoření funkce C# v Azure pomocí Visual Studio Code.

Funkce vyžaduje následující konfiguraci:

  • Jazyk: JavaScript
  • Šablona: HTTP Trigger
  • Authorization Level: Anonymní (pokud preferujete jiný model autorizace, můžete jej později změnit)
  • Název funkce: Definovaný uživatelem

Poté, co budete postupovat podle pokynů v Rychlý start: Vytvoření C# funkce v Azure pomocí Visual Studio Code s výše uvedenou konfigurací, měli byste mít v Visual Studio Code projekt pro funkci se souborem index.js, který obsahuje samotnou funkci. Následující kód uvnitř souboru by měl být:


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
    };
}

Dalším krokem je instalace knihoven komunikačních služeb.

Nainstalujte knihovny Komunikačních služeb

Používáte knihovnu Identity, abyste vygenerovali přístupové tokeny uživatele.

Pomocí příkazu npm install nainstalujte Communication Services Identity SDK pro JavaScript.


npm install @azure/communication-identity --save

Možnost --save uvádí knihovnu jako závislost ve vašem souboru package.json.

V horní části index.js souboru naimportujte rozhraní pro CommunicationIdentityClient parametr.

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

Generování přístupových tokenů

Aby vaše funkce mohla generovat uživatelské přístupové tokeny, musíte nejprve použít řetězec připojení pro váš prostředek služby Communication Services.

Pro více informací o tom, jak získat váš připojovací řetězec, naleznete v Rychlý start: Vytváření a správa zdrojů komunikačních služeb.

const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'

Dále upravte svou původní funkci tak, aby generovala uživatelské přístupové tokeny.

Pro generování přístupových tokenů uživatele použijte metodu createUser k vytvoření uživatele. Po vytvoření uživatele použijte metodu getToken k vygenerování tokenu pro tohoto uživatele, který funkce vrátí.

Pro tento příklad nastavujete rozsah tokenu na voip. Mohou být nezbytné další rozsahy pro vaši aplikaci. Chcete-li se dozvědět více o rozsazích, podívejte se na Vytváření a správa přístupových tokenů.

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
    };
}

Pro stávající parametr Communication Services CommunicationUser můžete přeskočit krok vytváření a vygenerovat přístupový token. Další informace najdete v tématu Vytváření a správa přístupových tokenů.

Testování funkce

Spusťte funkci lokálně pomocí F5. Tento krok inicializuje funkci lokálně a zpřístupňuje ji prostřednictvím http://localhost:7071/api/FUNCTION_NAME. Pro více informací o místním spuštění si přečtěte dokument Quickstart: Create a C# function in Azure by using Visual Studio Code.

Otevřete adresu URL v prohlížeči a zobrazí se text odpovědi s ID uživatele komunikace, tokenem a vypršením platnosti tokenu.

Snímek obrazovky, který ukazuje příklad odpovědi pro vytvořenou funkci.

Nasadit funkci do Azure

Pro nasazení vaší funkce postupujte podle pokynů krok za krokem v Quickstart: Create a C# function in Azure by using Visual Studio Code.

Shrnutí, je potřeba:

  1. Přihlaste se do Azure z Visual Studia.
  2. Publikujte projekt do svého účtu Azure. Tady potřebujete zvolit existující předplatné.
  3. Vytvořte nový prostředek funkce pomocí průvodce ve Visual Studio nebo pomocí existujícího prostředku. Pro novou prostředku je třeba ji nakonfigurovat na požadovaný region, runtime a jedinečný identifikátor.
  4. Počkejte, až se nasazení dokončí.
  5. Spusťte funkci.

Spusťte funkci

Spusťte funkci pomocí adresy URL http://<function-appn-ame>.azurewebsites.net/api/<function-name>.

Chcete-li najít URL, klikněte pravým tlačítkem myši na funkci ve Visual Studio Code a zkopírujte URL funkce.

Pro více informací o tom, jak spustit svou funkci, se podívejte na Quickstart: Create a C# function in Azure by using Visual Studio Code.

Zabezpečte koncový bod

Jako součást instalace důvěryhodné služby pro poskytování přístupových tokenů uživatelům musíte vzít v úvahu zabezpečení tohoto koncového bodu, abyste zajistili, že žádný útočník nemůže náhodně vytvořit tokeny pro vaši službu. Azure Functions poskytuje integrované bezpečnostní funkce, které můžete použít k zabezpečení koncového bodu pomocí různých typů autentizačních zásad. Další informace najdete v tématu Zabezpečení služby Azure Functions.

Vyčistěte zdroje

Pokud chcete vyčistit a odstranit předplatné Azure Communication Services, můžete odstranit prostředek nebo skupinu prostředků. Odstranění skupiny prostředků také odstraní všechny související prostředky. Více informací o tom, jak vyčistit zdroje komunikační služby a vyčistit zdroje Azure Functions, naleznete zde.