Oktatóanyag: Védett API meghívása és az eredmények megjelenítése
Az előző oktatóanyagban hozzáadta a bejelentkezési és kijelentkezési élményt az alkalmazáshoz. Most már ezekre a funkciókra építhet, hogy a bejelentkezett felhasználók védett webes API-t hívhassanak meg. Az oktatóanyag alkalmazásában meghívja a Microsoft Graph API-t, és megjeleníti a bejelentkezett felhasználó profiladatait.
Ebben az oktatóanyagban:
- Kód hozzáadása védett alsóbb rétegbeli API meghívásához
- Az alkalmazás futtatása és tesztelése
Az API meghívása és az eredmények megjelenítése
Védett API meghívásához először be kell szereznie egy hozzáférési jogkivonatot az aktuális felhasználóhoz az alábbi hívással auth.get_token_for_user
:
@app.route("/call_downstream_api")
def call_downstream_api():
token = auth.get_token_for_user(app_config.SCOPE)
if "error" in token:
return redirect(url_for("login"))
# Use access token to call downstream api
api_result = requests.get(
app_config.ENDPOINT,
headers={'Authorization': 'Bearer ' + token['access_token']},
timeout=30,
).json()
return render_template('display.html', result=api_result)
Amikor egy felhasználó megnyitja az URL-címet, a /call_downstream_api
Flask meghívja azt a call_downstream_api()
függvényt, amely először megpróbál hozzáférési jogkivonatot szerezni a használatával auth.get_token_for_user(app_config.SCOPE)
. Ha hitelesítési probléma vagy hiba lépett fel a jogkivonatban, átirányíthatja a felhasználót a bejelentkezési lapra újrahitelesítés céljából.
Ha az alkalmazás sikeresen lekér egy hozzáférési jogkivonatot, http-kérést küld az alsóbb rétegbeli API-hoz a requests.get(...)
metódus használatával. A kérésben a downstream API URL-címe a következőben app_config.ENDPOINT
van megadva: . A hozzáférési jogkivonatot a kérelem fejlécének mezőjében Authorization
is átadja.
Az alsóbb rétegbeli API -nak (Microsoft Graph API) küldött sikeres kérés egy változóban api_result
tárolt JSON-választ ad vissza, és továbbítja a display.html
sablonnak renderelés céljából.
Kód hozzáadása az alkalmazás futtatásához
Az alkalmazás futtatásához adja hozzá a következő kódrészletet a app.py fájl végén.
if __name__ == "__main__":
app.run()
Az alkalmazás tesztelése
Az alábbi lépéseket követve tesztelheti a bejelentkezést, meghívhatja az API-t, és kijelentkeztetheti a felhasználói felületeket a webalkalmazásban:
Ha még nem tette meg, cserélje le az .env.sample fájl helyőrző értékeit a Microsoft Entra alkalmazásregisztrációs adataira (ügyfélazonosító, titkos ügyfélkód és szolgáltatói URL-cím)
Hozzon létre egy virtuális környezetet az alkalmazáshoz:
py -m venv .venv .venv\scripts\activate
Telepítse a követelményeket a következővel
pip
:pip install -r requirements.txt
Futtassa az alkalmazást a parancssorból. Győződjön meg arról, hogy az alkalmazás ugyanazon a porton fut, mint a korábban konfigurált átirányítási URI.
flask run --host=localhost --port=5000
Másolja ki például a terminálban megjelenő HTTPS URL-címet, https://localhost:5000és illessze be egy böngészőbe. Javasoljuk, hogy privát vagy inkognitó böngésző munkamenetet használjon.
A bejelentkezési ablak megjelenése után adja meg a bejelentkezni kívánt fiókot, és válassza a Tovább elemet:
A böngésző átirányítja Önt, hogy jelszót adjon meg a fiókjához. Adja meg a jelszót, és válassza a Bejelentkezés lehetőséget.
Ezen a ponton a bejelentkezési folyamat attól függően változhat, hogy a szervezet milyen biztonsági információkat igényel, például többtényezős hitelesítést egy hitelesítő alkalmazás használatával.
Ha be van jelentkezve, válassza a Nem vagy az Igen lehetőséget.
Az alkalmazás engedélyt kér ahhoz, hogy fenntartsa a hozzáférést azokhoz az adatokhoz, amelyhez hozzáférést adott, bejelentkezteti önt, és felolvassa a profilját. Válassza az Elfogadás lehetőséget az engedélyekhez való hozzájáruláshoz.
Megjelenik a következő képernyőkép, amely azt jelzi, hogy bejelentkezett az alkalmazásba:
Egy védett API meghívásához és az eredmények megjelenítéséhez válassza az Alsóbb rétegbeli API meghívása lehetőséget. A Microsoft Graph API sikeres hívása a bejelentkezett felhasználó adatait adja vissza, ahogyan az látható:
Kijelentkezés az alkalmazásból
- Válassza a Kijelentkezés lehetőséget az alkalmazásból való kijelentkezéshez.
- A rendszer kéri, hogy válasszon ki egy fiókot, amelyből ki szeretne jelentkezni. Válassza ki a bejelentkezéshez használt fiókot.
- Megjelenik egy üzenet, amely jelzi, hogy kijelentkezett. Most már bezárhatja a böngészőablakot.
Lásd még
A létrehozott alkalmazás az identitástárat használja, amely a Pythonhoz készült Microsoft Authentication Library (MSAL) legtöbb részletét absztrakcióra használja. Az MSAL Python különböző forgatókönyvekhez való használatáról az MSAL Python dokumentációjában talál további információt.