Udostępnij za pośrednictwem


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 Szybki start pobierzesz i uruchomisz przykładowy kod, który pokazuje, jak aplikacja konsolowa Node.js może uzyskać token dostępu przy użyciu tożsamości aplikacji w celu wywołania interfejsu API programu Microsoft Graph i wyświetlenia listy 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 Szybki start użyto biblioteki Microsoft Authentication Library dla Node.js (MSAL Node) z przyznawaniem 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 tego przewodnika Szybki start, musisz utworzyć klucz tajny klienta i dodać uprawnienie aplikacji User.Read.All interfejsu API programu 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ś użytkownikiem standardowym dzierżawy, musisz poprosić co najmniej administratora aplikacji w chmurze o udzielenie zgody administratora aplikacji dla 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.

Węzeł BIBLIOTEKI 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 przewodnik Szybki start żąda tokenów według 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 demona, zobacz Scenariusz: aplikacja demona.

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 jest to zwykle https://login.microsoftonline.com/{tenant}, gdzie {tenant} jest nazwą dzierżawy lub identyfikatorem dzierżawy.
clientSecret Czy klucz tajny klienta jest tworzony dla aplikacji w witrynie Azure Portal.

Więcej informacji można znaleźć w dokumentacji dotyczącej metody 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 internetowych interfejsów {Application ID URI} API jest definiowana w sekcji Uwidacznianie interfejsu API w obszarze Rejestracja aplikacji w witrynie Azure Portal.
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: