Inicializace klientských aplikací
S MSAL.NET 3.x doporučujeme vytvořit instanci aplikace pomocí tvůrce aplikací: PublicClientApplicationBuilder a ConfidentialClientApplicationBuilder. Nabízejí výkonný mechanismus konfigurace aplikace buď z kódu, nebo z konfiguračního souboru, nebo dokonce kombinací obou přístupů.
Před inicializací aplikace je nejprve potřeba ji zaregistrovat, aby byla vaše aplikace integrovaná s platformou Microsoft Identity Platform. Po registraci možná budete potřebovat následující informace (které najdete na webu Azure Portal):
- ID aplikace (klienta) – jedná se o řetězec představující identifikátor GUID.
- ID adresáře (tenanta) – Poskytuje možnosti správy identit a přístupu (IAM) aplikacím a prostředkům používaným vaší organizací. Může určit, jestli píšete obchodní aplikaci výhradně pro vaši organizaci (také pojmenovanou jednoklientovou aplikaci).
- Adresa URL zprostředkovatele identity (pojmenovaná instance) a cílová skupina přihlašování pro vaši aplikaci. Tyto dva parametry se souhrnně označují jako autorita.
-
Přihlašovací údaje klienta – které můžou mít formu tajného klíče aplikace (řetězec tajného klíče klienta) nebo certifikátu (typu
X509Certificate2), pokud se jedná o důvěrnou klientskou aplikaci. - U webových aplikací a někdy i u veřejných klientských aplikací (zejména když vaše aplikace potřebuje použít broker), musíte nastavit identifikátor URI přesměrování, kam poskytovatel identity odešle zpět bezpečnostní token do vaší aplikace.
Inicializace veřejných a důvěrných klientských aplikací z kódu
Následující kód vytvoří instanci veřejné klientské aplikace, přihlašování uživatelů ve veřejném cloudu Microsoft Azure pomocí pracovních a školních účtů nebo osobních účtů Microsoft.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId).Build();
Stejně tak následující kód vytvoří instanci důvěrné aplikace (webová aplikace umístěná na https://myapp.azurewebsites.netadrese) zpracovávající tokeny od uživatelů ve veřejném cloudu Microsoft Azure s pracovními a školními účty nebo osobními účty Microsoft. Aplikace je identifikována s zprostředkovatelem identity sdílením tajného klíče klienta:
string redirectUri = "https://myapp.azurewebsites.net";
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithClientSecret(clientSecret)
.WithRedirectUri(redirectUri )
.Build();
Modifikátory tvůrce
V fragmentech kódu pomocí tvůrce .With aplikací lze metody použít jako modifikátory (například .WithAuthority a .WithRedirectUri).
.WithAuthoritymodifikátor:.WithAuthorityModifikátor nastaví výchozí autoritu aplikace na autoritu Microsoft Entra s možností výběru cloudu Azure, cílové skupiny, tenanta (ID tenanta nebo názvu domény) nebo poskytnutí přímo identifikátoru URI autority.IPublicClientApplication app; app = PublicClientApplicationBuilder.Create(clientId) .WithAuthority(AzureCloudInstance.AzurePublic, tenantId) .Build();.WithRedirectUrimodifikátor:.WithRedirectUriModifikátor přepíše výchozí identifikátor URI přesměrování.IPublicClientApplication app; app = PublicClientApplicationBuilder.Create(client_id) .WithAuthority(AzureCloudInstance.AzurePublic, tenant_id) .WithRedirectUri("http://localhost") .Build();
Modifikátory společné pro veřejné a důvěrné klientské aplikace
Následující tabulka uvádí některé modifikátory, které můžete nastavit na veřejném nebo důvěrném klientovi.
| Modifikátor | Popis |
|---|---|
.WithAuthority() |
Nastaví výchozí autoritu aplikace na autoritu Microsoft Entra s možností výběru cloudu Azure, cílové skupiny, tenanta (ID tenanta nebo názvu domény) nebo poskytnutí přímo identifikátoru URI autority. |
.WithTenantId(string tenantId) |
Přepíše ID tenanta nebo popis tenanta. |
.WithClientId(string) |
Přepíše ID klienta. |
.WithRedirectUri(string redirectUri) |
Přepíše výchozí identifikátor URI přesměrování. To je užitečné ve scénářích vyžadujících zprostředkovatele. |
.WithComponent(string) |
Nastaví název knihovny pomocí MSAL.NET (z důvodů telemetrie). |
.WithDebugLoggingCallback() |
Pokud je volána, volání Debug.Write aplikace jednoduše povolí trasování ladění. |
.WithLogging() |
Pokud je volána, aplikace volá zpětné volání s laděním trasování. |
.WithTelemetry(TelemetryCallback telemetryCallback) |
Nastaví delegáta, který se používá k odesílání telemetrie. |
Modifikátory specifické pro důvěrné klientské aplikace
Modifikátory specifické pro tvůrce důvěrných klientských aplikací lze nalézt ve ConfidentialClientApplicationBuilder třídě. Různé metody najdete v dokumentaci k sadě Azure SDK pro .NET.
Modifikátory, jako .WithCertificate(X509Certificate2 certificate) jsou a .WithClientSecret(string clientSecret) vzájemně se vylučují. Pokud zadáte obojí, nástroj MSAL vyvolá smysluplnou výjimku.