Vytvoření důvěryhodné služby přístupu uživatelů pomocí Azure Functions
Tento článek popisuje, jak pomocí Azure Functions vytvořit důvěryhodnou službu přístupu uživatelů.
Důležité
Koncový bod vytvořený na konci tohoto kurzu není zabezpečený. Nezapomeňte si přečíst podrobnosti o zabezpečení v článku Zabezpečení funkce Azure Functions . Do koncového bodu musíte přidat zabezpečení, aby se zajistilo, že aktéři se špatnými chybami nebudou moct zřizovat tokeny.
Stáhnout kód
Vyhledání dokončeného kódu pro tento rychlý start na GitHubu
Požadavky
- Účet Azure s aktivním předplatným. Podrobnosti najdete v tématu Vytvoření účtu zdarma.
- Visual Studio Code na jedné z podporovaných platforem
-
Node.jsverze , Active LTS a Údržba LTS (doporučuje se verze 10.14.1).
node --version
Ke kontrole verze použijte příkaz . - Rozšíření Azure Functions pro Visual Studio Code
- Aktivní prostředek a připojovací řetězec služby Communication Services. Vytvořte prostředek služby Communication Services.
Přehled
Pro účely tohoto kurzu vytvoříme funkci Azure Functions, která bude sloužit jako služba zřizování důvěryhodných 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ů pro Azure Communication Services. Uživatelé vašich aplikací komunikačních služeb budou pro účast ve vláknech chatu a voláních VoIP vyžadovat Access Token
. Funkce Azure Functions bude fungovat jako důvěryhodný prostředník mezi uživatelem a komunikačními službami. To vám umožní zřizovat přístupové tokeny, aniž byste uživatelům museli vystavit připojovací řetězec prostředku.
Další informace najdete v koncepční dokumentaci k architektuře klient-servera ověřování a autorizaci .
Nastavení
Azure Functions nastavení
Nejprve nastavíme základní strukturu pro naši funkci Azure. Podrobné pokyny k nastavení najdete tady: Vytvoření funkce pomocí editoru Visual Studio Code.
Naše funkce Azure Functions vyžaduje následující konfiguraci:
- Jazyk: JavaScript
- Šablona: Trigger HTTP
- Úroveň autorizace: Anonymní (můžete ji později přepnout, pokud dáváte přednost jinému modelu autorizace)
- Název funkce: Definované uživatelem
Po provedení Azure Functions pokynů s výše uvedenou konfigurací byste měli mít v nástroji Visual Studio Code projekt pro funkci Azure Functions se souboremindex.js
, který obsahuje samotnou funkci. Kód uvnitř tohoto souboru by měl vypadat takto:
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í knihoven Azure Communication Services.
Instalace knihoven komunikačních služeb
K vygenerování User Access Tokens
použijeme knihovnu Identity
.
Pomocí příkazu npm install
nainstalujte sadu SDK Azure Communication Services Identity pro JavaScript.
npm install @azure/communication-identity --save
Možnost --save
zobrazí seznam knihovny jako závislosti v souboru package.json .
V horní části index.js
souboru naimportujte rozhraní pro CommunicationIdentityClient
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Generování přístupových tokenů
Abychom funkci Azure Functions umožnili vygenerovat User Access Tokens
, musíme nejprve použít připojovací řetězec pro prostředek komunikačních služeb.
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 vygenerovala User Access Tokens
.
User Access Tokens
se vygenerují vytvořením uživatele z createUser
metody . Po vytvoření uživatele můžeme použít metodu getToken
k vygenerování tokenu pro uživatele, který funkce Azure Functions vrátí.
V tomto příkladu nakonfigurujeme obor tokenu na voip
. Pro vaši aplikaci můžou být nezbytné jiné 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 komunikačních služeb CommunicationUser
můžete přeskočit krok vytvoření a vygenerovat přístupový token. Další podrobnosti najdete v rychlém startu Vytvoření přístupových tokenů uživatelů.
Testování funkce Azure Functions
Spusťte funkci Azure Functions místně pomocí F5
příkazu . Tím se funkce Azure Functions inicializuje místně a zpřístupní se prostřednictvím: http://localhost:7071/api/FUNCTION_NAME
. Projděte si 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.
Nasazení funkce do Azure
Pokud chcete nasadit funkci Azure Functions, můžete postupovat podle podrobných pokynů.
Stručně řečeno, budete muset:
- Přihlášení k Azure ze sady Visual Studio
- Publikujte projekt na svůj účet Azure. Tady budete muset zvolit existující předplatné.
- Pomocí průvodce sadou Visual Studio vytvořte nový prostředek funkce Azure Functions nebo použijte existující prostředek. U nového prostředku budete muset nakonfigurovat požadovanou oblast, modul runtime a jedinečný identifikátor.
- Počkejte na dokončení nasazení.
- Spuštění funkce 🎉
Spuštění funkce Azure Functions
Spuštění funkce Azure pomocí adresy URL http://<function-appn-ame>.azurewebsites.net/api/<function-name>
Adresu URL najdete tak, že kliknete pravým tlačítkem na funkci v editoru Visual Studio Code a zkopírujete adresu URL funkce.
Další informace o spuštění funkce Azure
Zabezpečení funkce Azure Functions
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 zajistili, že žádný aktér nebude moct tokeny pro vaši službu náhodně vytvářet. 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 Functions.
Vyčištění prostředků
Pokud chcete vyčistit a odebrat předplatné komunikačních služeb, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky k ní přidružené. Tady najdete další informace o čištění prostředků služby Azure Communication Service a o čištění prostředků funkcí Azure.
Další kroky
Můžete také chtít: