Vytvoření důvěryhodné služby pro přístup uživatelů pomocí Azure Functions

Tento článek popisuje, jak pomocí Azure Functions vytvořit důvěryhodnou službu pro přístup uživatelů.

Důležité

Koncový bod vytvořený na konci tohoto kurzu není bezpečný. Nezapomeňte si přečíst o podrobnostech o zabezpečení v článku Zabezpečení funkce Azure. Abyste zajistili, že neschůdní aktéři neschová tokeny, musíte do koncového bodu přidat zabezpečení.

Stažení kódu

Vyhledejte dokončený kód pro tento rychlý start na GitHubu.

Požadavky

Přehled

Diagram architektury důvěryhodných služeb

V tomto kurzu vytvoříme funkci Azure, která bude sloužit jako důvěryhodná služba zřizování tokenů. Tento kurz můžete použít ke spuštění vlastní služby zřizování tokenů.

Tato služba zodpovídá za ověřování uživatelů v Azure Communication Services. Uživatelé vašich Communication Services aplikace budou vyžadovat , aby se mohli účastnit chatových vláken a Access Token volání VoIP. Funkce Azure Bude fungovat jako důvěryhodný prostředník mezi uživatelem a Communication Services. To vám umožní zřídit přístupové tokeny bez vystavení připojovacího řetězce prostředku pro vaše uživatele.

Další informace najdete v koncepční dokumentaci architektury klient-server a ověřování a autorizace.

Nastavení

Azure Functions nastavení

Nejprve nastavme základní strukturu pro naši funkci Azure. Podrobné pokyny k nastavení najdete tady: Vytvoření funkce pomocí Visual Studio Code

Naše funkce Azure Vyžaduje následující konfiguraci:

  • Jazyk: JavaScript
  • Šablona: Trigger HTTP
  • Úroveň autorizace: Anonymní (pokud dáváte přednost jinému modelu autorizace, můžete ho později přepnout)
  • Název funkce: Definovaný uživatelem

Po provedení Azure Functions s výše uvedenou konfigurací byste měli mít projekt ve službě Visual Studio Code pro funkci Azure se souborem, který obsahuje index.js samotnou funkci. Kód v tomto souboru by měl být následující:


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

Teď budeme pokračovat instalací Azure Communication Services knihoven.

Instalace knihoven komunikačních služeb

K vygenerování Identity souboru použijeme knihovnu User Access Tokens .

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


npm install @azure/communication-identity --save

Možnost uvádí knihovnu jako závislost v souboru --savepackage.js on.

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

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

Generování přístupového tokenu

Aby naše funkce Azure Mohla vygenerovat , musíme nejprve použít připojovací řetězec pro náš User Access Tokens Communication Services prostředků.

Další informace o načtení připojovacího řetězce najdete v rychlém startu pro zřizování prostředků.

const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'

Dále upravíme původní funkci tak, aby vygeneroval User Access Tokens .

User Access Tokens se generují vytvořením uživatele z createUser metody . Po vytvoření uživatele můžeme pomocí metody vygenerovat token pro tohoto uživatele, getToken který funkce Azure Vrátí.

V tomto příkladu nakonfigurujeme rozsah tokenu na voip . Pro vaši aplikaci můžou být potřeba další obory. Další informace o oborech

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

U existujících Communication Services můžete krok vytvoření CommunicationUser přeskočit a vygenerovat přístupový token. Další podrobnosti najdete v rychlém startu Vytvoření přístupových tokenů uživatelů.

Testování funkce Azure

Funkci Azure Function spusťte místně pomocí F5 příkazu . Tím se funkce Azure Function inicializuje místně a bude přístupná prostřednictvím: http://localhost:7071/api/FUNCTION_NAME . Podívejte se na další dokumentaci k místnímu spuštění.

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

Snímek obrazovky s příkladem odpovědi pro vytvořenou funkci Azure

Nasazení funkce do Azure

Pokud chcete nasadit funkci Azure Function, můžete postupovat podle podrobných pokynů.

V souhrnu budete muset:

  1. Přihlaste se k Azure z Visual Studio
  2. Publikujte projekt do svého účtu Azure. Tady budete muset zvolit existující předplatné.
  3. Vytvořte nový prostředek azure function pomocí průvodce Visual Studio nebo použijte existující prostředek. Pro nový prostředek ho budete muset nakonfigurovat pro požadovanou oblast, modul runtime a jedinečný identifikátor.
  4. Čekání na dokončení nasazení
  5. Spuštění funkce 🎉

Spuštění funkce Azure

Spuštění funkce Azure pomocí adresy URL http://<function-appn-ame>.azurewebsites.net/api/<function-name>

Adresu URL najdete kliknutím pravým tlačítkem na funkci na Visual Studio Code a zkopírováním adresy URL funkce.

Další informace o spuštění funkce Azure

Zabezpečení funkce Azure

V rámci nastavení důvěryhodné služby pro zřizování přístupových tokenů pro uživatele musíme vzít v úvahu zabezpečení tohoto koncového bodu, abychom měli jistotu, že pro vaši službu nemůže náhodně vytvářet tokeny žádný špatný aktér. Azure Functions poskytují integrované funkce zabezpečení, které můžete použít k zabezpečení koncového bodu pomocí různých typů zásad ověřování. Přečtěte si další informace o zabezpečení funkcí Azure.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné Communication Services, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené. Další informace o čištění prostředků služby Azure Communication Service a čištění prostředků Azure Function Resources najdete tady:.

Další kroky

Možná budete také chtít: