Inicializace klientských aplikací

Dokončeno

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

  • .WithAuthority modifikátor: .WithAuthority Modifiká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();
    
  • .WithRedirectUri modifikátor: .WithRedirectUri Modifiká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.