Udostępnij za pośrednictwem


Szybki start: uzyskiwanie tokenu i wywoływanie interfejsu API programu Microsoft Graph z poziomu aplikacji konsolowej języka Python 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 demona języka Python

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 w języku Python 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.

Wymagania wstępne

Aby uruchomić ten przykład, potrzebne są następujące elementy:

Pobieranie i konfigurowanie aplikacji Szybki start

Krok 1. Konfigurowanie aplikacji w witrynie Azure Portal

Aby przykładowy kod w tym przewodniku Szybki start działał, utwórz klucz tajny klienta i dodaj uprawnienie aplikacji User.Read.All interfejsu API programu Graph.

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

Krok 2. Pobieranie projektu języka Python

Uwaga

Enter_the_Supported_Account_Info_Here

Użytkownik standardowy

Jeśli jesteś użytkownikiem standardowym dzierżawy, poproś administratora globalnego o udzielenie zgody administratora 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

Należy zainstalować zależności tego przykładu raz.

pip install -r requirements.txt

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

python confidential_client_secret_sample.py parameters.json

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

Ważne

Aplikacja w tym przewodniku Szybki start używa klucza tajnego klienta do identyfikowania się jako klienta poufnego. Ponieważ klucz tajny klienta jest dodawany jako zwykły tekst w plikach projektu, ze względów bezpieczeństwa zaleca się używanie certyfikatu zamiast klucza tajnego klienta, zanim będzie można uznać aplikację za produkcyjną. Aby uzyskać więcej informacji na temat używania certyfikatu, zobacz te instrukcje w tym samym repozytorium GitHub dla tego przykładu, ale w drugim folderze 2-Call-MsGraph-WithCertificate.

Więcej informacji

MSAL Python

Biblioteka MSAL Python 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 przy użyciu własnej tożsamości aplikacji zamiast uprawnień delegowanych. W tym przypadku przepływ uwierzytelniania jest określany jako przepływ OAuth poświadczeń klienta. Aby uzyskać więcej informacji na temat używania biblioteki MSAL Python z aplikacjami demona, zobacz ten artykuł.

Język PYTHON biblioteki MSAL można zainstalować, uruchamiając następujące polecenie.

pip install msal

Inicjowanie biblioteki MSAL

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

import msal

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

app = msal.ConfidentialClientApplication(
    config["client_id"], authority=config["authority"],
    client_credential=config["secret"])
Gdzie: opis
config["secret"] Czy klucz tajny klienta jest tworzony dla aplikacji w witrynie Azure Portal.
config["client_id"] 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.
config["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.

Aby uzyskać więcej informacji, zobacz dokumentację referencyjną dotyczącą ConfidentialClientApplicationprogramu .

Przesyłanie żądań tokenów

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

result = None
result = app.acquire_token_silent(config["scope"], account=None)

if not result:
    logging.info("No suitable token exists in cache. Let's get a new one from Azure AD.")
    result = app.acquire_token_for_client(scopes=config["scope"])
Gdzie: opis
config["scope"] 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 Uwidacznij interfejs API w Rejestracje aplikacji w witrynie Azure Portal.

Aby uzyskać więcej informacji, zobacz dokumentację referencyjną dotyczącą AcquireTokenForClientprogramu .

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 aplikacji demona, zobacz stronę docelową scenariusza.