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

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:

  1. Jelentkezzen be a Microsoft Entra felügyeleti központba legalább alkalmazásként Rendszergazda istratorként.
  2. Keresse meg az identitásalkalmazásokat>> Alkalmazásregisztrációk.
  3. Új regisztráció kiválasztása.
  4. Adja meg például msal-node-cliaz 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.
  5. Válassza ki a pénztárgépet.
  6. A Kezelés területen válassza a Tanúsítványok és titkos kódok lehetőséget.
  7. 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.
  8. A Kezelés területen válassza az API-engedélyek>Hozzáadása engedélyt. Válassza a Microsoft Graphot.
  9. Válassza ki az alkalmazásengedélyeket.
  10. 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

A kódminta letöltése

3. lépés: A Node.js mintaprojekt konfigurálása

  1. Bontsa ki a zip-fájlt a lemez gyökeréhez közeli helyi mappába, például C:/Azure-Samples.

  2. Szerkessze az .env fájlt, és cserélje le a mezők TENANT_IDértékeit, CLIENT_IDmajd CLIENT_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.

  3. 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_Herehttps://login.microsoftonline.com: .
    • A Microsoft Graph-végpont esetében cserélje le a következőre Enter_the_Graph_Endpoint_Herehttps://graph.microsoft.com/: .

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: