Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje inicializaci veřejných klientů a důvěrných klientských aplikací pomocí Identity a ověřování Microsoftu pro .NET (MSAL.NET). Další informace o typech klientských aplikací najdete v tématu Veřejný klient a důvěrné klientské aplikace.
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 z kódu, konfiguračního souboru nebo dokonce kombinací obou přístupů.
Předpoklady
Před inicializací aplikace je nejprve potřeba ji zaregistrovat, aby byla aplikace integrovaná s Microsoft identity platform. Další informace najdete v článku Rychlý start: Registrace aplikace na platformě Microsoft identity. Po registraci budete potřebovat následující informace, které najdete na stránce registrace aplikace v Centrum pro správu Microsoft Entra.
- 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 také u veřejných klientských aplikací (zejména když vaše aplikace potřebuje použít zprostředkovatele) musíte nastavit identifikátor URI pro přesměrování, na který poskytovatel identity odešle zpět do vaší aplikace bezpečnostní tokeny.
Inicializace aplikací
Existuje mnoho různých způsobů vytvoření instance klientských aplikací.
Inicializace veřejné klientské aplikace z kódu
Následující kód vytvoří instanci veřejné klientské aplikace, která přihlašuje uživatele do veřejného cloudu Microsoft Azure pomocí jejich pracovních, školních nebo osobních účtů Microsoft.
IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId)
.Build();
Inicializace důvěrné klientské aplikace z kódu
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 Microsoft účty. 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();
V produkčním prostředí se ale certifikáty doporučují, protože jsou bezpečnější než tajné klíče klienta. Je možné je vytvořit a nahrát do Centrum pro správu Microsoft Entra. Kód by pak byl následující:
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId)
.WithCertificate(certificate)
.WithRedirectUri(redirectUri )
.Build();
Inicializace veřejné klientské aplikace z možností konfigurace
Následující kód vytvoří instanci veřejné klientské aplikace z objektu konfigurace, který by mohl být vyplněn programově nebo číst z konfiguračního souboru:
PublicClientApplicationOptions options = GetOptions(); // your own method
IPublicClientApplication app = PublicClientApplicationBuilder.CreateWithApplicationOptions(options)
.Build();
Inicializace důvěrné klientské aplikace z možností konfigurace
Stejný druh vzoru platí pro důvěrné klientské aplikace. Můžete také přidat další parametry pomocí .WithXXX modifikátorů. Tento příklad používá .WithCertificate.
ConfidentialClientApplicationOptions options = GetOptions(); // your own method
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.CreateWithApplicationOptions(options)
.WithCertificate(certificate)
.Build();
Modifikátory builderu
V fragmentech kódu pomocí tvůrce aplikací lze mnoho .With metod použít jako modifikátory (například .WithCertificate a .WithRedirectUri).
Modifikátory společné pro veřejné a důvěrné klientské aplikace
Modifikátory, které můžete nastavit pro veřejného klienta nebo tvůrce důvěrných klientských aplikací, najdete ve AbstractApplicationBuilder<T> třídě. Různé metody najdete v Azure SDK pro .NET dokumentaci.
Modifikátory specifické pro aplikace Xamarin.iOS
Modifikátory, které můžete nastavit v tvůrci veřejných klientských aplikací v Xamarin.iOS, jsou:
| Modifikátor | Description |
|---|---|
.WithIosKeychainSecurityGroup() |
pouze Xamarin.iOS: Nastaví skupinu zabezpečení řetězu klíčů iOS (pro trvalost mezipaměti). |
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 Azure SDK pro .NET dokumentaci.
Modifikátory, například .WithCertificate(X509Certificate2 certificate) a .WithClientSecret(string clientSecret), se vzájemně vylučují. Pokud zadáte obojí, nástroj MSAL vyvolá smysluplnou výjimku.
Příklad použití modifikátorů
Předpokládejme, že vaše aplikace je obchodní aplikace, která je určená jenom pro vaši organizaci. Pak můžete napsat:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAuthority(AzureCloudInstance.AzurePublic, tenantId)
.Build();
Programování pro národní cloudy se zjednodušilo, takže pokud chcete, aby vaše aplikace byla víceklientská aplikace v národním cloudu, můžete napsat například:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAuthority(AzureCloudInstance.AzureUsGovernment, AadAuthorityAudience.AzureAdMultipleOrgs)
.Build();
K dispozici je také možnost přepsání nastavení pro ADFS (MSAL.NET podporuje pouze ADFS 2019 nebo novější):
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithAdfsAuthority("https://consoso.com/adfs")
.Build();
A nakonec, pokud vyvíjíte pro Azure AD B2C, můžete svého tenanta zadat takto:
IPublicClientApplication app;
app = PublicClientApplicationBuilder.Create(clientId)
.WithB2CAuthority("https://fabrikamb2c.b2clogin.com/tfp/{tenant}/{PolicySignInSignUp}")
.Build();
Viz také
Referenční dokumentace k rozhraní API
Další kroky
Po inicializaci klientské aplikace je vaším dalším úkolem přidat podporu pro přihlašování uživatelů, autorizovaný přístup k rozhraní API nebo obojí.
Naše dokumentace ke scénáři aplikace obsahuje pokyny pro přihlášení uživatele a získání přístupového tokenu pro přístup k rozhraní API jménem tohoto uživatele: