Share via


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.ENDPOINTvan 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:

  1. 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)

  2. Hozzon létre egy virtuális környezetet az alkalmazáshoz:

    py -m venv .venv
    .venv\scripts\activate
    
  3. Telepítse a követelményeket a következővel pip:

    pip install -r requirements.txt
    
  4. 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
    
  5. 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.

  6. A bejelentkezési ablak megjelenése után adja meg a bejelentkezni kívánt fiókot, és válassza a Tovább elemet:

    Képernyőkép a bejelentkezési képernyőről.

  7. 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.

  8. Ha be van jelentkezve, válassza a Nem vagy az Igen lehetőséget.

  9. 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.

  10. Megjelenik a következő képernyőkép, amely azt jelzi, hogy bejelentkezett az alkalmazásba:

    Képernyőkép egy bejelentkezett felhasználóról.

  11. 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ó:

    Képernyőkép egy sikeres API-hívás eredményeiről.

Kijelentkezés az alkalmazásból

  1. Válassza a Kijelentkezés lehetőséget az alkalmazásból való kijelentkezéshez.
  2. 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.
  3. 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.