Udostępnij za pośrednictwem


Szybki start: uzyskiwanie tokenu i wywoływanie programu Microsoft Graph z poziomu aplikacji demona języka Python

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.

Diagram przedstawiający sposób działania przykładowej aplikacji wygenerowanej przez ten przewodnik Szybki start.

Warunki wstępne

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

Rejestrowanie i pobieranie aplikacji Szybki start

Krok 1. Rejestrowanie aplikacji

Napiwek

Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.

Aby zarejestrować aplikację i ręcznie dodać informacje dotyczące rejestracji aplikacji do rozwiązania, wykonaj następujące kroki:

  1. Zaloguj się do centrum administracyjnego firmy Microsoft Entra.
  2. Jeśli masz dostęp do wielu dzierżaw, użyj ikony Ustawienia w górnym menu, aby przełączyć się do dzierżawy, w której chcesz zarejestrować aplikację z menu Katalogi i subskrypcje.
  3. Przejdź do pozycji Identity>Applications> Rejestracje aplikacji wybierz pozycję Nowa rejestracja.
  4. Wprowadź nazwę aplikacji, na przykład Daemon-console. Użytkownicy aplikacji mogą zobaczyć tę nazwę i możesz ją zmienić później.
  5. Wybierz pozycję Zarejestruj.
  6. W obszarze Zarządzanie wybierz pozycję Certyfikaty i wpisy tajne.
  7. W obszarze Wpisy tajne klienta wybierz pozycję Nowy klucz tajny klienta, wprowadź nazwę, a następnie wybierz pozycję Dodaj. Zarejestruj wartość wpisu tajnego w bezpiecznej lokalizacji do użycia w późniejszym kroku.
  8. W obszarze Zarządzanie wybierz pozycję Uprawnienia>interfejsu API Dodaj uprawnienie. Wybierz pozycję Microsoft Graph.
  9. Wybierz pozycję Uprawnienia aplikacji.
  10. W węźle Użytkownik wybierz pozycję User.Read.All, a następnie wybierz pozycję Dodaj uprawnienia.

Krok 2. Pobieranie projektu języka Python

Pobieranie projektu demona języka Python

Krok 3. Konfigurowanie projektu języka Python

  1. Wyodrębnij plik zip do folderu lokalnego w pobliżu katalogu głównego dysku, na przykład C:\Azure-Samples.

  2. Przejdź do folderu podrzędnego 1-Call-MsGraph-WithSecret.

  3. Edytuj parameters.json i zastąp wartości pól authority, client_idi secret następującym fragmentem kodu:

    "authority": "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
    "client_id": "Enter_the_Application_Id_Here",
    "secret": "Enter_the_Client_Secret_Here"
    

    Gdzie:

    • Enter_the_Application_Id_Here — to identyfikator aplikacji (klienta) dla zarejestrowanej aplikacji.
    • Enter_the_Tenant_Id_Here— zastąp tę wartość identyfikatorem dzierżawy lub nazwą dzierżawy (na przykład contoso.microsoft.com)
    • Enter_the_Client_Secret_Here — zastąp tę wartość kluczem tajnym klienta utworzonym w kroku 1.

Napiwek

Aby znaleźć wartości identyfikatora aplikacji (klienta), identyfikator katalogu (dzierżawy), przejdź do strony Przegląd aplikacji w centrum administracyjnym firmy Microsoft Entra. Aby wygenerować nowy klucz, przejdź do strony Certyfikaty i wpisy tajne.

Użytkownik standardowy

Jeśli jesteś użytkownikiem standardowym dzierżawy, poproś administratora globalnego o udzielenie zgody administratora aplikacji. W tym celu podaj następujący adres URL administratorowi:

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

Gdzie:

  • Enter_the_Tenant_Id_Here— zastąp tę wartość identyfikatorem dzierżawy lub nazwą dzierżawy (na przykład contoso.microsoft.com)
  • Enter_the_Application_Id_Here — to identyfikator aplikacji (klienta) dla zarejestrowanej wcześniej aplikacji.

Krok 5. 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żny

Ta aplikacja Szybkiego startu używa wpisu tajnego klienta do identyfikowania się jako poufnego klienta. Ponieważ klucz tajny klienta jest dodawany jako zwykły tekst do plików projektu, ze względów bezpieczeństwa zaleca się użycie certyfikatu zamiast wpisu tajnego klienta przed rozważeniem aplikacji jako aplikacji produkcyjnej. 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. Przepływ uwierzytelniania używany w tym przypadku jest nazywany przepływem 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

Odwołanie do biblioteki MSAL można dodać, dodając następujący kod:

import msal

Następnie zainicjuj bibliotekę MSAL przy użyciu 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 centrum administracyjnym firmy Microsoft Entra.
config["client_id"] To identyfikator aplikacji (klienta) dla aplikacji zarejestrowanej w centrum administracyjnym firmy Microsoft Entra. Tę wartość można znaleźć na stronie Przegląd aplikacji w centrum administracyjnym firmy Microsoft Entra.
config["authority"] Punkt końcowy usługi STS do uwierzytelnienia użytkownika. Zwykle https://login.microsoftonline.com/{tenant} w przypadku chmury publicznej, gdzie {tenant} jest nazwą dzierżawy lub identyfikatorem dzierżawy.

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

Żądanie tokenów

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

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 AAD.")
    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 centrum administracyjnym firmy Microsoft Entra (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 centrum administracyjnym firmy Microsoft Entra.

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.