Megbízható felhasználói hozzáférési szolgáltatás létrehozása Azure Functions használatával
Ez a cikk azt ismerteti, hogyan hozhat létre megbízható felhasználói hozzáférési szolgáltatást a Azure Functions használatával.
Fontos
Az oktatóanyag végén létrehozott végpont nem biztonságos. Mindenképpen olvassa el a biztonsági részleteket az Azure Function Security cikkben. A végponthoz biztonsági elemet kell hozzáadnia, hogy a rossz szereplők ne tudjanak jogkivonatokat kiépíteni.
Kód letöltése
A rövid útmutató véglegesített kódjának megkeresése a GitHubon
Előfeltételek
- Egy Azure-fiók, aktív előfizetéssel. További részletekért lásd: Fiók létrehozása ingyenesen.
- Visual Studio Code az egyik támogatott platformon.
-
Node.js, aktív LTS- és karbantartási LTS-verziók (10.14.1 ajánlott). A verzió ellenőrzéséhez használja a
node --version
parancsot. - A Visual Code Azure Functions-bővítménye.
- Aktív Communication Services-erőforrás és kapcsolati sztring. Hozzon létre egy Communication Services-erőforrást.
Áttekintés
Ebben az oktatóanyagban egy olyan Azure-függvényt fogunk létrehozni, amely megbízható jogkivonat-kiépítési szolgáltatásként fog szolgálni. Ezzel az oktatóanyagtal elindíthatja saját jogkivonat-kiépítési szolgáltatását.
Ez a szolgáltatás felelős a felhasználók Azure Communication Services hitelesítéséért. A Communication Services-alkalmazások felhasználóinak szüksége lesz egyre Access Token
a csevegési beszélgetésekben és a VoIP-hívásokban való részvételhez. Az Azure-függvény megbízható közvetítőként fog működni a felhasználó és a Kommunikációs szolgáltatások között. Ez lehetővé teszi hozzáférési jogkivonatok kiépítését anélkül, hogy az erőforrás-kapcsolati sztring a felhasználók számára tenné elérhetővé.
További információkért tekintse meg az ügyfél-kiszolgáló architektúráját , valamint a hitelesítés és engedélyezés fogalmi dokumentációját.
Beállítása
Azure Functions beállítása
Először állítsuk be az Azure-függvény alapstruktúráját. A beállítás részletes útmutatója itt található: Függvény létrehozása a Visual Studio Code használatával
Az Azure-függvényhez a következő konfiguráció szükséges:
- Nyelv: JavaScript
- Sablon: HTTP-eseményindító
- Engedélyezési szint: Névtelen (Ez később váltható, ha egy másik engedélyezési modellt szeretne használni)
- Függvény neve: Felhasználó által definiált
A fenti konfigurációval Azure Functions utasítások követését követően rendelkeznie kell egy projekttel az Azure-függvényhez készült Visual Studio Code-ban egy index.js
olyan fájllal, amely magában a függvényt tartalmazza. A fájlban található kódnak a következőnek kell lennie:
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
};
}
Most folytatjuk Azure Communication Services kódtárak telepítését.
Kommunikációs szolgáltatási kódtárak telepítése
A kódtár használatával Identity
fogjuk létrehozni a következőt User Access Tokens
: .
npm install
Az paranccsal telepítse a JavaScripthez készült Azure Communication Services Identity SDK-t.
npm install @azure/communication-identity --save
A --save
beállítás függőségként listázza a kódtárat a package.json fájlban.
A fájl tetején index.js
importálja a CommunicationIdentityClient
const { CommunicationIdentityClient } = require('@azure/communication-identity');
Hozzáférési jogkivonat létrehozása
Ahhoz, hogy az Azure-függvényünk létrehozhassonUser Access Tokens
, először a Communication Services-erőforrás kapcsolati sztring kell használnunk.
A kapcsolati sztring lekérésével kapcsolatos további információkért tekintse meg az erőforrás-kiépítési rövid útmutatót.
const connectionString = 'INSERT YOUR RESOURCE CONNECTION STRING'
A következő lépésben az eredeti függvényt úgy módosítjuk, hogy létrehozza a következőt User Access Tokens
: .
User Access Tokens
egy felhasználó metódusból történő createUser
létrehozásával jön létre. A felhasználó létrehozása után a getToken
metódussal létrehozhatunk egy jogkivonatot a felhasználó számára, amelyet az Azure-függvény ad vissza.
Ebben a példában a jogkivonat hatókörét a következőre konfiguráljuk: voip
. Az alkalmazáshoz más hatókörökre is szükség lehet. További információ a hatókörökről
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
};
}
Meglévő Communication Services CommunicationUser
esetén kihagyhatja a létrehozási lépést, és létrehozhat egy hozzáférési jogkivonatot. További részleteket a Felhasználói hozzáférési jogkivonatok létrehozása rövid útmutatóban talál.
Az Azure-függvény tesztelése
Futtassa az Azure-függvényt helyileg a használatával F5
. Ez helyben inicializálja az Azure-függvényt, és a következőn keresztül teszi elérhetővé: http://localhost:7071/api/FUNCTION_NAME
. Tekintse meg a helyi futtatásról szóló további dokumentációt
Nyissa meg az URL-címet a böngészőben, és meg kell jelennie egy választörzsnek, amely tartalmazza a kommunikációs felhasználói azonosítót, a jogkivonat jogkivonatát és lejáratát.
A függvény üzembe helyezése az Azure-ban
Az Azure-függvény üzembe helyezéséhez kövesse a lépésenkénti utasításokat
Összefoglalva a következőket kell elvégeznie:
- Bejelentkezés az Azure-ba a Visual Studióból
- Tegye közzé a projektet az Azure-fiókjában. Itt ki kell választania egy meglévő előfizetést.
- Hozzon létre egy új Azure-függvényerőforrást a Visual Studio varázslóval, vagy használjon egy meglévő erőforrást. Új erőforrás esetén konfigurálnia kell azt a kívánt régióra, futtatókörnyezetre és egyedi azonosítóra.
- Várakozás az üzembe helyezés véglegesítésére
- A függvény 🎉 futtatása
Azure-függvény futtatása
Az Azure-függvény futtatása az URL-cím használatával http://<function-appn-ame>.azurewebsites.net/api/<function-name>
Az URL-címet a jobb gombbal a Visual Studio Code-függvényre kattintva és a függvény URL-címének másolásával keresheti meg.
További információ az Azure-függvény futtatásáról
Az Azure-függvény biztonságossá tétele
Egy megbízható szolgáltatás beállításának részeként, amely hozzáférési jogkivonatokat épít ki a felhasználók számára, figyelembe kell vennünk a végpont biztonságát annak érdekében, hogy egyetlen rossz szereplő sem tud véletlenszerűen jogkivonatokat létrehozni a szolgáltatáshoz. Azure Functions olyan beépített biztonsági szolgáltatásokat biztosít, amelyekkel különböző hitelesítési házirendek használatával védheti a végpontot. További információ az Azure Function Securityről
Az erőforrások eltávolítása
Ha törölni és eltávolítani szeretne egy Communication Services-előfizetést, törölheti az erőforrást vagy az erőforráscsoportot. Az erőforráscsoport törlése a hozzá társított egyéb erőforrásokat is törli. További információ az Azure Communication Service-erőforrások tisztításáról és az Azure-függvényerőforrások tisztításáról.
Következő lépések
A következőket is érdemes lehet elvégeznie: