Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met de Microsoft Authentication Library (MSAL) voor Python kunt u gebruikers of apps aanmelden met Microsoft-identiteiten (Microsoft Entra ID, Microsoft Accounts en accounts van Microsoft Entra ID). Met MSAL Python kunt u tokens verkrijgen van Microsoft Entra ID om beveiligde web-API's aan te roepen, zoals Microsoft Graph, andere Microsoft API's of uw eigen API's.
Prerequisites
- Een Azure-account met een actief abonnement. Maak een gratis account.
- Python 3,6+.
Installeer het pakket
Installeer het MSAL-pakket voor Python. U vindt MSAL-Python op PyPI.
pip install msal
Identiteitsconcepten
MSAL Python maakt deel uit van het Microsoft identity platform ecosysteem. Raak vertrouwd met de volgende concepten om MSAL-Python effectief te gebruiken om uw toepassingen en API's te beveiligen:
- Identiteits- en toegangsbeheer
- Verificatie en autorisatie
- OAuth 2.0 en OpenID Connect (OIDC) in het identiteitsplatform van Microsoft
- Vertrouwelijke en openbare clientaccounts in de Microsoft identity platform
- Beveiligingstokens
Gebruiksscenario's
Als u MSAL-Python wilt gebruiken, registreert u een toepassing bij de Microsoft identity platform. U hebt een Azure-account met een actief abonnement nodig. Maak een gratis account als u er nog geen hebt. U kunt uw app registreren in een klanttenant of werknemerstenant.
Toepassingen kunnen MSAL-Python gebruiken om tokens te verkrijgen voor toegang tot beveiligde API's. Verschillende app-typen verkrijgen tokens met behulp van verschillende verificatiestromen. De ondersteunde app-typen omvatten bureaubladtoepassingen, webtoepassingen, web-API's en toepassingen die worden uitgevoerd op apparaten die geen browser hebben (zoals IoT-apparaten).
In MSAL Python worden toepassingen als volgt gecategoriseerd:
- Openbare clienttoepassingen (desktop en mobiel). Deze typen apps kunnen app-geheimen niet veilig opslaan.
- Vertrouwelijke clienttoepassingen (web-apps, web-API's en daemon-toepassingen). Met dit type apps wordt veilig een geheim opgeslagen dat is geregistreerd bij Microsoft Entra ID.
Zie de documentatie over openbare client- en vertrouwelijke client-apps en de verschillende app-typen en de bijbehorende verificatiestromen in de Microsoft identity platform voor meer informatie.
Nadat u hebt vastgesteld of uw toepassing een openbare of vertrouwelijke clienttoepassing is, kunt u MSAL Python gebruiken om tokens voor verschillende scenario's te verkrijgen.
Basaal gebruik
Tokens verkrijgen met MSAL Python volgt een patroon in drie stappen. Er zijn enkele variaties voor verschillende stromen. Als u ze in actie wilt zien, downloadt u onze voorbeelden.
MSAL is afhankelijk van een schone scheiding tussen openbare clienttoepassingen en vertrouwelijke clienttoepassingen. Maak daarom een
PublicClientApplicationof eenConfidentialClientApplicationexemplaar en hergebruik deze tijdens de levenscyclus van uw toepassing. Voor een openbare clienttoepassing kan de initialisatiecode er bijvoorbeeld als volgt uitzien:from msal import PublicClientApplication app = PublicClientApplication( "your_client_id", authority="https://login.microsoftonline.com/common")De authority-waarde varieert afhankelijk van het type accounts waarmee u zich aanmeldt en het type tenant waarin uw app is geregistreerd. Als u zich bijvoorbeeld wilt aanmelden bij zowel werk- als persoonlijke Microsoft-accounts die zijn ingericht in werknemertenants (Microsoft Entra ID), gebruikt u
https://login.microsoftonline.com/common. Voor klantaccounts die zijn aangemaakt in tenantomgevingen van klanten, heeft uw autoriteit een vorm zoalshttps://<subdomain>.ciamlogin.com. Zie de documentatie voor tokenverleners voor meer informatie.Probeer eerst de tokens uit de cache te verkrijgen. Het API-model in MSAL biedt u expliciet controle over het gebruik van de tokencache. Hoewel het cacheonderdeel technisch optioneel is, raden we u ten zeerste aan om het te gebruiken in uw toepassing. Met behulp van de cache kunt u ervoor zorgen dat u geen extra API-aanroepen maakt en het token automatisch vernieuwt.
# 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)Als er geen geschikt token in de cache staat of als u ervoor hebt gekozen om de vorige stap over te slaan, stuurt u een aanvraag naar Microsoft Entra ID om een token op te halen. Er zijn verschillende methoden op basis van uw clienttype en scenario, maar voor het voorbeeld laten we zien hoe u deze kunt gebruiken
acquire_token_interactive, waardoor de gebruiker wordt gevraagd om hun referenties op te geven.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 bugSla de code lokaal op in een Python-bestand, zoals msaltest.py.
Voer de code uit door
python .\msalpytest.pyuit te voeren. In de volgende visual ziet u de aanmeldingservaring voor dit voorbeeld.
Zodra de verificatie is voltooid en u de browser hebt gesloten, moet u het toegangstoken kunnen zien dat in de terminal wordt afgedrukt.
Aanbevolen procedures voor een robuuste bedrijfsklare toepassing
U kunt een token verkrijgen voor een beveiligde web-API met behulp van MSAL Python. U hoeft tokens ook niet zelf te vernieuwen. Als u echter robuuste, bedrijfsklare toepassingen wilt bouwen, moet u iets meer doen. U wilt bijvoorbeeld het volgende doen:
Omgaan met uitzonderingen, zowel wanneer u een token verkrijgt, maar ook wanneer u de beveiligde web-API aanroept. Als uw toepassing wordt uitgevoerd in een Microsoft Entra tenant waarin de tenantbeheerders beleid voor voorwaardelijke toegang hebben ingesteld om Meervoudige verificatie (MFA) af te dwingen, moet u een claimvraag afhandelen.
U kunt logboekregistratie inschakelen om problemen met uw toepassing op te lossen en uw gebruikers te helpen, terwijl ze hun privacy respecteren en voldoen aan de AVG.
Samples
Er zijn verschillende voorbeelden die u kunt gebruiken om aan de slag te gaan met MSAL Python.
- Voorbeelden uit de bibliotheekopslagplaats. Deze voorbeelden laten de verschillende configuraties en verificatiestromen zien die u implementeert met behulp van MSAL Python.
- Eén opslagplaats met voorbeelden die in onze documentatie worden gebruikt. Deze voorbeelden bevatten ondersteunende documentatie om u te helpen bij het bouwen en repliceren ervan.
References
Zie ook
- Uw toepassing instantiëren met MSAL Python
- Tokens verkrijgen met MSAL-Python