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

De quickstart-app registreren en downloaden

U hebt twee opties voor het starten van de snelstarttoepassing:

Optie 1: registreer de toepassing en laat deze automatisch configureren. Download vervolgens het codevoorbeeld

  1. Ga naar de quickstart-ervaring Azure-portal - App-registraties.
  2. Voer een naam in voor de toepassing en selecteer Registreren.
  3. 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:

  1. Meld u aan bij de Azure-portal.
  2. 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.
  3. Zoek en selecteer de optie Azure Active Directory.
  4. Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
  5. Voer een Naam in voor de toepassing. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
  6. Selecteer in de sectie Ondersteunde accounttypen de optie Accounts in alle organisatiemappen en persoonlijke Microsoft-accounts (bijvoorbeeld Skype, Xbox, Outlook.com.
  7. Selecteer Registreren om de toepassing te maken en noteer vervolgens de Toepassings(client)-id die u in een latere stap gebruikt.
  8. Selecteer Verificatie onder Beheren.
  9. Selecteer Een platform toevoegen>Mobiele en desktoptoepassingen.
  10. Selecteer https://login.microsoftonline.com/common/oauth2/nativeclient onder Omleidings-URI's.
  11. 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

  1. Pak het zip-archief uit in een lokale map in de buurt van de hoofdmap van uw station. Bijvoorbeeld in C:\Azure-Samples.

  2. Open het project in Visual Studio. Installeer de Universeel Windows-platform-ontwikkeling-werkbelasting en eventuele afzonderlijke SDK-onderdelen, als u hierom wordt gevraagd.

  3. 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} ).

  4. Maak en selecteer vervolgens een nieuw zelfondertekend testcertificaat voor het pakket:

    1. Dubbelklik in de Solution Explorer op het bestand Package.appxmanifest.
    2. Selecteer Verpakken>Certificaat kiezen...>Maken... .
    3. Voer een wachtwoord in en selecteer OK. Er wordt een certificaat met de naam Native_UWP_V2_TemporaryKey.pfx gemaakt.
    4. Selecteer OK om het dialoogvenster Een certificaat kiezen te sluiten en controleer of u Native_UWP_V2_TemporaryKey.pfx in Solution Explorer ziet.
    5. Klik in de Solution Explorer met de rechtermuisknop op het project Native_UWP_V2 en selecteer Eigenschappen.
    6. 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:

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

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

Toont hoe de voorbeeld-app werkt die is gegenereerd door deze quickstart

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

De quickstart-app registreren en downloaden

U hebt twee opties voor het starten van de snelstarttoepassing:

Optie 1: registreer de toepassing en laat deze automatisch configureren. Download vervolgens het codevoorbeeld

  1. Ga naar de quickstart Azure Portal - App-registraties.
  2. Voer een naam in voor de toepassing en selecteer Registreren.
  3. 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:

  1. Meld u aan bij de Azure-portal.
  2. 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.
  3. Zoek en selecteer de optie Azure Active Directory.
  4. Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
  5. Voer een Naam in voor de toepassing. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
  6. Selecteer in de sectie Ondersteunde accounttypen de optie Accounts in alle organisatiemappen en persoonlijke Microsoft-accounts (bijvoorbeeld Skype, Xbox, Outlook.com.
  7. Selecteer Registreren om de toepassing te maken.
  8. Selecteer Verificatie onder Beheren.
  9. Selecteer Een platform toevoegen>Mobiele en desktoptoepassingen.
  10. Selecteer in de sectie Omleidings-URI'shttps://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 het msal{client_id}://auth selectievakje).
  11. 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

  1. Pak het zip-bestand uit in een lokale map dicht bij de hoofdmap van de schijf, bijvoorbeeld C:\Azure-Samples.

  2. Open het project in Visual Studio.

  3. Bewerk App.Xaml.cs en vervang de waarden van de velden ClientId en Tenant 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

Toont hoe de voorbeeld-app werkt die is gegenereerd door deze quickstart

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

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:

  1. Meld u aan bij de Azure-portal.
  2. 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.
  3. Zoek en selecteer de optie Azure Active Directory.
  4. Selecteer onder Beheren de optie App-registraties>Nieuwe registratie.
  5. Voer een Naam in voor de toepassing. Gebruikers van uw app kunnen de naam zien. U kunt deze later wijzigen.
  6. Selecteer Registreren om de toepassing te maken.
  7. Selecteer Verificatie onder Beheren.
  8. Selecteer Een platform toevoegen>Mobiele en desktoptoepassingen.
  9. Voer in de sectie Omleidings-URI'shttp://localhost in.
  10. Selecteer Configureren.

Stap 2: het Electron-voorbeeldproject downloaden

Het codevoorbeeld 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

  1. U moet de afhankelijkheden van dit voorbeeld eenmaal installeren:

    cd ms-identity-javascript-nodejs-desktop-main
    npm install
    
  2. Voer dan de toepassing uit via de opdrachtprompt of console:

    npm start
    
  3. 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: