Quickstart: een token verkrijgen en Microsoft Graph API aanroepen vanuit een bureaublad-app
In deze quickstart downloadt u een codevoorbeeld en voert u dit uit. Het codevoorbeeld laat zien hoe gebruikers kunnen worden aangemeld met een UWP-toepassing (Universeel Windows-platform), en een toegangstoken kunnen krijgen om de Microsoft Graph API aan te roepen.
Zie Hoe het voorbeeld werkt voor een illustratie.
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- Visual Studio
De quickstart-app registreren en downloaden
U hebt twee opties voor het starten van de snelstarttoepassing:
- [Express] Optie 1: registreer de toepassing en laat deze automatisch configureren. Download vervolgens het codevoorbeeld
- [Handmatig] Optie 2: registreer de toepassing en configureer handmatig de toepassing en het codevoorbeeld
Optie 1: registreer de toepassing en laat deze automatisch configureren. Download vervolgens het codevoorbeeld
- Ga naar de quickstart-ervaring Azure-portal - App-registraties.
- Voer een naam in voor de toepassing en selecteer Registreren.
- Volg de instructies om de nieuwe toepassing te downloaden en automatisch te configureren.
Optie 2: registreer de toepassing en configureer handmatig de toepassing en het codevoorbeeld
Stap 1: Uw toepassing registreren
Volg deze stappen om de toepassing te registreren en de registratiegegevens van de app toe te voegen aan de oplossing:
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory's en abonnementen
in het bovenste menu om naar de tenant te schakelen waarin u de toepassing wilt registreren.
- Zoek en selecteer de optie Azure Active Directory.
- Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
- Voer een Naam in voor de toepassing. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
- Selecteer in de sectie Ondersteunde accounttypen de optie Accounts in alle organisatiemappen en persoonlijke Microsoft-accounts (bijvoorbeeld Skype, Xbox, Outlook.com.
- Selecteer Registreren om de toepassing te maken en noteer vervolgens de Toepassings(client)-id die u in een latere stap gebruikt.
- Selecteer Verificatie onder Beheren.
- Selecteer Een platform toevoegen>Mobiele en desktoptoepassingen.
- Selecteer
https://login.microsoftonline.com/common/oauth2/nativeclient
onder Omleidings-URI's. - Selecteer Configureren.
Stap 2: Het project downloaden
De UWP-voorbeeldtoepassing downloaden
Tip
Om fouten te voorkomen die worden veroorzaakt door padlengtebeperkingen in Windows, raden we u aan het archief te extraheren of de opslagplaats te klonen in een map dicht bij de hoofdmap van uw station.
Stap 3: het project configureren
Pak het zip-archief uit in een lokale map in de buurt van de hoofdmap van uw station. Bijvoorbeeld in C:\Azure-Samples.
Open het project in Visual Studio. Installeer de Universeel Windows-platform-ontwikkeling-werkbelasting en eventuele afzonderlijke SDK-onderdelen, als u hierom wordt gevraagd.
Wijzig in MainPage.Xaml.cs de waarde van de variabele
ClientId
naar de Toepassings(client)-id van de toepassing die u eerder hebt geregistreerd.private const string ClientId = "Enter_the_Application_Id_here";
U kunt de Toepassings(client)-id vinden in het deelvenster Overzicht van de app in het de Azure-portal (Azure Active Directory>App-registraties>{Uw app-registratie} ).
Maak en selecteer vervolgens een nieuw zelfondertekend testcertificaat voor het pakket:
- Dubbelklik in de Solution Explorer op het bestand Package.appxmanifest.
- Selecteer Verpakken>Certificaat kiezen...>Maken... .
- Voer een wachtwoord in en selecteer OK. Er wordt een certificaat met de naam Native_UWP_V2_TemporaryKey.pfx gemaakt.
- Selecteer OK om het dialoogvenster Een certificaat kiezen te sluiten en controleer of u Native_UWP_V2_TemporaryKey.pfx in Solution Explorer ziet.
- Klik in de Solution Explorer met de rechtermuisknop op het project Native_UWP_V2 en selecteer Eigenschappen.
- Selecteer Ondertekenen en selecteer vervolgens het pfx-bestand dat u hebt gemaakt in de vervolgkeuzelijst Kies een sleutel met een sterke naam.
Stap 4: De toepassing uitvoeren
Om de voorbeeldtoepassing uit te voeren op uw lokale computer:
Kies op de werkbalk van Visual Studio het juiste platform (waarschijnlijk x64 of x86, niet ARM). Het doelapparaat moet worden gewijzigd van Apparaat naar Lokale machine.
Selecteer Fouten opsporen>Starten zonder foutopsporing.
Als u hierom wordt gevraagd, moet u mogelijk eerst Ontwikkelaarsmodus inschakelen en vervolgens opnieuw Starten zonder foutopsporing om de app te starten.
Wanneer het venster van de app wordt weergegeven, kunt u de knop Microsoft Graph-API aanroepen selecteren, uw referenties invoeren en akkoord gaan met de machtigingen die door de toepassing worden aangevraagd. Als dit lukt, worden in de toepassing bepaalde tokengegevens en andere gegevens weergegeven die zijn verkregen van de aanroep van de Microsoft Graph-API.
Hoe het voorbeeld werkt
MSAL.NET
MSAL (Microsoft.Identity.Client) is de bibliotheek die wordt gebruikt om gebruikers aan te melden en beveiligingstokens aan te vragen. De beveiligingstokens worden gebruikt om toegang te krijgen tot een API die wordt beveiligd door het Microsoft-identiteitsplatform. U kunt MSAL installeren door de volgende opdracht uit te voeren in Package Manager Console van Visual Studio:
Install-Package Microsoft.Identity.Client
MSAL initialiseren
U kunt de verwijzing voor MSAL toevoegen door de volgende code toe te voegen:
using Microsoft.Identity.Client;
Vervolgens wordt MSAL geïnitialiseerd met de volgende code:
public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.Build();
De waarde van ClientId
is de Toepassings(client)-id voor de toepassing die u hebt geregistreerd in de Azure-portal. U vindt deze waarde op de pagina Overzicht in de Azure-portal.
Tokens aanvragen
MSAL biedt twee methoden om tokens in een UWP-app te verkrijgen: AcquireTokenInteractive
en AcquireTokenSilent
.
Een gebruikerstoken interactief ophalen
In sommige situaties is het nodig om gebruikers via een pop-upvenster te dwingen het Microsoft-identiteitsplatform te gebruiken om hun referenties te valideren of om toestemming te geven. Voorbeelden zijn:
- De eerste keer dat gebruikers zich aanmelden bij de toepassing
- Wanneer gebruikers mogelijk hun referenties opnieuw moeten opgeven omdat het wachtwoord is verlopen
- Wanneer via de toepassing toegang wordt aangevraagd tot een resource waarvoor de gebruiker toestemming moet geven
- Wanneer tweeledige verificatie is vereist
authResult = await PublicClientApp.AcquireTokenInteractive(scopes)
.ExecuteAsync();
De parameter scopes
bevat de bereiken die worden aangevraagd, zoals { "user.read" }
voor Microsoft Graph of { "api://<Application ID>/access_as_user" }
voor aangepaste web-API's.
Een gebruikerstoken op de achtergrond ophalen
Gebruik de methode AcquireTokenSilent
om tokens op te halen voor toegang tot beveiligde resources na de eerste methode AcquireTokenInteractive
. U wilt niet dat de gebruiker telkens wanneer deze toegang nodig heeft tot een resource, de referenties moet laten valideren. In de meeste gevallen wilt u tokens ophalen en verlengen zonder tussenkomst van de gebruiker
var accounts = await PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
scopes
bevat de bereiken die worden aangevraagd, bijvoorbeeld{ "user.read" }
voor Microsoft Graph of{ "api://<Application ID>/access_as_user" }
voor aangepaste web-API's.firstAccount
geeft het eerste gebruikersaccount in de cache op (MSAL biedt ondersteuning voor meerdere gebruikers in één app).
Help en ondersteuning
Als u hulp nodig hebt, een probleem wilt melden of meer informatie wilt over uw ondersteuningsopties, raadpleegt u Hulp en ondersteuning voor ontwikkelaars.
Volgende stappen
Volg de zelfstudie voor Windows-bureaublad voor een volledige stapsgewijze handleiding voor het bouwen van toepassingen en nieuwe functies, waaronder een volledige uitleg van deze quickstart.
In deze quickstart downloadt u een codevoorbeeld en voert u dit uit. Het codevoorbeeld laat zien hoe gebruikers kunnen worden aangemeld met een WPF-toepassing (Windows Presentation Foundation), en een toegangstoken kunnen krijgen om de Microsoft Graph API aan te roepen. De desktop-app die u bouwt, maakt gebruik van de autorisatiecodestroom die is gekoppeld aan de PKCE-standaard (Proof Key for Code Exchange).
Zie Hoe het voorbeeld werkt voor een illustratie.
Vereisten
- Visual Studio waarbij de werkbelasting Universeel Windows-platformontwikkeling is ingeschakeld
De quickstart-app registreren en downloaden
U hebt twee opties voor het starten van de snelstarttoepassing:
- [Express] Optie 1: registreer de toepassing en laat deze automatisch configureren. Download vervolgens het codevoorbeeld
- [Handmatig] Optie 2: registreer de toepassing en configureer handmatig de toepassing en het codevoorbeeld
Optie 1: registreer de toepassing en laat deze automatisch configureren. Download vervolgens het codevoorbeeld
- Ga naar de quickstart Azure Portal - App-registraties.
- Voer een naam in voor de toepassing en selecteer Registreren.
- Volg de instructies om de nieuwe toepassing met slechts één klik te downloaden en automatisch te configureren.
Optie 2: registreer de toepassing en configureer handmatig de toepassing en het codevoorbeeld
Stap 1: Uw toepassing registreren
Volg deze stappen om de toepassing te registreren en de registratiegegevens van de app handmatig toe te voegen aan uw oplossing:
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory's en abonnementen
in het bovenste menu om naar de tenant te schakelen waarin u de toepassing wilt registreren.
- Zoek en selecteer de optie Azure Active Directory.
- Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
- Voer een Naam in voor de toepassing. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
- Selecteer in de sectie Ondersteunde accounttypen de optie Accounts in alle organisatiemappen en persoonlijke Microsoft-accounts (bijvoorbeeld Skype, Xbox, Outlook.com.
- Selecteer Registreren om de toepassing te maken.
- Selecteer Verificatie onder Beheren.
- Selecteer Een platform toevoegen>Mobiele en desktoptoepassingen.
- Selecteer in de sectie Omleidings-URI's
https://login.microsoftonline.com/common/oauth2/nativeclient
en voeg in de Aangepaste omleidings-URI'sms-appx-web://microsoft.aad.brokerplugin/{client_id}
toe waarbij{client_id}
de toepassings-id (client) van uw toepassing is (dezelfde GUID die wordt weergegeven in hetmsal{client_id}://auth
selectievakje). - Selecteer Configureren.
Stap 2: Het project downloaden
De WPF-voorbeeldtoepassing downloaden
Tip
Om fouten te voorkomen die worden veroorzaakt door padlengtebeperkingen in Windows, raden we u aan het archief te extraheren of de opslagplaats te klonen in een map dicht bij de hoofdmap van uw station.
Stap 3: het project configureren
Pak het zip-bestand uit in een lokale map dicht bij de hoofdmap van de schijf, bijvoorbeeld C:\Azure-Samples.
Open het project in Visual Studio.
Bewerk App.Xaml.cs en vervang de waarden van de velden
ClientId
enTenant
door de volgende code:private static string ClientId = "Enter_the_Application_Id_here"; private static string Tenant = "Enter_the_Tenant_Info_Here";
Waar:
Enter_the_Application_Id_here
: is de toepassings-id (client-id) voor de toepassing die u hebt geregistreerd.Als u de waarde van Toepassings-id (client) wilt vinden, gaat u naar de pagina Overzicht van de app in de Azure Portal.
Enter_the_Tenant_Info_Here
: is ingesteld op een van de volgende opties:Als uw toepassing Alleen accounts in deze organisatiemap ondersteunt, vervang deze waarde dan door de Tenant-id of Tenantnaam (bijvoorbeeld contoso.microsoft.com)
Als uw toepassing Accounts in elke organisatiemap ondersteunt, vervang deze waarde dan door
organizations
Als uw toepassing ondersteuning biedt voor accounts in elke organisatiemap en persoonlijke Microsoft-accounts, vervangt u deze waarde door
common
.Om de waarden van Map-id (tenant-id) en Ondersteunde accounttypen te achterhalen, gaat u naar de Overzichtspagina van de app in de Azure-portal.
Stap 4: De toepassing uitvoeren
Als u de voorbeeldtoepassing in Visual Studio wilt bouwen en uitvoeren, selecteert u in het menu Foutopsporing>starten of drukt u op F5. De MainWindow van uw toepassing wordt weergegeven.
Wanneer het hoofdvenster van de app wordt weergegeven, selecteert u de knop Microsoft Graph API bellen. U wordt gevraagd u aan te melden met de referenties van uw Azure Active Directory-account (werk- of schoolaccount) of Microsoft-account (live.com, outlook.com).
Als u de toepassing voor de eerste keer uitvoert, wordt u gevraagd toestemming te geven om de toepassing toegang te geven tot uw gebruikersprofiel en u aan te melden. Nadat u de gewenste machtigingen hebt opgegeven, wordt in de app weer gegeven dat u bent aangemeld met uw referenties voor Azure Active Directory. U ziet nu enkele basistokengegevens en gebruikersgegevens die zijn verkregen uit de aanroep van de Microsoft Graph API.
Meer informatie
Hoe het voorbeeld werkt
MSAL.NET
MSAL (Microsoft.Identity.Client) is de bibliotheek die wordt gebruikt voor het aanmelden van gebruikers en het aanvragen van tokens die worden gebruikt voor toegang tot een API die wordt beveiligd met Microsoft-identiteitsplatform. U kunt MSAL installeren door de volgende opdracht uit te voeren in Package Manager Console van Visual Studio:
Install-Package Microsoft.Identity.Client -IncludePrerelease
MSAL initialiseren
U kunt de verwijzing voor MSAL toevoegen door de volgende code toe te voegen:
using Microsoft.Identity.Client;
Vervolgens initialiseert u MSAL met de volgende code:
IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
.Build();
Waar: | Beschrijving |
---|---|
ClientId |
Is de Toepassings-id (client-id) voor de toepassing die is geregistreerd in de Azure-portal. U vindt deze waarde op de pagina Overzicht in de Azure-portal. |
Tokens aanvragen
MSAL biedt twee methoden om tokens te verkrijgen: AcquireTokenInteractive
en AcquireTokenSilent
.
Een gebruikerstoken interactief ophalen
In sommige situaties is het nodig om gebruikers via een pop-upvenster te dwingen het Microsoft-identiteitsplatform te gebruiken om hun referenties te valideren of om toestemming te geven. Voorbeelden zijn:
- De eerste keer dat gebruikers zich aanmelden bij de toepassing
- Wanneer gebruikers mogelijk hun referenties opnieuw moeten opgeven omdat het wachtwoord is verlopen
- Wanneer via de toepassing toegang wordt aangevraagd tot een resource waarvoor de gebruiker toestemming moet geven
- Wanneer tweeledige verificatie is vereist
authResult = await app.AcquireTokenInteractive(_scopes)
.ExecuteAsync();
Waar: | Beschrijving |
---|---|
_scopes |
Bevat de bereiken die worden aangevraagd, bijvoorbeeld { "user.read" } voor Microsoft Graph of { "api://<Application ID>/access_as_user" } voor aangepaste web-API's. |
Een gebruikerstoken op de achtergrond ophalen
U wilt niet dat de gebruiker telkens wanneer deze toegang nodig heeft tot een resource, de referenties moet laten valideren. In de meeste gevallen wilt u tokens ophalen en verlengen zonder tussenkomst van de gebruiker. U kunt de methode AcquireTokenSilent
voor het verkrijgen van tokens gebruiken voor toegang tot beveiligde resources na de eerste methode AcquireTokenInteractive
:
var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
Waar: | Beschrijving |
---|---|
scopes |
Bevat de bereiken die worden aangevraagd, bijvoorbeeld { "user.read" } voor Microsoft Graph of { "api://<Application ID>/access_as_user" } voor aangepaste web-API's. |
firstAccount |
Geeft de eerste gebruiker in de cache op (MSAL biedt ondersteuning voor meerdere gebruikers in één app). |
Help en ondersteuning
Als u hulp nodig hebt, een probleem wilt melden of meer informatie wilt over uw ondersteuningsopties, raadpleegt u Hulp en ondersteuning voor ontwikkelaars.
Volgende stappen
Volg de zelfstudie voor Windows-bureaublad voor een volledige stapsgewijze handleiding voor het bouwen van toepassingen en nieuwe functies, waaronder een volledige uitleg van deze quickstart.
In deze quickstart downloadt u een codevoorbeeld en voert u dit uit. Het codevoorbeeld laat zien hoe gebruikers kunnen worden aangemeld met een Electron-toepassing, en een toegangstoken kunnen krijgen om de Microsoft Graph API aan te roepen.
In deze quickstart wordt de Microsoft Authentication Library voor Node.js (MSAL Node) gebruikt met de verificatiecodestroom met PKCE.
Vereisten
- Node.js
- Visual Studio Code of een andere code-editor
De voorbeeldtoepassing downloaden en registreren
Voer de onderstaande stappen uit om aan de slag te gaan.
Stap 1: Registreer de toepassing
Volg deze stappen om de toepassing te registreren en de registratiegegevens van de app handmatig toe te voegen aan uw oplossing:
- Meld u aan bij de Azure-portal.
- Als u toegang hebt tot meerdere tenants, gebruikt u het filter Directory's en abonnementen
in het bovenste menu om naar de tenant te schakelen waarin u de toepassing wilt registreren.
- Zoek en selecteer de optie Azure Active Directory.
- Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
- Voer een Naam in voor de toepassing. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
- Selecteer Registreren om de toepassing te maken.
- Selecteer Verificatie onder Beheren.
- Selecteer Een platform toevoegen>Mobiele en desktoptoepassingen.
- Voer in de sectie Omleidings-URI's
http://localhost
in. - Selecteer Configureren.
Stap 2: het Electron-voorbeeldproject downloaden
Stap 3: het Electron-voorbeeldproject configureren
*Pak het project uit, open de map ms-identity-JavaScript-nodejs-desktop-main en open het .authConfig.js-bestand . Vervang de waarde als volgt:
Variabele | Beschrijving | Voorbeeld(en) |
---|---|---|
Enter_the_Cloud_Instance_Id_Here |
Het Azure-cloudexemplaar waarin uw toepassing is geregistreerd | https://login.microsoftonline.com/ (neem de afsluitende slash op) |
Enter_the_Tenant_Id_Here |
Tenant-id of primair domein | contoso.microsoft.com of cbe899ec-5f5c-4efe-b7a0-599505d3d54f |
Enter_the_Application_Id_Here |
Client-id van de toepassing die u hebt geregistreerd | fa29b4c9-7675-4b61-8a0a-bf7b2b4fda91 |
Enter_the_Redirect_Uri_Here |
De omleidings-URI van de toepassing die u hebt geregistreerd | msalfa29b4c9-7675-4b61-8a0a-bf7b2b4fda91://auth |
Enter_the_Graph_Endpoint_Here |
Het Microsoft Graph API-cloudexemplaar dat door uw app wordt aangeroepen | https://graph.microsoft.com/ (neem de afsluitende slash op) |
Uw bestand moet er ongeveer zo uitzien:
const AAD_ENDPOINT_HOST = "https://login.microsoftonline.com/"; // include the trailing slash
const msalConfig = {
auth: {
clientId: "fa29b4c9-7675-4b61-8a0a-bf7b2b4fda91",
authority: `${AAD_ENDPOINT_HOST}/cbe899ec-5f5c-4efe-b7a0-599505d3d54f`,
},
system: {
loggerOptions: {
loggerCallback(loglevel, message, containsPii) {
console.log(message);
},
piiLoggingEnabled: false,
logLevel: LogLevel.Verbose,
}
}
}
const GRAPH_ENDPOINT_HOST = "https://graph.microsoft.com/"; // include the trailing slash
const protectedResources = {
graphMe: {
endpoint: `${GRAPH_ENDPOINT_HOST}v1.0/me`,
scopes: ["User.Read"],
}
};
module.exports = {
msalConfig: msalConfig,
protectedResources: protectedResources,
};
Stap 4: De toepassing uitvoeren
U moet de afhankelijkheden van dit voorbeeld eenmaal installeren:
cd ms-identity-javascript-nodejs-desktop-main npm install
Voer dan de toepassing uit via de opdrachtprompt of console:
npm start
Selecteer Aanmelden om het aanmeldingsproces te starten.
De eerste keer dat u zich aanmeldt, wordt u gevraagd om toestemming te geven zodat de toepassing zich kan aanmelden en uw profiel kan openen. Nadat u bent aangemeld, wordt u teruggeleid naar de toepassing.
Meer informatie
Hoe het voorbeeld werkt
Wanneer een gebruiker de knop Aanmelden voor de eerste keer selecteert, acquireTokenInteractive
wordt de methode van MSAL Node aangeroepen. Deze methode leidt de gebruiker om zich aan te melden bij het Microsoft identity platform-eindpunt, verkrijgt een autorisatiecode en wisselt deze vervolgens uit voor een toegangstoken.
MSAL Node
MSAL Node 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. Zie dit artikel voor meer informatie over het gebruik van MSAL Node met bureaublad-apps.
U kunt MSAL Node installeren door de volgende npm-opdracht uit te voeren.
npm install @azure/msal-node --save
Volgende stappen
Zie voor meer informatie over de ontwikkeling van Electron bureaublad-apps met MSAL Node de zelfstudie: