Rychlý start: Získání tokenu a volání Microsoft Graphu z aplikace démon Pythonu

V tomto rychlém startu si stáhnete a spustíte ukázku kódu, která předvádí, jak může aplikace v Pythonu získat přístupový token pomocí identity aplikace k volání rozhraní Microsoft Graph API a zobrazení seznamu uživatelů v adresáři. Ukázka kódu ukazuje, jak může bezobslužná úloha nebo služba Systému Windows běžet s identitou aplikace místo identity uživatele.

Diagram showing how the sample app generated by this quickstart works.

Požadavky

Ke spuštění této ukázky potřebujete:

Registrace a stažení aplikace pro rychlý start

Krok 1: Zaregistrujte si aplikaci

Tip

Postup v tomto článku se může mírně lišit v závislosti na portálu, od který začínáte.

Pokud chcete zaregistrovat aplikaci a ručně přidat informace o registraci aplikace ke svému řešení, postupujte následovně:

  1. Přihlaste se do Centra pro správu Microsoft Entra.
  2. Pokud máte přístup k více tenantům, pomocí ikony Nastavení v horní nabídce přepněte na tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.
  3. Přejděte na Aplikace> identit>Registrace aplikací vyberte Nová registrace.
  4. Zadejte název aplikace, například Daemon-console. Uživatelé vaší aplikace můžou vidět tento název a později ho můžete změnit.
  5. Vyberte Zaregistrovat.
  6. V části Spravovat vyberte Certifikáty a tajné kódy.
  7. V části Tajné kódy klienta vyberte Nový tajný klíč klienta, zadejte název a pak vyberte Přidat. Poznamenejte si hodnotu tajného kódu v bezpečném umístění pro použití v pozdějším kroku.
  8. V části Spravovat vyberte Oprávnění>rozhraní API Přidat oprávnění. Vyberte Microsoft Graph.
  9. Vyberte Oprávnění aplikace.
  10. V části Uzel uživatele vyberte User.Read.All a pak vyberte Přidat oprávnění.

Krok 2: Stažení projektu Pythonu

Stažení projektu démona Pythonu

Krok 3: Konfigurace projektu Pythonu

  1. Extrahujte soubor zip do místní složky blízko ke kořenovému adresáři disku, například C:\Azure-Samples.

  2. Přejděte do podsložky 1-Call-MsGraph-WithSecret.

  3. Upravte parameters.json a nahraďte hodnoty polí authorityclient_ida secret následujícím fragmentem kódu:

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

    Kde:

    • Hodnota Enter_the_Application_Id_Here je ID aplikace (klienta), kterou jste zaregistrovali.
    • Enter_the_Tenant_Id_Here– tuto hodnotu nahraďte ID tenanta nebo názvem tenanta (například contoso.microsoft.com).
    • Enter_the_Client_Secret_Here – tuto hodnotu nahraďte tajným kódem klienta vytvořeným v kroku 1.

Tip

Pokud chcete najít hodnoty ID aplikace (klienta), ID adresáře (tenanta), přejděte na stránku Přehled aplikace v Centru pro správu Microsoft Entra. Pokud chcete vygenerovat nový klíč, přejděte na stránku Certifikáty a tajné kódy .

Pokud se v tomto okamžiku pokusíte spustit aplikaci, zobrazí se chyba HTTP 403 – Zakázáno : Insufficient privileges to complete the operation. K této chybě dochází, protože jakékoli oprávnění jen pro aplikace vyžaduje souhlas Správa: globální Správa istrator vašeho adresáře musí udělit souhlas s vaší aplikací. V závislosti na vaší roli vyberte jednu z následujících možností:

Globální správce tenanta

Pokud jste globální správce tenanta, přejděte na stránku Oprávnění rozhraní API v Registrace aplikací v Centru pro správu Microsoft Entra a vyberte Udělit souhlas správce pro {Název tenanta} (Kde {Název tenanta} je název vašeho adresáře).

Standardní uživatel

