Quickstart: Een token verkrijgen en Microsoft Graph aanroepen vanuit een Python-daemon-app
Artikel
In deze quickstart downloadt u een codevoorbeeld en voert u dit uit. Het codevoorbeeld laat zien hoe u met een Python-toepassing een toegangstoken kunt krijgen, met behulp van de app-id, om de Microsoft Graph API aan te roepen en een lijst met gebruikers weer te geven in de map. Het codevoorbeeld laat zien hoe een taak of Windows-service zonder toezicht kan worden uitgevoerd met een toepassings-id, in plaats van een gebruikers-id.
Vereisten
Als u dit voorbeeld wilt uitvoeren, hebt u het volgende nodig:
Als u toegang hebt tot meerdere tenants, gebruikt u het pictogram Instellingen in het bovenste menu om over te schakelen naar de tenant waarin u de toepassing wilt registreren in het menu Mappen en abonnementen.
Blader naar Identiteitstoepassingen> App-registraties en selecteer Nieuwe registratie.
Voer een Naam in voor de toepassing, bijvoorbeeld Daemon-console. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
Selecteer Registreren.
Selecteer onder Beheren de optie Certificaten en geheimen.
Selecteer onder Clientgeheimen de optie Nieuw clientgeheim. Voer een naam in en selecteer vervolgens Toevoegen. Noteer de waarde voor het geheim op een veilige locatie, voor gebruik in een latere stap.
Selecteer onder Beheren achtereenvolgens API-machtigingen>Een machtiging toevoegen. Selecteer Microsoft Graph.
Selecteer Toepassingstoestemming.
Selecteer onder het knooppunt Gebruiker de optie User.Read.All. Selecteer vervolgens Machtigingen toevoegen.
Enter_the_Application_Id_Here: is de toepassings-id (client-id) voor de toepassing die u hebt geregistreerd.
Enter_the_Tenant_Id_Here: vervang deze waarde door de Tenant-id of Tenantnaam (bijvoorbeeld contoso.microsoft.com)
Enter_the_Client_Secret_Here: vervang deze waarde door het clientgeheim dat is gemaakt in stap 1.
Tip
Ga naar de pagina Overzicht van de app in het Microsoft Entra-beheercentrum om de waarden van de toepassings-id (client-id, map-id) (tenant) te vinden. Voor het genereren van een nieuwe sleutel gaat u naar de pagina Certificaten en geheimen.
Standaardgebruiker
Als u een standaardgebruiker van uw tenant bent, vraagt u een globale beheerder om beheerderstoestemming te verlenen voor uw toepassing. Daarvoor verstrekt u de volgende URL aan uw beheerder:
U ziet in de console uitvoer een JSON-fragment dat een lijst met gebruikers in uw Microsoft Entra-map vertegenwoordigt.
Belangrijk
Deze quickstarttoepassing gebruikt een clientgeheim om zichzelf te identificeren als vertrouwelijke client. Omdat het clientgeheim als platte tekst aan uw projectbestanden wordt toegevoegd, wordt u om veiligheidsredenen aangeraden een certificaat te gebruiken in plaats van een clientgeheim voordat u de toepassing als productietoepassing beschouwt. Zie voor meer informatie over het gebruik van een certificaat deze instructies in dezelfde GitHub-opslagplaats voor dit voorbeeld, maar in de tweede map 2-Call-MsGraph-WithCertificate.
Meer informatie
MSAL Python
MSAL Python is de bibliotheek die wordt gebruikt voor het aanmelden van gebruikers en de aanvraagtokens die worden gebruikt voor toegang tot een API die is beveiligd via het Microsoft-identiteitsplatform. Zoals beschreven, worden met deze snelstart tokens aangevraagd met behulp van de eigen identiteit van de toepassing in plaats van gedelegeerde machtigingen. De verificatiestroom die in dit voorbeeld wordt gebruikt, staat bekend als de oauth-stroom voor clientreferenties. Zie dit artikel voor meer informatie over het gebruik van MSAL Python met daemonapps.
U kunt MSAL Python installeren door de volgende pip-opdracht uit te voeren.
PowerShell
pip install msal
MSAL initialiseren
U kunt de verwijzing voor MSAL toevoegen door de volgende code toe te voegen:
Python
import msal
Vervolgens initialiseert u MSAL met de volgende code:
Is het clientgeheim dat is gemaakt voor de toepassing in het Microsoft Entra-beheercentrum.
config["client_id"]
Is de toepassings-id (client) voor de toepassing die is geregistreerd in het Microsoft Entra-beheercentrum. U vindt deze waarde op de overzichtspagina van de app in het Microsoft Entra-beheercentrum.
config["authority"]
Het STS-eindpunt voor de gebruiker voor verificatie. Dat is meestal https://login.microsoftonline.com/{tenant} voor de openbare cloud, waarbij {tenant} de naam van uw tenant of uw tenant-id is.
Als u een token wilt aanvragen met behulp van de identiteit van de app, gebruikt u de AcquireTokenForClient-methode:
Python
result = None
result = app.acquire_token_silent(config["scope"], account=None)
ifnot result:
logging.info("No suitable token exists in cache. Let's get a new one from AAD.")
result = app.acquire_token_for_client(scopes=config["scope"])
Hierin:
Beschrijving
config["scope"]
De aangevraagde bereiken bevat. Voor vertrouwelijke clients moet dit de indeling gebruiken die vergelijkbaar is met {Application ID URI}/.default het aangeven dat de bereiken die worden aangevraagd de bereiken zijn die statisch zijn gedefinieerd in het app-object dat is ingesteld in het Microsoft Entra-beheercentrum (voor Microsoft Graph, {Application ID URI} verwijst naar https://graph.microsoft.com). Voor aangepaste web-API's {Application ID URI} wordt gedefinieerd onder de sectie Een API beschikbaar maken in App-registraties in het Microsoft Entra-beheercentrum.
Demonstreer de functies van Microsoft Entra ID om identiteitsoplossingen te moderniseren, hybride oplossingen te implementeren en identiteitsbeheer te implementeren.