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
- Node.js
- Visual Studio Code nebo jiný editor kódu
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.
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
Krok 3: Souhlas správce
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: Správce 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í:
Správce klienta
Pokud jste správce, 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 alespoň správce cloudových aplikací 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 nahttps://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: