Initiera klientprogram
Med MSAL.NET 3.x är det rekommenderade sättet att instansiera ett program genom att använda programbyggarna: PublicClientApplicationBuilder
och ConfidentialClientApplicationBuilder
. De erbjuder en kraftfull mekanism för att konfigurera programmet antingen från koden eller från en konfigurationsfil, eller till och med genom att blanda båda metoderna.
Innan du initierar ett program måste du först registrera det så att appen kan integreras med Microsofts identitetsplattform. Efter registreringen kan du behöva följande information (som finns i Azure Portal):
- Program-ID (klient) – Det här är en sträng som representerar ett GUID.
- Katalog-ID (klientorganisation) – Tillhandahåller funktioner för identitets- och åtkomsthantering (IAM) till program och resurser som används av din organisation. Den kan ange om du skriver ett verksamhetsspecifikt program enbart för din organisation (även kallat program för en enda klientorganisation).
- Identitetsproviderns URL (med namnet instansen) och inloggningspubliken för ditt program. Dessa två parametrar kallas gemensamt för utfärdaren.
-
Klientautentiseringsuppgifter – som kan ha formen av en programhemlighet (klienthemlig sträng) eller certifikat (av typen
X509Certificate2
) om det är en konfidentiell klientapp. - För webbappar och ibland för offentliga klientappar (särskilt när din app behöver använda en asynkron meddelandekö) måste du ange omdirigerings-URI där identitetsprovidern kontaktar tillbaka ditt program med säkerhetstoken.
Initiera offentliga och konfidentiella klientprogram från kod
Följande kod instansierar ett offentligt klientprogram, inloggningsanvändare i det offentliga Microsoft Azure-molnet, med deras arbets- och skolkonton eller deras personliga Microsoft-konton.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId).Build();
På samma sätt instansierar följande kod ett konfidentiellt program (en webbapp som finns på https://myapp.azurewebsites.net
) som hanterar token från användare i det offentliga Microsoft Azure-molnet, med deras arbets- och skolkonton eller deras personliga Microsoft-konton. Programmet identifieras med identitetsprovidern genom att dela en klienthemlighet:
string redirectUri = "https://myapp.azurewebsites.net";
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithClientSecret(clientSecret)
.WithRedirectUri(redirectUri )
.Build();
Builder-modifierare
I kodfragmenten med programbyggare .With
kan metoder användas som modifierare (till exempel .WithAuthority
och .WithRedirectUri
).
.WithAuthority
modifier: Modifieraren.WithAuthority
anger programmets standardutfärdare till en Microsoft Entra-utfärdare, med möjlighet att välja Azure Cloud, målgruppen, klientorganisationen (klient-ID eller domännamn) eller tillhandahålla direkt utfärdarens URI.IPublicClientApplication app; app = PublicClientApplicationBuilder.Create(clientId) .WithAuthority(AzureCloudInstance.AzurePublic, tenantId) .Build();
.WithRedirectUri
modifier: Modifieraren.WithRedirectUri
åsidosätter standardomdirigerings-URI:n.IPublicClientApplication app; app = PublicClientApplicationBuilder.Create(client_id) .WithAuthority(AzureCloudInstance.AzurePublic, tenant_id) .WithRedirectUri("http://localhost") .Build();
Modifierare som är gemensamma för offentliga och konfidentiella klientprogram
Tabellen nedan visar några av de modifierare som du kan ange på en offentlig eller konfidentiell klient.
Modifierare | beskrivning |
---|---|
.WithAuthority() |
Anger programmets standardutfärdare till en Microsoft Entra-utfärdare, med möjlighet att välja Azure Cloud, målgruppen, klientorganisationen (klient-ID eller domännamn) eller tillhandahålla direkt utfärdarens URI. |
.WithTenantId(string tenantId) |
Åsidosätter klientorganisations-ID:t eller klientorganisationsbeskrivningen. |
.WithClientId(string) |
Åsidosätter klient-ID:t. |
.WithRedirectUri(string redirectUri) |
Åsidosätter standardomdirigerings-URI:n. Detta är användbart för scenarier som kräver en asynkron meddelandekö. |
.WithComponent(string) |
Anger namnet på biblioteket med hjälp av MSAL.NET (av telemetriskäl). |
.WithDebugLoggingCallback() |
Om det anropas anropas Debug.Write programmet bara för att aktivera felsökningsspårningar. |
.WithLogging() |
Om det anropas anropar programmet ett återanrop med felsökningsspårningar. |
.WithTelemetry(TelemetryCallback telemetryCallback) |
Anger det ombud som används för att skicka telemetri. |
Modifierare som är specifika för konfidentiella klientprogram
De modifierare som är specifika för en konfidentiell klientprogrambyggare finns i ConfidentialClientApplicationBuilder
klassen . De olika metoderna finns i Azure SDK för .NET-dokumentationen.
Modifierare som .WithCertificate(X509Certificate2 certificate)
och .WithClientSecret(string clientSecret)
utesluter varandra. Om du anger båda genererar MSAL ett meningsfullt undantag.