Sdílet prostřednictvím


Rychlý start: Získání tokenu a volání rozhraní Microsoft Graph API z konzolové aplikace v Pythonu pomocí identity aplikace

Vítejte Pravděpodobně to není stránka, kterou jste očekávali. Zatímco pracujeme na opravě, měl by vás tento odkaz dostat na správný článek:

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

Omlouváme se za nepříjemnosti a vážíme si vaší trpělivosti, zatímco pracujeme na vyřešení tohoto problému.

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:

Stažení a konfigurace aplikace pro rychlý start

Krok 1: Nakonfigurujte si aplikaci na portálu Azure Portal

Aby ukázka kódu v tomto rychlém startu fungovala, vytvořte tajný klíč klienta a přidejte oprávnění aplikace User.Read.All rozhraní Graph API.

Already configured Vaše aplikace je nakonfigurovaná s těmito atributy.

Krok 2: Stažení projektu Pythonu

Poznámka:

Enter_the_Supported_Account_Info_Here

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áva istrator, přejděte na stránku Oprávnění rozhraní API a vyberte Udělit souhlas správce pro Enter_the_Tenant_Name_Here.

Standardní uživatel

Pokud jste standardním uživatelem vašeho tenanta, požádejte globálního Správa istratora, 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

Krok 4: 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 na webu Azure Portal.
config["client_id"] Je ID aplikace (klienta), kterou jste zaregistrovali na webu Azure Portal. Tuto hodnotu najdete na stránce Přehled aplikace na webu Azure Portal.
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 Azure AD.")
    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 na webu Azure Portal (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í na webu Azure Portal.

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.