Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Tenanti pracovních sil
Externí tenanti (další informace)
V tomto kurzu voláte rozhraní API Microsoft Graph z webové aplikace Python Flask. V předchozím tutoriálujste do aplikace přidali funkce pro přihlášení a odhlášení. Jakmile se uživatel přihlásí, aplikace získá přístupový token pro volání rozhraní Microsoft Graph API.
V tomto kurzu:
- Aktualizace existující webové aplikace Python Flask za účelem získání přístupového tokenu
- Přístupový token použijte k volání rozhraní Microsoft Graph API.
Požadavky
Dokončete kroky v Kurzu: Přidání přihlášení do webové aplikace Python Flask pomocí platformy Microsoft Identity Platform.
Definování oborů a koncového bodu rozhraní API
V tomto příkladu zavoláme rozhraní Microsoft Graph API, abychom získali informace o profilu přihlášeného uživatele. Pokud je vaše aplikace v tenantovi pracovních sil, při přihlášení uživatel souhlasí s rozsahy požadovanými aplikací pro přístup k rozhraní Microsoft Graph API. Pokud je vaše aplikace v externím tenantovi, ujistěte se, že udělit souhlas správce jménem uživatelů ve vašem tenantovi. Aplikace pak použije přístupový token k volání rozhraní API a zobrazení výsledků.
Do souboru .env přidejte koncový bod, který voláme, a rozsahy potřebné k volání rozhraní Microsoft Graph API:
SCOPE=User.Read
ENDPOINT=https://graph.microsoft.com/v1.0/me
Nové konfigurace v aplikaci si můžete přečíst aktualizací souboru app_config.py.
# other configs go here
SCOPE = os.getenv("SCOPE")
ENDPOINT = os.getenv("ENDPOINT")
Volání chráněného rozhraní API
Předejte koncový bod API domovské stránce. Toto vám umožní volat koncový bod. Aktualizujte trasu
/tak, aby vypadala jako v následujícím fragmentu kódu:@app.route("/") @auth.login_required def index(*, context): return render_template( 'index.html', user=context['user'], title="Flask Web App Sample", api_endpoint=os.getenv("ENDPOINT") # added this line )Volejte chráněné rozhraní Microsoft Graph API, jak je znázorněno v následujícím fragmentu kódu. Předáváme seznam oborů, které naše aplikace potřebuje použít. Pokud jsou obory k dispozici, kontext obsahuje přístupový token. Přístupový token se používá k volání podřízeného rozhraní API. Do souboru app.py přidejte tento kód:
@app.route("/call_api") @auth.login_required(scopes=os.getenv("SCOPE", "").split()) def call_downstream_api(*, context): api_result = requests.get( # Use access token to call a web api os.getenv("ENDPOINT"), headers={'Authorization': 'Bearer ' + context['access_token']}, timeout=30, ).json() if context.get('access_token') else "Did you forget to set the SCOPE environment variable?" return render_template('display.html', title="API Response", result=api_result)Pokud aplikace úspěšně získá přístupový token, vytvoří požadavek HTTP na podřízené rozhraní API pomocí metody
requests.get(...). V požadavku je vapp_config.ENDPOINTzadaná adresa URL podřízeného rozhraní API a přístupový token předaný v poliAuthorizationhlavičky požadavku.Úspěšný požadavek na podřízené rozhraní API (Microsoft Graph API) vrátí odpověď JSON uloženou v proměnné
api_resulta předaná šablonědisplay.htmlpro vykreslení.
Zobrazení výsledků rozhraní API
Ve složce šablony vytvořte soubor s názvem display.html. Na této stránce se zobrazí výsledek volání koncového bodu Microsoft Graphu. Do souboru display.html přidejte následující kód:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Microsoft Identity Python Web App: API</title>
</head>
<body>
<a href="javascript:window.history.go(-1)">Back</a> <!-- Displayed on top of a potentially large JSON response, so it will remain visible -->
<h1>{{title}}</h1>
<pre>{{ result |tojson(indent=4) }}</pre> <!-- Just a generic json viewer -->
</body>
</html>
Spuštění a otestování ukázkové webové aplikace
V terminálu spusťte následující příkaz:
python3 -m flask run --debug --host=localhost --port=3000Můžete použít port podle svého výběru. Tento port by měl být podobný portu adresy URI pro přesměrování, kterou jste zaregistrovali dříve.
Otevřete prohlížeč a přejděte na
http://localhost:3000. Zobrazí se přihlašovací stránka.Podle pokynů se přihlaste pomocí svého účtu Microsoft. Budete požádáni, abyste zadali e-mailovou adresu a heslo pro přihlášení.
Pokud aplikace potřebuje nějaké obory, zobrazí se obrazovka pro vyjádření souhlasu. Aplikace požaduje oprávnění k zachování přístupu k datům, ke které povolíte přístup a k přihlášení. Vyberte Přijmout. Tato obrazovka se nezobrazí, pokud nejsou definovány žádné obory.
Rozhraní API pro volání
Na domovské stránce vyberte odkaz Volání rozhraní API. Aplikace volá rozhraní Microsoft Graph API, aby získala informace o profilu přihlášeného uživatele. Aplikace zobrazí výsledek volání rozhraní API.
Vyberte Odhlásit se a odhlaste se z aplikace. Zobrazí se výzva k výběru účtu, ze kterém se chcete odhlásit. Vyberte účet, který jste použili k přihlášení.
Referenční materiál
ms_identity_python abstrahuje podrobnosti knihovny MSAL. Další informace najdete v dokumentaci MSAL Python. Tento referenční materiál vám pomůže pochopit, jak inicializujete aplikaci a získáváte tokeny pomocí MSAL Pythonu.