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.
Vaše aplikace je nakonfigurovaná s těmito atributy.
Krok 2: Stažení projektu Pythonu
Poznámka:
Enter_the_Supported_Account_Info_Here
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
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 nahttps://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.