Initialiser klientprogrammer
Med MSAL.NET 3.x er den anbefalte måten å starte et program på ved å bruke programverktøyene: PublicClientApplicationBuilder og ConfidentialClientApplicationBuilder. De tilbyr en kraftig mekanisme for å konfigurere programmet enten fra koden, eller fra en konfigurasjonsfil, eller til og med ved å blande begge tilnærmingene.
Før du initialiserer et program, må du først registrere det slik at appen kan integreres med Microsofts identitetsplattform. Etter registreringen trenger du kanskje følgende informasjon (som du finner i Azure-portalen):
- application (client) ID – dette er en streng som representerer en GUID.
- Directory (tenant) ID – gir IAM-funksjoner (identity and access management) til programmer og ressurser som brukes av organisasjonen. Den kan angi om du skriver en bransjeapplikasjon utelukkende for organisasjonen (også kalt program med én leier).
- URL-adressen for identitetsleverandøren (kalt forekomst) og påloggingsgruppen for programmet. Disse to parameterne er kollektivt kjent som myndigheten.
-
klientlegitimasjon – som kan ta form av en programhemmelighet (klienthemmelighetsstreng) eller sertifikat (av typen
X509Certificate2) hvis det er en konfidensiell klientapp. - For nettapper, og noen ganger for offentlige klientapper (spesielt når appen må bruke en megler), må du angi omadresserings-URI-en der identitetsleverandøren sender sikkerhetstokenet tilbake til programmet.
Initialisering av offentlige og konfidensielle klientprogrammer fra kode
Følgende kode umiddelbart utgjør et offentlig klientprogram, påloggingsbrukere i den offentlige Microsoft Azure-skyen, med jobb- og skolekontoer eller deres personlige Microsoft-kontoer.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId).Build();
På samme måte utgjør følgende kode et konfidensielt program (en nettapp som er plassert på https://myapp.azurewebsites.net) som håndterer tokener fra brukere i den offentlige Microsoft Azure-skyen, med jobb- og skolekontoene sine, eller deres personlige Microsoft-kontoer. Programmet identifiseres med identitetsleverandøren ved å dele en klienthemmelighet:
string redirectUri = "https://myapp.azurewebsites.net";
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithClientSecret(clientSecret)
.WithRedirectUri(redirectUri )
.Build();
Builder modifikatorer
I kodesnuttene som bruker programverktøy, kan .With metoder brukes som modifikatorer (for eksempel .WithAuthority og .WithRedirectUri).
.WithAuthoritymodifikator: Endringsprogrammet for.WithAuthorityangir standardinstansen for programmet til en Microsoft Entra-myndighet, med mulighet for å velge Azure Cloud, målgruppen, leieren (leier-ID eller domenenavn), eller gi direkte myndighets-URI.IPublicClientApplication app; app = PublicClientApplicationBuilder.Create(clientId) .WithAuthority(AzureCloudInstance.AzurePublic, tenantId) .Build();.WithRedirectUrimodifikator: Endringsprogrammet for.WithRedirectUrioverstyrer standard omadresserings-URI.IPublicClientApplication app; app = PublicClientApplicationBuilder.Create(client_id) .WithAuthority(AzureCloudInstance.AzurePublic, tenant_id) .WithRedirectUri("http://localhost") .Build();
Modifikatorer som er felles for offentlige og konfidensielle klientprogrammer
Tabellen nedenfor viser noen av modifikatorene du kan angi for en offentlig eller konfidensiell klient.
| Modifikator | Beskrivelse |
|---|---|
.WithAuthority() |
Angir standardinstansen for programmet til en Microsoft Entra-myndighet, med mulighet for å velge Azure Cloud, målgruppen, leieren (leier-ID eller domenenavn), eller gi direkte URI-en for myndighet. |
.WithTenantId(string tenantId) |
Overstyrer leier-ID-en eller leierbeskrivelsen. |
.WithClientId(string) |
Overstyrer klient-ID-en. |
.WithRedirectUri(string redirectUri) |
Overstyrer standard omadresserings-URI. Dette er nyttig for scenarioer som krever en megler. |
.WithComponent(string) |
Angir navnet på biblioteket ved hjelp av MSAL.NET (av telemetriårsaker). |
.WithDebugLoggingCallback() |
Hvis det kalles, kaller programmet Debug.Write bare aktivere feilsøkingssporinger. |
.WithLogging() |
Hvis det kalles, kaller programmet en tilbakeringing med feilsøkingssporinger. |
.WithTelemetry(TelemetryCallback telemetryCallback) |
Angir representanten som brukes til å sende telemetri. |
Modifikasjoner som er spesifikke for konfidensielle klientprogrammer
Modifikasjonene som er spesifikke for et konfidensielt klientprogramverktøy, finner du i ConfidentialClientApplicationBuilder-klassen. Du finner de ulike metodene i Azure SDK for .NET-dokumentasjon.
Modifikatorer som .WithCertificate(X509Certificate2 certificate) og .WithClientSecret(string clientSecret) er gjensidig utelukkende. Hvis du oppgir begge deler, gir MSAL et meningsfylt unntak.