Az Azure-függvény integrálása
Bevezetés
Ez az oktatóanyag részletes útmutatást nyújt arról, hogyan állíthat be egy Azure-függvényt a felhasználóval kapcsolatos információk fogadásához. Az Azure-függvények beállítása erősen ajánlott. Segít elkerülni a Contoso alkalmazás kemény kódolású alkalmazásparamétereit (például a felhasználói azonosítót és a felhasználói jogkivonatot). Ezek az információk szigorúan bizalmasak. Ennél is fontosabb, hogy rendszeresen frissítjük a felhasználói jogkivonatokat a háttérrendszeren. A felhasználói azonosító és a jogkivonat kombinációjának szigorú kódolásához minden frissítés után szerkeszteni kell az értéket.
Előfeltételek
Az első lépések előtt győződjön meg arról, hogy:
- Azure-fiók létrehozása aktív előfizetéssel. További részletekért lásd : Fiók létrehozása ingyenesen.
- Telepítse a Visual Studio Code-ot.
Függvények beállítása
- Telepítse az Azure-függvénybővítményt a Visual Studio Code-ban. Telepítheti a Visual Studio Code beépülő modul böngészőjéből, vagy ezt a hivatkozást követve
- A hivatkozás követésével állítson be egy helyi Azure-függvényalkalmazást. Létre kell hoznunk egy helyi függvényt a JavaScript HTTP-triggersablonjának használatával.
- Telepítse az Azure Communication Services-kódtárakat. Az identitástár használatával hozunk létre felhasználói hozzáférési jogkivonatokat. Futtassa az npm telepítési parancsot a helyi Azure-függvényalkalmazás könyvtárában az Azure Communication Services Identity SDK for JavaScript telepítéséhez.
npm install @azure/communication-identity --save
- Módosítsa a
index.js
fájlt úgy, hogy az az alábbi kódhoz hasonlóan nézzen ki:
const { CommunicationIdentityClient } = require('@azure/communication-identity');
const connectionString = '<your_connection_string>'
const acsEndpoint = "<your_ACS_endpoint>"
module.exports = async function (context, req) {
let tokenClient = new CommunicationIdentityClient(connectionString);
const userIDHolder = await tokenClient.createUser();
const userId = userIDHolder.communicationUserId
const userToken = await (await tokenClient.getToken(userIDHolder, ["chat"])).token;
context.res = {
body: {
acsEndpoint,
userId,
userToken
}
};
}
Magyarázat a fenti kódhoz: Az első sor importálja a felületet a CommunicationIdentityClient
. A második sor kapcsolati sztring az Azure Portal Azure Communication Services-erőforrásában található. A ACSEndpoint
létrehozott Azure Communication Services-erőforrás URL-címe.
- Nyissa meg a helyi Azure-függvénymappát a Visual Studio Code-ban. Nyissa meg és
index.js
futtassa a helyi Azure-függvényt. Létrejön és kinyomtat egy helyi Azure-függvényvégpontot a terminálon. A nyomtatott üzenet a következőhöz hasonló:
Functions:
HttpTrigger1: [GET,POST] http://localhost:7071/api/HttpTrigger1
Nyissa meg a hivatkozást egy böngészőben. Az eredmény az alábbi példához hasonló lesz:
{
"acsEndpoint": "<Azure Function endpoint>",
"userId": "8:acs:a636364c-c565-435d-9818-95247f8a1471_00000014-f43f-b90f-9f3b-8e3a0d00c5d9",
"userToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOmE2MzYzNjRjLWM1NjUtNDM1ZC05ODE4LTk1MjQ3ZjhhMTQ3MV8wMDAwMDAxNC1mNDNmLWI5MGYtOWYzYi04ZTNhMGQwMGM1ZDkiLCJzY3AiOjE3OTIsImNzaSI6IjE2Njc4NjI3NjIiLCJleHAiOjE2Njc5NDkxNjIsImFjc1Njb3BlIjoiY2hhdCIsInJlc291cmNlSWQiOiJhNjM2MzY0Yy1jNTY1LTQzNWQtOTgxOC05NTI0N2Y4YTE0NzEiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY3ODYyNzYyfQ.t-WpaUUmLJaD0V2vgn3M5EKdJUQ_JnR2jnBUZq3J0zMADTnFss6TNHMIQ-Zvsumwy14T1rpw-1FMjR-zz2icxo_mcTEM6hG77gHzEgMR4ClGuE1uRN7O4-326ql5MDixczFeIvIG8s9kAeJQl8N9YjulvRkGS_JZaqMs2T8Mu7qzdIOiXxxlmcl0HeplxLaW59ICF_M4VPgUYFb4PWMRqLXWjKyQ_WhiaDC3FvhpE_Bdb5U1eQXDw793V1_CRyx9jMuOB8Ao7DzqLBQEhgNN3A9jfEvIE3gdwafpBWlQEdw-Uuf2p1_xzvr0Akf3ziWUsVXb9pxNlQQCc19ztl3MIQ"
}
A helyi függvény üzembe helyezése a felhőben. További részleteket ebben a dokumentációban talál.
Tesztelje az üzembe helyezett Azure-függvényt. Először keresse meg az Azure-függvényt az Azure Portalon. Ezután használja a "Függvény URL-címének lekérése" gombot az Azure-függvény végpontjának lekéréséhez. A megjelenő eredménynek az 5. lépésben láthatóhoz hasonlónak kell lennie. Az Azure-függvény végpontja az alkalmazásparaméterek inicializálásához lesz használva.
Implementálás
UserTokenClient
, amely a cél Azure-függvény erőforrás meghívására és az Azure Communication Services-végpont, a felhasználói azonosító és a felhasználói jogkivonat lekérésére szolgál a visszaadott JSON-objektumból. A használathoz tekintse meg a mintaalkalmazást.
Hibaelhárítási útmutató
- Ha az Azure-függvénybővítmény nem tudta üzembe helyezni a helyi függvényt az Azure-felhőben, annak oka valószínűleg a Visual Studio Code verziója és az Azure-függvénybővítmény hibája. Ezt a verziókombinációt teszteltük, hogy működjön: Visual Studio Code-verzió
1.68.1
és Azure-függvénybővítmény verziója1.2.1
. - Az alkalmazásállandók inicializálásának helye bonyolult, de fontos. Ellenőrizze duplán a csevegés androidos gyorsindítását. Pontosabban az "Alkalmazásállandók beállítása" című szakasz kiemelt megjegyzése, és hasonlítsa össze a használt verzió mintaalkalmazásával.
(Nem kötelező) az Azure-függvény végpontjának védelme
Bemutató célokra ez a minta alapértelmezés szerint egy nyilvánosan elérhető végpontot használ egy Azure Communication Services-jogkivonat lekéréséhez. Éles helyzetekben az egyik lehetőség a saját biztonságos végpont használata a saját jogkivonatok kiépítéséhez.
További konfiguráció esetén ez a minta támogatja a Microsoft Entra által védett végponthoz való csatlakozást, így az alkalmazásnak felhasználói naplóra van szüksége egy Azure Communication Services-jogkivonat lekéréséhez. A felhasználónak be kell jelentkeznie a Microsoft-fiókkal az alkalmazás eléréséhez. Ez a beállítás növeli a biztonsági szintet, miközben a felhasználóknak be kell jelentkezniük. Döntse el, hogy a használati esetek alapján engedélyezi-e.
Vegye figyelembe, hogy jelenleg nem támogatjuk a Microsoft Entra-azonosítót a mintakódban. Kövesse az alábbi hivatkozásokat az alkalmazás és az Azure-függvény engedélyezéséhez:
Regisztrálja az alkalmazást a Microsoft Entra ID (Android platformbeállítások használatával) alatt.
Konfigurálja az App Service-t vagy az Azure Functions-alkalmazást a Microsoft Entra ID-bejelentkezés használatára.