Pokud jste standardním uživatelem vašeho tenanta, požádejte globálního správce, aby udělil souhlas správce pro vaši aplikaci. Chcete-li to provést, dejte správci následující adresu URL:

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

Kde:

  • Enter_the_Tenant_Id_Here– tuto hodnotu nahraďte ID tenanta nebo názvem tenanta (například contoso.microsoft.com).
  • Enter_the_Application_Id_Here – je ID aplikace (klienta) pro aplikaci, kterou jste zaregistrovali dříve.

Krok 5: Spuštění aplikace

Závislosti této ukázky budete muset nainstalovat jednou.

pip install -r requirements.txt

Pak aplikaci spusťte přes příkazový řádek nebo konzolu:

python confidential_client_secret_sample.py parameters.json

Na výstupu konzoly byste měli vidět nějaký fragment JSON představující seznam uživatelů v adresáři Microsoft Entra.

Důležité

Tato aplikace pro rychlý start používá tajný klíč klienta k identifikaci samotného jako důvěrného klienta. Vzhledem k tomu, že tajný klíč klienta se do souborů projektu přidá jako prostý text, z bezpečnostních důvodů se doporučuje místo tajného klíče klienta použít certifikát před zvážením aplikace jako produkční aplikace. Další informace o použití certifikátu najdete v těchto pokynech ve stejném úložišti GitHub pro tuto ukázku, ale ve druhé složce 2-Call-MsGraph-WithCertificate.

Více informací

MSAL Python

MSAL Python je knihovna používaná k přihlášení uživatelů a vyžádání tokenů používaných pro přístup k rozhraní API chráněnému platformou Microsoft Identity Platform. Jak je popsáno, tento rychlý start vyžaduje tokeny pomocí vlastní identity aplikace místo delegovaných oprávnění. Tok ověřování použitý v tomto případě se označuje jako tok ověření přihlašovacích údajů klienta. Další informace o tom, jak používat MSAL Python s aplikacemi démonů, najdete v tomto článku.

MsAL Python můžete nainstalovat spuštěním následujícího příkazu pip.

pip install msal

Inicializace knihovny MSAL

Odkaz na knihovnu MSAL můžete přidat tak, že přidáte následující kód:

import msal

Potom inicializujte knihovnu MSAL pomocí následujícího kódu:

app = msal.ConfidentialClientApplication(
    config["client_id"], authority=config["authority"],
    client_credential=config["secret"])
Kde: Popis
config["secret"] Je tajný klíč klienta vytvořený pro aplikaci v Centru pro správu Microsoft Entra.
config["client_id"] Je ID aplikace (klienta) aplikace zaregistrované v Centru pro správu Microsoft Entra. Tuto hodnotu najdete na stránce Přehled aplikace v Centru pro správu Microsoft Entra.
config["authority"] Koncový bod služby tokenů zabezpečení pro uživatele k ověření, Obvykle https://login.microsoftonline.com/{tenant} pro veřejný cloud, kde {tenant} je název vašeho tenanta nebo ID tenanta.

Další informace naleznete v referenční dokumentaci pro ConfidentialClientApplication.

Žádosti o tokeny

Pokud chcete požádat o token pomocí identity aplikace, použijte AcquireTokenForClient metodu:

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"])
Kde: Popis
config["scope"] Obsahuje požadované obory. U důvěrných klientů by to mělo být ve formátu podobném {Application ID URI}/.default označení, že požadované obory jsou ty, které jsou staticky definované v objektu aplikace nastaveném v Centru pro správu Microsoft Entra (pro Microsoft Graph {Application ID URI} , odkazuje na https://graph.microsoft.com). Pro vlastní webová rozhraní API {Application ID URI} je definována v části Vystavení rozhraní API v Registrace aplikací v Centru pro správu Microsoft Entra.

Další informace naleznete v referenční dokumentaci pro AcquireTokenForClient.

Nápověda a podpora

Pokud potřebujete pomoc, chcete nahlásit problém nebo se chcete dozvědět o možnostech podpory, přečtěte si nápovědu a podporu pro vývojáře.

Další kroky

Další informace o aplikacích démona najdete na cílové stránce scénáře.