Rövid útmutató: Jogkivonat beszerzése és a Microsoft Graph meghívása Node.js konzolalkalmazásból
Ebben a rövid útmutatóban letölthet és futtathat egy kódmintát, amely bemutatja, hogy egy Node.js konzolalkalmazás hogyan szerezhet be hozzáférési jogkivonatot az alkalmazás identitásával a Microsoft Graph API meghívásához és a címtárban lévő felhasználók listájának megjelenítéséhez. A kódminta bemutatja, hogy egy felügyelet nélküli feladat vagy Windows-szolgáltatás hogyan futtatható alkalmazásidentitással a felhasználó identitása helyett.
Ez a rövid útmutató a Microsoft Authentication Library for Node.js (MSAL Node) és az ügyfél hitelesítő adatainak megadását használja.
Előfeltételek
- Node.js
- Visual Studio Code vagy más kódszerkesztő
A mintaalkalmazás regisztrálása és letöltése
Első lépésként kövesse az alábbi lépéseket.
1. lépés: Az alkalmazás regisztrálása
Tipp.
A cikkben szereplő lépések a portáltól függően kissé eltérhetnek.
Az alkalmazás regisztrálásához és az alkalmazás regisztrációs információinak a megoldáshoz való kézi hozzáadásához kövesse az alábbi lépéseket:
- Jelentkezzen be a Microsoft Entra felügyeleti központba legalább alkalmazásként Rendszergazda istratorként.
- Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk.
- Új regisztráció kiválasztása.
- Adja meg például
msal-node-cli
az alkalmazás nevét. Előfordulhat, hogy az alkalmazás felhasználói látják ezt a nevet, és később módosíthatja. - Válassza ki a pénztárgépet.
- A Kezelés területen válassza a Tanúsítványok és titkos kódok lehetőséget.
- Az Ügyfél titkos kulcsai területen válassza az Új ügyfélkulcs lehetőséget, adjon meg egy nevet, majd válassza a Hozzáadás lehetőséget. Jegyezze fel a titkos kód értékét egy biztonságos helyen egy későbbi lépésben való használatra.
- A Kezelés területen válassza az API-engedélyek>Hozzáadása engedélyt. Válassza a Microsoft Graphot.
- Válassza ki az alkalmazásengedélyeket.
- A Felhasználói csomópont területen válassza a User.Read.All elemet, majd az Engedélyek hozzáadása lehetőséget.
2. lépés: A Node.js mintaprojekt letöltése
3. lépés: A Node.js mintaprojekt konfigurálása
Bontsa ki a zip-fájlt a lemez gyökeréhez közeli helyi mappába, például C:/Azure-Samples.
Szerkessze az .env fájlt, és cserélje le a mezők
TENANT_ID
értékeit,CLIENT_ID
majdCLIENT_SECRET
a következő kódrészletre:"TENANT_ID": "Enter_the_Tenant_Id_Here", "CLIENT_ID": "Enter_the_Application_Id_Here", "CLIENT_SECRET": "Enter_the_Client_Secret_Here"
Ahol:
Enter_the_Application_Id_Here
- a korábban regisztrált alkalmazás (ügyfél) azonosítója . Keresse meg ezt az azonosítót az alkalmazásregisztráció áttekintésében.Enter_the_Tenant_Id_Here
- cserélje le ezt az értéket a bérlőazonosítóra vagy a bérlő nevére (például contoso.microsoft.com). Ezeket az értékeket az alkalmazásregisztráció áttekintésében találja.Enter_the_Client_Secret_Here
- cserélje le ezt az értéket a korábban létrehozott ügyfélkódra. Új kulcs létrehozásához használja a Tanúsítványok > titkos kulcsokat az alkalmazásregisztrációs beállítások között.
Ha egyszerű szöveges titkos kódot használ a forráskódban, az nagyobb biztonsági kockázatot jelent az alkalmazás számára. Bár a rövid útmutatóban szereplő minta egyszerű szöveges ügyféltitkot használ, csak az egyszerűség kedvéért. Javasoljuk, hogy a bizalmas ügyfélalkalmazásokban az ügyfél titkos kulcsai helyett használjon tanúsítvány-hitelesítő adatokat , különösen az éles környezetben üzembe helyezni kívánt alkalmazásokat.
Szerkessze az .env parancsot, és cserélje le a Microsoft Entra-azonosítót és a Microsoft Graph-végpontokat a következő értékekre:
- A Microsoft Entra-végpont esetében cserélje le a következőre
Enter_the_Cloud_Instance_Id_Here
https://login.microsoftonline.com
: . - A Microsoft Graph-végpont esetében cserélje le a következőre
Enter_the_Graph_Endpoint_Here
https://graph.microsoft.com/
: .
- A Microsoft Entra-végpont esetében cserélje le a következőre
4. lépés: Rendszergazda hozzájárulás
Ha ezen a ponton próbálja futtatni az alkalmazást, HTTP 403 – Tiltott hiba jelenik meg: Insufficient privileges to complete the operation
. Ez a hiba azért fordul elő, mert minden csak alkalmazásra vonatkozó engedélyhez rendszergazdai hozzájárulás szükséges: egy alkalmazásnak Rendszergazda istratornak vagy globális Rendszergazda istratornak hozzá kell adnia az alkalmazáshoz. Szerepkörétől függően válasszon az alábbi lehetőségek közül:
Rendszergazdák
Ha az Alkalmazás Rendszergazda istrator vagy globális Rendszergazda istrator szerepkörhöz van hozzárendelve, nyissa meg az API-engedélyek lapot az Azure Portal alkalmazásregisztrációjában, és válassza a rendszergazdai hozzájárulás megadása a(z) {Tenant Name} számára (ahol {Tenant Name} a címtár neve).
Standard felhasználók
Ha Ön a bérlő szokásos felhasználója, akkor egy globális Rendszergazda istratort kell kérnie, hogy adjon rendszergazdai hozzájárulást az alkalmazáshoz. Ehhez adja meg a következő URL-címet a rendszergazdának:
https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here
Ahol:
Enter_the_Tenant_Id_Here
- cserélje le ezt az értéket a bérlőazonosítóra vagy a bérlő nevére (például contoso.microsoft.com)Enter_the_Application_Id_Here
– ez a regisztrált alkalmazáshoz tartozó Alkalmazás (ügyfél) azonosítója érték.
5. lépés: Az alkalmazás futtatása
Keresse meg a minta gyökérmappáját (ahol package.json
található) egy parancssorban vagy konzolon. Az első futtatás előtt telepítenie kell a mintaalkalmazás által igényelt függőségeket:
npm install
Ezután futtassa az alkalmazást parancssorban vagy konzolon:
node . --op getUsers
A konzol kimenetén látnia kell néhány JSON-töredéket, amely a Microsoft Entra könyvtár felhasználóinak listáját jelöli.
Tudnivalók a kódról
Az alábbiakban a mintaalkalmazás néhány fontos aspektusát tárgyaljuk.
MSAL-csomópont
Az MSAL-csomópont a felhasználók bejelentkezéséhez és a Microsoft Identitásplatform által védett API eléréséhez használt jogkivonatok lekéréséhez használt kódtár. A leírás szerint ez a rövid útmutató alkalmazásengedélyek alapján (az alkalmazás saját identitásának használatával) kéri le a jogkivonatokat a delegált engedélyek helyett. Az ebben az esetben használt hitelesítési folyamat az OAuth 2.0 ügyfél hitelesítő adatainak folyamata. További információ az MSAL-csomópont démonalkalmazásokkal való használatáról: Forgatókönyv: Démonalkalmazás.
Az MSAL-csomópontot az alábbi npm parancs futtatásával telepítheti.
npm install @azure/msal-node --save
Az MSAL inicializálása
Az MSAL-re mutató hivatkozás hozzáadásához adja hozzá az alábbi kódot:
const msal = require('@azure/msal-node');
Ezután inicializálja az MSAL-t az alábbi kóddal:
const msalConfig = {
auth: {
clientId: "Enter_the_Application_Id_Here",
authority: "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
clientSecret: "Enter_the_Client_Secret_Here",
}
};
const cca = new msal.ConfidentialClientApplication(msalConfig);
Ahol: | Leírás |
---|---|
clientId |
Az Azure Portalon regisztrált alkalmazás alkalmazásazonosítója (ügyfél-azonosítója). Ezt az értéket az alkalmazás Áttekintés oldalán találja az Azure Portalon. |
authority |
A felhasználó által hitelesítendő STS-végpont. Általában https://login.microsoftonline.com/{tenant} nyilvános felhő esetén, ahol a(z) {tenant} a bérlő vagy a bérlőazonosító neve. |
clientSecret |
Az azure portalon létrehozott ügyfélkulcs az alkalmazáshoz. |
További információkért tekintse meg a referenciadokumentációt : ConfidentialClientApplication
Jogkivonatok lekérése
Ha jogkivonatot szeretne lekérni az alkalmazás identitásával, használja a következő acquireTokenByClientCredential
módszert:
const tokenRequest = {
scopes: [ 'https://graph.microsoft.com/.default' ],
};
const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Ahol: | Leírás |
---|---|
tokenRequest |
A kért hatóköröket tartalmazza. Bizalmas ügyfelek esetén ennek a formátumnak hasonlónak {Application ID URI}/.default kell lennie ahhoz, hogy jelezze, hogy a kért hatókörök statikusan vannak definiálva az Azure Portalon beállított alkalmazásobjektumban (a Microsoft Graph {Application ID URI} esetében erre mutat).https://graph.microsoft.com Egyéni webes API-k {Application ID URI} esetén az Azure Portal alkalmazásregisztrációjában az API-k elérhetővé tétele szakaszban van definiálva. |
tokenResponse |
A válasz tartalmaz egy hozzáférési jogkivonatot a kért hatókörökhöz. |
Súgó és támogatás
Ha segítségre van szüksége, szeretne jelentést készíteni egy problémáról, vagy szeretne többet megtudni a támogatási lehetőségekről, olvassa el a súgót és a fejlesztők támogatását.
Következő lépések
Az MSAL-csomóponttal történő démon-/konzolalkalmazás-fejlesztéssel kapcsolatos további információkért tekintse meg az oktatóanyagot: