Sdílet prostřednictvím


Rychlý start: Získání tokenu a volání rozhraní Microsoft Graph API z konzolové aplikace Node.js pomocí identity aplikace

Vítejte Pravděpodobně to není stránka, kterou jste očekávali. Zatímco pracujeme na opravě, měl by vás tento odkaz dostat na správný článek:

Rychlý start: Získání tokenu a volání Microsoft Graphu z konzolové aplikace Node.js

Omlouváme se za nepříjemnosti a vážíme si vaší trpělivosti, zatímco pracujeme na vyřešení tohoto problému.

V tomto rychlém startu stáhnete a spustíte ukázku kódu, která předvádí, jak konzolová aplikace Node.js může získat přístupový token pomocí identity aplikace k volání rozhraní Microsoft Graph API a zobrazení seznamu uživatelů v adresáři. Ukázka kódu ukazuje, jak může bezobslužná úloha nebo služba Systému Windows běžet s identitou aplikace místo identity uživatele.

Tento rychlý start používá knihovnu Microsoft Authentication Library pro Node.js (uzel MSAL) s udělením přihlašovacích údajů klienta.

Požadavky

Stažení a konfigurace ukázkové aplikace

Krok 1: Konfigurace aplikace na webu Azure Portal

Aby ukázkový kód pro tento rychlý start fungoval, musíte vytvořit tajný klíč klienta a přidat oprávnění aplikace User.Read.All rozhraní Graph API.

Already configured Vaše aplikace je nakonfigurovaná s těmito atributy.

Krok 2: Stažení ukázkového projektu Node.js

Poznámka:

Enter_the_Supported_Account_Info_Here

Pokud se v tomto okamžiku pokusíte spustit aplikaci, zobrazí se chyba HTTP 403 – Zakázáno : Insufficient privileges to complete the operation. K této chybě dochází, protože jakékoli oprávnění jen pro aplikaci vyžaduje souhlas správce: globální Správa istrator vašeho adresáře musí udělit souhlas s vaší aplikací. V závislosti na vaší roli vyberte jednu z následujících možností:

Globální správce tenanta

Pokud jste globální Správa istrator, přejděte na stránku Oprávnění rozhraní API a vyberte Udělení souhlasu správce pro > Enter_the_Tenant_Name_Here

Standardní uživatel

Pokud jste standardním uživatelem vašeho tenanta, musíte požádat globálního Správa istratora o udělení souhlasu správce pro vaši aplikaci. Chcete-li to provést, dejte správci následující adresu URL:

https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here

Krok 4: Spuštění aplikace

V příkazovém řádku nebo konzole vyhledejte kořenovou složku ukázky (kde package.json se nachází). Závislosti této ukázky budete muset nainstalovat jednou:

npm install

Pak aplikaci spusťte přes příkazový řádek nebo konzolu:

node . --op getUsers

Na výstupu konzoly byste měli vidět nějaký fragment JSON představující seznam uživatelů v adresáři Microsoft Entra.

O kódu

Níže jsou popsány některé důležité aspekty ukázkové aplikace.

Uzel MSAL

Uzel MSAL je knihovna používaná k přihlášení uživatelů a vyžádání tokenů používaných pro přístup k rozhraní API chráněnému platformou Microsoft Identity Platform. Jak je popsáno, tento rychlý start vyžaduje tokeny podle oprávnění aplikace (pomocí vlastní identity aplikace) místo delegovaných oprávnění. Tok ověřování použitý v tomto případě se označuje jako tok přihlašovacích údajů klienta OAuth 2.0. Další informace o používání uzlu MSAL s aplikacemi démona najdete v tématu Scénář: Aplikace démona.

Uzel MSAL můžete nainstalovat spuštěním následujícího příkazu npm.

npm install @azure/msal-node --save

Inicializace knihovny MSAL

Odkaz na knihovnu MSAL můžete přidat tak, že přidáte následující kód:

const msal = require('@azure/msal-node');

Potom inicializujte knihovnu MSAL pomocí následujícího kódu:

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);
Kde: Popis
clientId Je ID aplikace (klienta), kterou jste zaregistrovali na webu Azure Portal. Tuto hodnotu najdete na stránce Přehled aplikace na webu Azure Portal.
authority Koncový bod služby tokenů zabezpečení pro uživatele k ověření, Obvykle https://login.microsoftonline.com/{tenant} pro veřejný cloud, kde {tenant} je název vašeho tenanta nebo ID tenanta.
clientSecret Je tajný klíč klienta vytvořený pro aplikaci na webu Azure Portal.

Další informace najdete v referenční dokumentaci pro ConfidentialClientApplication

Žádosti o tokeny

Pokud chcete požádat o token pomocí identity aplikace, použijte acquireTokenByClientCredential metodu:

const tokenRequest = {
    scopes: [ 'https://graph.microsoft.com/.default' ],
};

const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Kde: Popis
tokenRequest Obsahuje požadované obory. U důvěrných klientů by to mělo být ve formátu podobném {Application ID URI}/.default označení, že požadované obory jsou ty, které jsou staticky definované v objektu aplikace nastaveném na webu Azure Portal (pro Microsoft Graph {Application ID URI} , odkazuje na https://graph.microsoft.com). Pro vlastní webová rozhraní API {Application ID URI} je definována v části Vystavení rozhraní API v registraci aplikace na webu Azure Portal.
tokenResponse Odpověď obsahuje přístupový token pro požadované obory.

Nápověda a podpora

Pokud potřebujete pomoc, chcete nahlásit problém nebo se chcete dozvědět o možnostech podpory, přečtěte si nápovědu a podporu pro vývojáře.

Další kroky

Další informace o vývoji démonů nebo konzolových aplikací pomocí MSAL Node najdete v tomto kurzu: