Udostępnij przez


Szybki start: uzyskiwanie tokenu i wywoływanie interfejsu API programu Microsoft Graph z poziomu aplikacji konsolowej Node.js przy użyciu tożsamości aplikacji

Witamy! Prawdopodobnie nie jest to oczekiwana strona. Chociaż pracujemy nad poprawką, ten link powinien podjąć Cię do odpowiedniego artykułu:

Szybki start: uzyskiwanie tokenu i wywoływanie programu Microsoft Graph z poziomu aplikacji konsolowej Node.js

Przepraszamy za niedogodności i doceniamy cierpliwość, podczas gdy pracujemy nad rozwiązaniem tego problemu.

W tym przewodniku szybkiego startu pobierzesz i uruchomisz przykład kodu, który pokazuje, jak aplikacja konsolowa Node.js może uzyskać token dostępu, korzystając z tożsamości aplikacji, aby wywołać interfejs API Microsoft Graph i wyświetlić listę użytkowników w katalogu. Przykładowy kod przedstawia sposób uruchamiania zadania nienadzorowanego lub usługi systemu Windows przy użyciu tożsamości aplikacji zamiast tożsamości użytkownika.

W tym przewodniku szybkiego startu użyto biblioteki Microsoft Authentication Library dla Node.js (MSAL Node) z mechanizmem przyznawania poświadczeń klienta.

Wymagania wstępne

Pobieranie i konfigurowanie przykładowej aplikacji

Krok 1. Konfigurowanie aplikacji w witrynie Azure Portal

Aby działał przykładowy kod z przewodnika „Szybki start”, musisz utworzyć tajny klucz klienta i dodać uprawnienie aplikacji User.Read.All interfejsu API Graph.

Już skonfigurowane Aplikacja jest skonfigurowana przy użyciu tych atrybutów.

Krok 2. Pobieranie przykładowego projektu Node.js

Uwaga

Enter_the_Supported_Account_Info_Here

Jeśli spróbujesz uruchomić aplikację w tym momencie, zostanie wyświetlony błąd HTTP 403 — Zabronione : Insufficient privileges to complete the operation. Ten błąd występuje, ponieważ każde uprawnienie tylko do aplikacji wymaga zgody administratora: administrator katalogu musi wyrazić zgodę na aplikację. Wybierz jedną z poniższych opcji w zależności od twojej roli:

Administrator dzierżawy

Jeśli jesteś administratorem, przejdź do strony Uprawnienia interfejsu API, wybierz pozycję Udziel zgody administratora dla > Enter_the_Tenant_Name_Here

Użytkownik standardowy

Jeśli jesteś standardowym użytkownikiem dzierżawy, musisz poprosić przynajmniej administratora aplikacji w chmurze o udzielenie zgody administratora dla swojej aplikacji. Aby to zrobić, udostępnij administratorowi następujący adres URL:

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

Krok 4. Uruchamianie aplikacji

Znajdź folder główny przykładu (gdzie package.json się znajduje) w wierszu polecenia lub konsoli. Należy zainstalować zależności tego przykładu raz:

npm install

Następnie uruchom aplikację za pomocą wiersza polecenia lub konsoli:

node . --op getUsers

W konsoli powinien zostać wyświetlony fragment kodu JSON reprezentujący listę użytkowników w katalogu Microsoft Entra.

Informacje o kodzie

Poniżej omówiono niektóre ważne aspekty przykładowej aplikacji.

Moduł MSAL

Biblioteka MSAL Node to biblioteka używana do logowania użytkowników i żądania tokenów używanych do uzyskiwania dostępu do interfejsu API chronionego przez Platforma tożsamości Microsoft. Zgodnie z opisem, ten szybki start żąda tokenów na podstawie uprawnień aplikacji (przy użyciu własnej tożsamości aplikacji) zamiast uprawnień delegowanych. Przepływ uwierzytelniania używany w tym przypadku jest nazywany przepływem poświadczeń klienta OAuth 2.0. Aby uzyskać więcej informacji na temat używania środowiska MSAL Node z aplikacjami typu demon, zobacz Scenariusz: aplikacja typu demon.

Węzeł MSAL można zainstalować, uruchamiając następujące polecenie npm.

npm install @azure/msal-node --save

Inicjowanie biblioteki MSAL

Aby dodać odwołanie do biblioteki MSAL, dodaj następujący kod:

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

Następnie zainicjuj bibliotekę MSAL, używając następującego kodu:

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);
Gdzie: opis
clientId Jest identyfikatorem aplikacji (klienta) dla aplikacji zarejestrowanej w witrynie Azure Portal. Tę wartość można znaleźć na stronie Przegląd aplikacji w witrynie Azure Portal.
authority Punkt końcowy usługi STS na potrzeby uwierzytelnienia użytkownika. W chmurze publicznej zazwyczaj używa się https://login.microsoftonline.com/{tenant}, gdzie {tenant} to nazwa klienta lub identyfikator klienta.
clientSecret Czy klucz tajny klienta został utworzony dla aplikacji w portalu Azure.

Więcej informacji można znaleźć w dokumentacji referencyjnej dla ConfidentialClientApplication

Przesyłanie żądań tokenów

Aby zażądać tokenu przy użyciu tożsamości aplikacji, należy użyć metody acquireTokenByClientCredential:

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

const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Gdzie: opis
tokenRequest Zawiera żądane zakresy. W przypadku klientów poufnych należy użyć formatu podobnego do {Application ID URI}/.default wskazującego, że żądane zakresy są statycznie zdefiniowane w obiekcie aplikacji ustawionym w witrynie Azure Portal (w przypadku programu Microsoft Graph {Application ID URI} wskazuje wartość https://graph.microsoft.com). W przypadku niestandardowych interfejsów API {Application ID URI} definiuje się je w sekcji Udostępnianie interfejsu API w Portalu Azure w ramach Rejestracji aplikacji.
tokenResponse Odpowiedź zawiera token dostępu dla żądanych zakresów.

Pomoc i obsługa techniczna

Jeśli potrzebujesz pomocy, chcesz zgłosić problem lub poznać opcje pomocy technicznej, zobacz Pomoc i obsługa techniczna dla deweloperów.

Następne kroki

Aby dowiedzieć się więcej na temat programowania aplikacji demona/konsoli za pomocą biblioteki MSAL Node, zobacz samouczek: