Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Witamy! Prawdopodobnie nie jest to oczekiwana strona. Chociaż pracujemy nad poprawką, ten link powinien podjąć Cię do odpowiedniego artykułu:
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
- Node.js
- Visual Studio Code lub inny edytor kodu
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.
Aplikacja jest skonfigurowana przy użyciu tych atrybutów.
Krok 2. Pobieranie przykładowego projektu Node.js
Uwaga
Enter_the_Supported_Account_Info_Here
Krok 3. Zgoda administratora
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 clientIdJest identyfikatorem aplikacji (klienta) dla aplikacji zarejestrowanej w witrynie Azure Portal. Tę wartość można znaleźć na stronie Przegląd aplikacji w witrynie Azure Portal. authorityPunkt 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.clientSecretCzy 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 tokenRequestZawiera żądane zakresy. W przypadku klientów poufnych należy użyć formatu podobnego do {Application ID URI}/.defaultwskazują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.tokenResponseOdpowiedź 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: