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.
Požadavky
Ke spuštění této ukázky potřebujete:
Registrace a stažení aplikace pro rychlý start
Krok 1: Registrace aplikace
Spropitné
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 aplikaci zaregistrovat a přidat informace o registraci aplikace do řešení ručně, postupujte takto:
- Přihlaste se do Centra pro správu Microsoft Entra.
- 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á.
- Přejděte na Aplikace> identit>Registrace aplikací vyberte Nová registrace.
- 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. - Vyberte Zaregistrovat.
- V části Spravovat vyberte Certifikáty a tajné kódy.
- 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.
- V části Spravovat vyberte Oprávnění>rozhraní API Přidat oprávnění. Vyberte Microsoft Graph.
- Vyberte oprávnění aplikace.
- 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
Extrahujte soubor ZIP do místní složky blízko kořenového adresáře disku, například C:\Azure-Samples.
Přejděte do podsložky 1-Call-MsGraph-WithSecret.
Upravte parameters.json a nahraďte hodnoty polí
authority
client_id
asecret
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:
Enter_the_Application_Id_Here
– je ID aplikace (klienta) pro aplikaci, 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.
Spropitné
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 .
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.
Další informace
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 přidáním následujícího kódu:
import msal
Potom inicializujte 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 TOKENS, který má uživatel ověřit. 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
.
Vyžádání tokenů
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.