Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Pythonhoz készült Microsoft Authentication Library (MSAL) könyvtár lehetővé teszi a felhasználók vagy alkalmazások bejelentkeztetését Microsoft-identitásokkal (Microsoft Entra ID, Microsoft-fiókok és Microsoft Entra ID-fiókok). Az MSAL Python használatával tokeneket szerezhet be a Microsoft Entra ID-ból védett webes API-k, például a Microsoft Graph, más Microsoft API-k vagy a saját API-jai meghívására.
Prerequisites
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egy ingyenes fiókot.
- Python 3,6+.
A csomag telepítése
Telepítse az MSAL-t Python csomaghoz. Az MSAL Python a PyPI-n található.
pip install msal
Identitással kapcsolatos fogalmak
Az MSAL Python a Microsoft Identitásplatform ökoszisztémájának része. Ismerje meg az alábbi fogalmakat az MSAL Python hatékony használatához az alkalmazások és API-k védelméhez:
- Identitás- és hozzáférés-kezelés
- Hitelesítés és engedélyezés
- OAuth 2.0 és OpenID Connect (OIDC) a Microsoft identitásplatformján
- Bizalmas és nyilvános ügyfélfiókok a Microsoft Identitásplatform
- Biztonsági tokenek
Használati forgatókönyvek
Az MSAL Python használatához regisztráljon egy alkalmazást a Microsoft identitásplatformon. Aktív előfizetéssel rendelkező Azure-fiókra lesz szüksége. Hozzon létre egy ingyenes fiókot , ha nem rendelkezik ilyen fiókkal. Az alkalmazást regisztrálhatja egy ügyfélbérlében vagy egy munkaerő-bérlőben.
Az alkalmazások az MSAL Python használatával szerezhetnek be jogkivonatokat a védett API-k eléréséhez. A különböző alkalmazástípusok különböző hitelesítési folyamatokat használva szereznek be tokeneket. A támogatott alkalmazástípusok közé tartoznak az asztali alkalmazások, a webalkalmazások, a webes API-k és a böngészővel nem rendelkező eszközökön futó alkalmazások (például IoT-eszközök).
Az MSAL Python az alkalmazások a következőképpen vannak kategorizálva:
- Nyilvános ügyfélalkalmazások (asztali és mobil). Az ilyen típusú alkalmazások nem tudják biztonságosan tárolni az alkalmazás titkos kulcsait.
- Bizalmas ügyfélalkalmazások (webalkalmazások, webes API-k és démonalkalmazások). Az ilyen típusú alkalmazások biztonságosan tárolnak egy Microsoft Entra ID regisztrált titkos kulcsot.
További információkért tekintse meg a nyilvános ügyfél- és bizalmas ügyfélalkalmazásokról, valamint a különböző alkalmazástípusokról és azok hitelesítési folyamatáról szóló dokumentációt a Microsoft Identitásplatform.
Miután meghatározta, hogy az alkalmazása nyilvános vagy bizalmas ügyfélalkalmazás-e, az MSAL Pythonnal különböző esetekben szerezhet be tokeneket.
Alapszintű használat
A tokenek MSAL Pythonnal történő beszerzése háromlépéses mintát követ. A különböző folyamatoknak lesznek változatai. Ha működés közben szeretné látni őket, töltse le a mintákat.
Az MSAL a nyilvános ügyfél és a bizalmas ügyfélalkalmazások tiszta elkülönítésére támaszkodik. Ezért hozzon létre vagy egy
PublicClientApplication-, vagy egyConfidentialClientApplication-példányt, és használja újra azt az alkalmazás életciklusa során. Nyilvános ügyfélalkalmazás esetén például az inicializálási kód a következőképpen nézhet ki:from msal import PublicClientApplication app = PublicClientApplication( "your_client_id", authority="https://login.microsoftonline.com/common")A hitelesítési végpont értéke attól függően változik, hogy milyen típusú fiókokkal jelentkezik be, illetve hogy az alkalmazása milyen típusú bérlőben van regisztrálva. Ha például munkahelyi bérlőkben (Microsoft Entra ID) kiépített munkahelyi és személyes Microsoft-fiókkal is be szeretne jelentkezni, akkor a(z)
https://login.microsoftonline.com/commonlehetőséget használná. Az ügyfélbérlőkben létrehozott ügyfélfiókok esetében az Ön jogosultsága a következőhöz hasonló formát ölt:https://<subdomain>.ciamlogin.com. További információkért tekintse meg a jogkivonat-kiállító dokumentációját.Először próbálja meg lekérni a tokeneket a gyorsítótárból. Az MSAL API-modellje közvetlen vezérlést biztosít a jogkivonat-gyorsítótár használatához. Bár a gyorsítótárazás technikailag opcionális, nyomatékosan ajánljuk, hogy használja az alkalmazásában. A gyorsítótár használatával meggyőződhet arról, hogy nem indít további API-hívásokat, és automatikusan kezeli a jogkivonat frissítését.
# initialize result variable to hole the token response result = None # We now check the cache to see # whether we already have some accounts that the end user already used to sign in before. accounts = app.get_accounts() if accounts: # If so, you could then somehow display these accounts and let end user choose print("Pick the account you want to use to proceed:") for a in accounts: print(a["username"]) # Assuming the end user chose this one chosen = accounts[0] # Now let's try to find a token in cache for this account result = app.acquire_token_silent(["User.Read"], account=chosen)Ha nincs megfelelő token a gyorsítótárban, vagy úgy döntött, hogy kihagyja az előző lépést, küldjön kérést a Microsoft Entra ID-hoz token lekéréséhez. Az ügyfél típusa és forgatókönyve alapján különböző metódusok léteznek, de a példa alkalmazásában bemutatjuk a használat
acquire_token_interactivemódját, amely arra kéri a felhasználót, hogy adja meg a hitelesítő adatait.if not result: # So no suitable token exists in cache. Let's get a new one from Azure AD. result = app.acquire_token_interactive(scopes=["User.Read"]) if "access_token" in result: print(result["access_token"]) # Yay! else: print(result.get("error")) print(result.get("error_description")) print(result.get("correlation_id")) # You may need this when reporting a bugMentse a kódot helyileg egy Python fájlba, például msaltest.py.
A kód futtatásához hajtsa végre a(z)
python .\msalpytest.pyparancsot. Az alábbi vizualizáció a példa bejelentkezési élményét mutatja be.
Miután a hitelesítés befejeződött, és bezárta a böngészőt, látnia kell a terminálon kinyomtatott hozzáférési jogkivonatot.
Ajánlott eljárások egy robusztus, nagyvállalati használatra kész alkalmazáshoz
Az MSAL Python használatával jogkivonatot szerezhet be egy védett webes API-hoz. A frissítési tokeneket sem kell saját kezűleg kezelnie. A robusztus, nagyvállalati használatra kész alkalmazások létrehozásához azonban egy kicsit többet kell tennie. Például a következőt szeretné:
Kezelje a kivételeket, mind a jogkivonatok beszerzésekor, mind a védett webes API meghívásakor. Különösen akkor, ha az alkalmazás egy Microsoft Entra bérlőben fut, ahol a bérlői rendszergazdák feltételes hozzáférési szabályzatokat állítottak be a Multiple Factor Authentication (MFA) kikényszerítéséhez, akkor egy jogcímkérdést kell kezelnie.
Előfordulhat, hogy engedélyezni szeretné a naplózást az alkalmazás hibaelhárításához és a felhasználók segítségére, miközben tiszteletben tartja az adataikat, és megfelel a GDPR-nak.
Samples
Az MSAL Python használatának megkezdéséhez számos minta használható.
- Minták a tárházból. Ezek a minták az MSAL Python használatával implementált különböző konfigurációkat és hitelesítési folyamatokat mutatják be.
- Egyetlen adattár a dokumentációban használt mintákkal. Ezek a minták támogatási dokumentációval rendelkeznek, amelyek segítenek az alapoktól való létrehozásban és replikálásban.
References
Lásd még
- Példányosítsa az alkalmazását az MSAL Python használatával
- Jogkivonatok beszerzése MSAL-Python használatával