Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Van toepassing op:
Werknemerstenants (meer informatie)
Dit artikel bevat instructies voor het configureren van de code met de coördinaten van de toepassing.
Vereiste voorwaarden
- Registreer een nieuwe app in het Microsoft Entra-beheercentrum, alleen geconfigureerd voor accounts in deze organisatiemap. Raadpleeg Een applicatie registreren voor meer details. Noteer de volgende waarden van de Overview pagina van de applicatie voor later gebruik.
- Applicatie (client) ID
- ID van de directory (tenant)
Een platformomleidings-URI toevoegen
Voer de volgende stappen uit om uw app-type op te geven voor uw app-registratie:
- Selecteer onder BeherenAuthenticatie>Platform toevoegen>voor mobiele toepassingen en desktoptoepassingen
- Kies een van de volgende opties, afhankelijk van de verificatiemethode die u gebruikt:
- Gebruik de exacte waarde voor apps die ingesloten browsers gebruiken:
https://login.microsoftonline.com/common/oauth2/nativeclient - Gebruik de exacte waarde voor apps die systeembrowsers gebruiken:
http://localhost - Objective-C of Swift-apps voor macOS:
msauth.<your.app.bundle.id>://auth. - Node.js Electron-apps:
msal{Your_Application/Client_Id}://auth
- Gebruik de exacte waarde voor apps die ingesloten browsers gebruiken:
Opmerking
Voor WAM-apps (Web Authentication Manager) is geen omleidings-URI nodig in MSAL.
Openbare clientstroom inschakelen
Als u de apparaatcodestroom, geïntegreerde Windows-verificatie en een gebruikersnaam en een wachtwoord van een vertrouwelijke clienttoepassing wilt onderscheiden met behulp van een clientreferentiestroom die wordt gebruikt in daemon-toepassingen, waarvoor geen omleidings-URI is vereist, configureert u deze als een openbare clienttoepassing. Om deze configuratie te bereiken
Volg deze stappen om uw app te identificeren als een openbare client:
Onder Beheren, selecteer Verificatie.
Selecteer Ja onder Geavanceerde instellingen voor openbare clientstromen toestaan.
Selecteer Opslaan om uw wijzigingen op te slaan.
Microsoft-bibliotheken die desktop-apps ondersteunen
De volgende Microsoft-bibliotheken ondersteunen desktop-apps:
| Taal en framework | Project aan de gang GitHub |
Pakket | Verkrijgen begonnen |
Gebruikers aanmelden | Toegang krijgen tot web-API's | Algemeen beschikbaar (GA) of Openbare preview1 |
|---|---|---|---|---|---|---|
| Elektron | MSAL-Node.js | msal-node | — |
|
|
Publieke preview |
| Java | MSAL4J | msal4j | — |
|
|
Algemene Vergadering |
| macOS (Swift/Obj-C) | MSAL voor iOS en macOS | MSAL | Handleiding |
|
|
Algemene Vergadering |
| UWP (Universal Windows Platform) | MSAL.NET | Microsoft.Identity.Client | Handleiding |
|
|
Algemene Vergadering |
| WPF (Windows Presentation Foundation) | MSAL.NET | Microsoft.Identity.Client | Handleiding |
|
|
Algemene Vergadering |
1Universele licentievoorwaarden voor onlineservices zijn van toepassing op bibliotheken in openbare preview.
Publieke clienttoepassing
Vanuit het oogpunt van code zijn desktoptoepassingen openbare clienttoepassingen. De configuratie verschilt enigszins afhankelijke van of u interactieve verificatie gebruikt of niet.
U moet MSAL.NET IPublicClientApplication bouwen en aanpassen.
Uitsluitend per code
Met de volgende code wordt een openbare clienttoepassing gestart, en gebruikers aangemeld in de openbare cloud van Microsoft Azure, met een werk- of schoolaccount, of met hun persoonlijke Microsoft-account.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId)
.Build();
Als u van plan bent om interactieve verificatie of apparaatcodestroom te gebruiken, gebruikt u de wijzigingsfunctie .WithRedirectUri, zoals eerder getoond.
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithDefaultRedirectUri()
.Build();
Configuratiebestanden gebruiken
Met de volgende code wordt een openbare clienttoepassing gestart vanuit een configuratieobject. Dit kan programmatisch kan worden ingevuld of uit een configuratiebestand worden gelezen.
PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
.WithDefaultRedirectUri()
.Build();
Uitgebreidere configuratie
U kunt de toepassing uitbouwen door een aantal wijzigingsfuncties toe te voegen. Als u bijvoorbeeld wilt dat uw toepassing een toepassing met meerdere tenants is in een nationale cloud (zoals de Amerikaanse overheid in dit voorbeeld), kunt u het volgende schrijven:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithDefaultRedirectUri()
.WithAadAuthority(AzureCloudInstance.AzureUsGovernment,
AadAuthorityAudience.AzureAdMultipleOrgs)
.Build();
MSAL.NET bevat ook een wijzigingsfunctie voor Active Directory Federation Services 2019:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAdfsAuthority("https://consoso.com/adfs")
.Build();
Als u ten slotte tokens wilt verkrijgen voor een Azure AD B2C-tenant (Azure Active Directory), geeft u uw tenant op zoals wordt weergegeven in het volgende codefragment:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithB2CAuthority("https://fabrikamb2c.b2clogin.com/tfp/{tenant}/{PolicySignInSignUp}")
.Build();
Meer informatie
Voor meer informatie over het configureren van een MSAL.NET desktoptoepassing:
- Zie de referentiedocumentatie
PublicClientApplicationBuilderPublicClientApplicationBuilder voor een lijst met alle beschikbare wijzigingsfuncties. - Zie
PublicClientApplicationOptionsin de referentiedocumentatie voor een beschrijving van alle opties die worden weergegeven in .
Volledig voorbeeld met configuratieopties
Stel u een .NET-consoletoepassing voor met het volgende appsettings.json configuratiebestand:
{
"Authentication": {
"AzureCloudInstance": "AzurePublic",
"AadAuthorityAudience": "AzureAdMultipleOrgs",
"ClientId": "00001111-aaaa-2222-bbbb-3333cccc4444"
},
"WebAPI": {
"MicrosoftGraphBaseEndpoint": "https://graph.microsoft.com"
}
}
U hebt weinig code om in dit bestand te lezen met behulp van het via .NET geleverde configuratieframework:
public class SampleConfiguration
{
/// <summary>
/// Authentication options
/// </summary>
public PublicClientApplicationOptions PublicClientApplicationOptions { get; set; }
/// <summary>
/// Base URL for Microsoft Graph (it varies depending on whether the application runs
/// in Microsoft Azure public clouds or national or sovereign clouds)
/// </summary>
public string MicrosoftGraphBaseEndpoint { get; set; }
/// <summary>
/// Reads the configuration from a JSON file
/// </summary>
/// <param name="path">Path to the configuration json file</param>
/// <returns>SampleConfiguration as read from the json file</returns>
public static SampleConfiguration ReadFromJsonFile(string path)
{
// .NET configuration
IConfigurationRoot Configuration;
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(path);
Configuration = builder.Build();
// Read the auth and graph endpoint configuration
SampleConfiguration config = new SampleConfiguration()
{
PublicClientApplicationOptions = new PublicClientApplicationOptions()
};
Configuration.Bind("Authentication", config.PublicClientApplicationOptions);
config.MicrosoftGraphBaseEndpoint =
Configuration.GetValue<string>("WebAPI:MicrosoftGraphBaseEndpoint");
return config;
}
}
Schrijf nu de volgende code om uw toepassing te maken:
SampleConfiguration config = SampleConfiguration.ReadFromJsonFile("appsettings.json");
var app = PublicClientApplicationBuilder.CreateWithApplicationOptions(config.PublicClientApplicationOptions)
.WithDefaultRedirectUri()
.Build();
Voordat de aanroep bij de .Build() methode wordt uitgevoerd, kunt u de configuratie overschrijven met aanroepen naar .WithXXX methoden, zoals eerder getoond.
Volgende stappen
Ga verder met het volgende artikel in dit scenario: Een token ophalen voor de desktop-app.