PublicClientApplication Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Klasa abstrakcyjna zawierająca typowe metody i właściwości interfejsu API. Aby uzyskać szczegółowe informacje, zobacz https://aka.ms/msal-net-client-applications
public sealed class PublicClientApplication : Microsoft.Identity.Client.ClientApplicationBase, Microsoft.Identity.Client.IByRefreshToken, Microsoft.Identity.Client.IPublicClientApplication
type PublicClientApplication = class
inherit ClientApplicationBase
interface IPublicClientApplication
interface IClientApplicationBase
interface IApplicationBase
interface IByRefreshToken
Public NotInheritable Class PublicClientApplication
Inherits ClientApplicationBase
Implements IByRefreshToken, IPublicClientApplication
- Dziedziczenie
- Implementuje
Przykłady
Oto przykład użycia z PublicClientApplicationbrokerem uwierzytelniania i buforowaniem.
{
string tenant = s_tids[s_currentTid];
return $"https://login.microsoftonline.com/{tenant}";
}
private static IPublicClientApplication CreatePca(bool withWamBroker = false)
{
// <PCABootstrapSample>
var pcaBuilder = PublicClientApplicationBuilder
.Create(s_clientIdForPublicApp)
.WithAuthority(GetAuthority())
.WithLogging(Log, LogLevel.Verbose, true);
if (withWamBroker)
{
IntPtr consoleWindowHandle = GetConsoleWindow();
Func<IntPtr> consoleWindowHandleProvider = () => consoleWindowHandle;
pcaBuilder.WithBroker(new BrokerOptions(BrokerOptions.OperatingSystems.Windows) { Title = "Only Windows" })
.WithParentActivityOrWindow(consoleWindowHandleProvider);
}
Console.WriteLine($"IsBrokerAvailable: {pcaBuilder.IsBrokerAvailable()}");
var pca = pcaBuilder.WithRedirectUri("http://localhost") // required for DefaultOsBrowser
.Build();
pca.UserTokenCache.SetBeforeAccess(notificationArgs =>
{
notificationArgs.TokenCache.DeserializeMsalV3(File.Exists(CacheFilePath)
? File.ReadAllBytes(CacheFilePath)
: null);
});
pca.UserTokenCache.SetAfterAccess(notificationArgs =>
Uwagi
W przeciwieństwie do ConfidentialClientApplicationprogramu klienci publiczni nie mogą przechowywać wpisów tajnych czasu konfiguracji i w rezultacie nie mają wpisu tajnego klienta.
Identyfikator URI przekierowania wymagany do uwierzytelniania interakcyjnego jest automatycznie określany przez bibliotekę. Nie musi być jawnie przekazywany w konstruktorze. W zależności od strategii uwierzytelniania (np. za pośrednictwem Menedżera uwierzytelniania sieci Web, aplikacji uwierzytelniania, przeglądarki itp.), różne identyfikatory URI przekierowania będą używane przez bibliotekę MSAL. Identyfikatory URI przekierowania muszą być zawsze skonfigurowane w bloku Azure Active Directory w Azure Portal.
Właściwości
| Nazwa | Opis |
|---|---|
| AppConfig |
Szczegółowe informacje na temat konfiguracji aplikacji clientApplication na potrzeby debugowania. (Odziedziczone po ClientApplicationBase) |
| Authority |
Pobiera adres URL urzędu lub usługi tokenu zabezpieczającego (STS), z której MSAL.NET uzyska tokeny zabezpieczające Wartość zwracana tej właściwości jest wartością podaną przez dewelopera w konstruktorze aplikacji lub w inny sposób wartością Microsoft.Identity.Client.ApplicationBase.DefaultAuthority statycznego elementu członkowskiego (czyli |
| IsSystemWebViewAvailable |
Zwraca wartość true, jeśli biblioteka MSAL może używać przeglądarki systemowej. |
| OperatingSystemAccount |
Specjalna wartość konta wskazująca, że bieżące konto systemu operacyjnego powinno być używane do rejestrowania użytkownika. Nie wszystkie systemy operacyjne i przepływy uwierzytelniania obsługują tę koncepcję, w takim przypadku wywołanie AcquireTokenSilent(IEnumerable<String>, IAccount) zgłasza błąd MsalUiRequiredException. |
| UserTokenCache |
Pamięć podręczna tokenu użytkownika. Przechowuje tokeny dostępu, tokeny identyfikatorów i tokeny odświeżania dla kont. Jest on używany i aktualizowany w trybie dyskretnym w razie potrzeby podczas wywoływania AcquireTokenSilent(IEnumerable<String>, IAccount) lub jednego z przesłonięć elementu AcquireTokenSilent(IEnumerable<String>, IAccount).
Jest on aktualizowany przez każdą metodę AcquireTokenXXX, z wyjątkiem |
Metody
| Nazwa | Opis |
|---|---|
| AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>) |
Nieinterakcyjne żądanie uzyskania tokenu zabezpieczającego zalogowanego użytkownika w Windows za pośrednictwem zintegrowanego uwierzytelniania Windows. Zobacz: https://aka.ms/msal-net-iwa. Konto używane w tych przesłonięciach jest pobierane z systemu operacyjnego jako bieżąca główna nazwa użytkownika. |
| AcquireTokenByUsernamePassword(IEnumerable<String>, String, SecureString) |
Przestarzałe.
Nieinterakcyjne żądanie uzyskania tokenu zabezpieczającego z urzędu za pośrednictwem uwierzytelniania nazwy użytkownika/hasła. Zobacz https://aka.ms/msal-net-up , aby uzyskać szczegółowe informacje. |
| AcquireTokenByUsernamePassword(IEnumerable<String>, String, String) |
Przestarzałe.
Nieinterakcyjne żądanie uzyskania tokenu zabezpieczającego z urzędu za pośrednictwem uwierzytelniania nazwy użytkownika/hasła. Zobacz https://aka.ms/msal-net-up , aby uzyskać szczegółowe informacje. |
| AcquireTokenInteractive(IEnumerable<String>) |
Interakcyjne żądanie uzyskania tokenu dla określonych zakresów. Okno interakcyjne zostanie nadrzędne do określonego okna. Użytkownik będzie musiał wybrać konto. |
| AcquireTokenSilent(IEnumerable<String>, IAccount) |
[Interfejs API w wersji 3] Próbuje uzyskać token dostępu dla |
| AcquireTokenSilent(IEnumerable<String>, String) |
[Interfejs API w wersji 3] Próbuje uzyskać token dostępu dla IAccount elementu Username zgodnego z danym |
| AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>) |
Uzyskuje token zabezpieczający na urządzeniu bez przeglądarki internetowej, umożliwiając użytkownikowi uwierzytelnianie na innym urządzeniu. Odbywa się to w dwóch krokach:
|
| GetAccountAsync(String, CancellationToken) |
IAccount Pobierz element według jego identyfikatora między kontami dostępnymi w pamięci podręcznej tokenów. (Odziedziczone po ClientApplicationBase) |
| GetAccountAsync(String) |
IAccount Pobierz element według jego identyfikatora między kontami dostępnymi w pamięci podręcznej tokenów. (Odziedziczone po ClientApplicationBase) |
| GetAccountsAsync() |
Zwraca wszystkie dostępne konta w pamięci podręcznej tokenu użytkownika dla aplikacji. (Odziedziczone po ClientApplicationBase) |
| GetAccountsAsync(CancellationToken) |
Zwraca wszystkie dostępne konta w pamięci podręcznej tokenu użytkownika dla aplikacji. (Odziedziczone po ClientApplicationBase) |
| GetAccountsAsync(String, CancellationToken) |
IAccount Pobierz kolekcję według identyfikatora między kontami dostępnymi w pamięci podręcznej tokenów na podstawie przepływu użytkownika. Dotyczy to scenariuszy Azure AD B2C. (Odziedziczone po ClientApplicationBase) |
| GetAccountsAsync(String) |
IAccount Pobierz kolekcję według identyfikatora między kontami dostępnymi w pamięci podręcznej tokenów na podstawie przepływu użytkownika. Dotyczy to scenariuszy Azure AD B2C. (Odziedziczone po ClientApplicationBase) |
| IsBrokerAvailable() |
Zwraca wartość |
| IsEmbeddedWebViewAvailable() |
Zwraca wartość |
| IsProofOfPossessionSupportedByClient() |
Służy do określania, czy obecnie dostępny broker jest w stanie wykonać weryfikację posiadania. |
| IsUserInteractive() |
Zwraca wartość |
| RemoveAsync(IAccount, CancellationToken) |
Usuwa wszystkie tokeny w pamięci podręcznej dla określonego konta. (Odziedziczone po ClientApplicationBase) |
| RemoveAsync(IAccount) |
Usuwa wszystkie tokeny w pamięci podręcznej dla określonego konta. (Odziedziczone po ClientApplicationBase) |
Jawne implementacje interfejsu
| Nazwa | Opis |
|---|---|
| IByRefreshToken.AcquireTokenByRefreshToken(IEnumerable<String>, String) |
Uzyskuje token dostępu z istniejącego tokenu odświeżania i przechowuje go, a token odświeżania w pamięci podręcznej tokenu użytkownika, gdzie będzie dostępny do dalszych wywołań AcquireTokenSilent. Tej metody można użyć w migracji do biblioteki MSAL z biblioteki ADAL w wersji 2 oraz w różnych scenariuszach integracji, w których jest dostępny token RefreshToken. Zobacz: https://aka.ms/msal-net-migration-adal2-msal2. |
Metody rozszerzania
| Nazwa | Opis |
|---|---|
| IsEmbeddedWebViewAvailable(IPublicClientApplication) |
Zwraca wartość true, jeśli biblioteka MSAL może używać osadzonego widoku internetowego (przeglądarki). |
| IsProofOfPossessionSupportedByClient(IPublicClientApplication) |
Służy do określania, czy obecnie dostępny broker jest w stanie wykonać weryfikację posiadania. |
| IsSystemWebViewAvailable(IPublicClientApplication) |
Zwraca wartość true, jeśli biblioteka MSAL może używać przeglądarki systemowej. |
| IsUserInteractive(IPublicClientApplication) |
Zwraca wartość false, gdy program działa w bezgłowym systemie operacyjnym, na przykład gdy protokół SSH jest uruchamiany na maszynie z systemem Linux. Nie można używać przeglądarek (widoków internetowych) i brokerów, jeśli nie ma obsługi interfejsu użytkownika. Zamiast tego użyj polecenia AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>) lub AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>) |