Taal

PublicClientApplication Klas

Definitie

Abstracte klasse met algemene API-methoden en -eigenschappen. Zie voor meer informatie 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
Overname
PublicClientApplication
Implementeringen

Voorbeelden

Hier volgt een voorbeeld van het gebruik PublicClientApplication met een verificatiebroker en caching.

{
    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 =>

Opmerkingen

In tegenstelling tot ConfidentialClientApplication, openbare clients kunnen geen configuratietijdgeheimen bevatten en daardoor geen clientgeheim hebben.

De omleidings-URI die nodig is voor interactieve verificatie wordt automatisch bepaald door de bibliotheek. Het hoeft niet expliciet in de constructor te worden doorgegeven. Afhankelijk van de verificatiestrategie (bijvoorbeeld via webverificatiebeheer, verificatie-app, browser, enzovoort), worden verschillende omleidings-URI's gebruikt door MSAL. Omleidings-URI's moeten altijd worden geconfigureerd op de blade Azure Active Directory in de Azure Portal.

Eigenschappen

Name Description
AppConfig

Details over de configuratie van de ClientApplication voor foutopsporingsdoeleinden.

(Overgenomen van ClientApplicationBase)
Authority

Hiermee haalt u de URL van de instantie of de beveiligingstokenservice (STS) op van waaruit MSAL.NET beveiligingstokens krijgt. De retourwaarde van deze eigenschap is de waarde die door de ontwikkelaar wordt verstrekt in de constructor van de toepassing, of anderszins de waarde van het Microsoft.Identity.Client.ApplicationBase.DefaultAuthority statische lid (dat wil https://login.microsoftonline.com/common/gezegd)

(Overgenomen van ClientApplicationBase)
IsSystemWebViewAvailable

Retourneert waar als MSAL een systeembrowser kan gebruiken.

OperatingSystemAccount

Een speciale accountwaarde die aangeeft dat het huidige besturingssysteemaccount moet worden gebruikt om de gebruiker aan te melden. Niet alle besturingssystemen en verificatiestromen ondersteunen dit concept, in welk geval oproepen AcquireTokenSilent(IEnumerable<String>, IAccount) een MsalUiRequiredException.

UserTokenCache

Cache van gebruikerstoken. Het bevat toegangstokens, id-tokens en vernieuwingstokens voor accounts. Deze wordt indien nodig op de achtergrond gebruikt en bijgewerkt wanneer u belt AcquireTokenSilent(IEnumerable<String>, IAccount) of een van de onderdrukkingen van AcquireTokenSilent(IEnumerable<String>, IAccount). Het wordt bijgewerkt door elke AcquireTokenXXX-methode, met uitzondering waarvan AcquireTokenForClient alleen de toepassingscache wordt gebruikt (zie IConfidentialClientApplication).

(Overgenomen van ClientApplicationBase)

Methoden

Name Description
AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>)

Niet-interactieve aanvraag voor het verkrijgen van een beveiligingstoken voor de aangemelde gebruiker in Windows, via Geïntegreerde Windows-verificatie. Zie https://aka.ms/msal-net-iwa. Het account dat in deze onderdrukkingen wordt gebruikt, wordt opgehaald uit het besturingssysteem als de huidige principal-naam van de gebruiker.

AcquireTokenByUsernamePassword(IEnumerable<String>, String, SecureString)
Verouderd.

Niet-interactieve aanvraag voor het verkrijgen van een beveiligingstoken van de instantie, via verificatie via gebruikersnaam/wachtwoord. Zie https://aka.ms/msal-net-up voor meer informatie.

AcquireTokenByUsernamePassword(IEnumerable<String>, String, String)
Verouderd.

Niet-interactieve aanvraag voor het verkrijgen van een beveiligingstoken van de instantie, via verificatie via gebruikersnaam/wachtwoord. Zie https://aka.ms/msal-net-up voor meer informatie.

AcquireTokenInteractive(IEnumerable<String>)

Interactieve aanvraag voor het verkrijgen van een token voor de opgegeven bereiken. Het interactieve venster wordt boven het opgegeven venster weergegeven. De gebruiker moet een account selecteren.

AcquireTokenSilent(IEnumerable<String>, IAccount)

[V3 API] Hiermee probeert u een toegangstoken voor het account tokencache van de gebruiker te verkrijgen. Zie https://aka.ms/msal-net-acquiretokensilent voor meer informatie

(Overgenomen van ClientApplicationBase)
AcquireTokenSilent(IEnumerable<String>, String)

[V3 API] Probeert een toegangstoken te verkrijgen voor het IAccount feit dat het overeenkomt met de Username opgegeven loginHint, uit de cache van het gebruikerstoken. Zie https://aka.ms/msal-net-acquiretokensilent voor meer informatie

(Overgenomen van ClientApplicationBase)
AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>)

Hiermee verkrijgt u een beveiligingstoken op een apparaat zonder webbrowser, door de gebruiker te laten verifiëren op een ander apparaat. Dit gebeurt in twee stappen:

  • De methode verkrijgt eerst een apparaatcode van de instantie en retourneert deze via de deviceCodeResultCallbackaanroeper. Deze callback zorgt ervoor dat de gebruiker communiceert om te verifiëren (naar een specifieke URL, met een code)
  • De methode gaat vervolgens verder met het peilen van het beveiligingstoken dat wordt verleend na geslaagde aanmelding door de gebruiker op basis van de informatie over de apparaatcode
Zie https://aka.ms/msal-device-code-flow.
GetAccountAsync(String, CancellationToken)

Haal de IAccount id op van de accounts die beschikbaar zijn in de tokencache.

(Overgenomen van ClientApplicationBase)
GetAccountAsync(String)

Haal de IAccount id op van de accounts die beschikbaar zijn in de tokencache.

(Overgenomen van ClientApplicationBase)
GetAccountsAsync()

Retourneert alle beschikbare accounts in de cache van het gebruikerstoken voor de toepassing.

(Overgenomen van ClientApplicationBase)
GetAccountsAsync(CancellationToken)

Retourneert alle beschikbare accounts in de cache van het gebruikerstoken voor de toepassing.

(Overgenomen van ClientApplicationBase)
GetAccountsAsync(String, CancellationToken)

Haal de IAccount verzameling op basis van de id op van de accounts die beschikbaar zijn in de tokencache, op basis van de gebruikersstroom. Dit is voor Azure AD B2C-scenario's.

(Overgenomen van ClientApplicationBase)
GetAccountsAsync(String)

Haal de IAccount verzameling op basis van de id op van de accounts die beschikbaar zijn in de tokencache, op basis van de gebruikersstroom. Dit is voor Azure AD B2C-scenario's.

(Overgenomen van ClientApplicationBase)
IsBrokerAvailable()

Retourneert true als een verificatiebroker kan worden gebruikt. Deze methode is alleen nodig voor mobiele scenario's die ondersteuning bieden voor Mobile Application Management (MAM). In andere gevallen gebruikt WithBrokeru, wat terugvalt op het gebruik van een browser als een verificatiebroker niet beschikbaar is.

IsEmbeddedWebViewAvailable()

Retourneert true of MSAL een ingesloten webweergave (webbrowser) kan gebruiken.

IsProofOfPossessionSupportedByClient()

Wordt gebruikt om te bepalen of de momenteel beschikbare broker proof-of-possession kan uitvoeren.

IsUserInteractive()

Retourneert false wanneer de toepassing wordt uitgevoerd in de headless-modus (bijvoorbeeld wanneer SSH-d naar een Linux-computer wordt uitgevoerd). Browsers (webweergaven) en brokers kunnen niet worden gebruikt als er geen ui-ondersteuning is. Gebruik AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>)voor deze scenario's .

RemoveAsync(IAccount, CancellationToken)

Hiermee verwijdert u alle tokens in de cache voor het opgegeven account.

(Overgenomen van ClientApplicationBase)
RemoveAsync(IAccount)

Hiermee verwijdert u alle tokens in de cache voor het opgegeven account.

(Overgenomen van ClientApplicationBase)

Expliciete interface-implementaties

Name Description
IByRefreshToken.AcquireTokenByRefreshToken(IEnumerable<String>, String)

Hiermee verkrijgt u een toegangstoken van een bestaand vernieuwingstoken en slaat u het op, en het vernieuwingstoken, in de cache van het gebruikerstoken, waar het beschikbaar is voor verdere AcquireTokenSilent-aanroepen. Deze methode kan worden gebruikt bij migratie naar MSAL vanuit ADAL v2 en in verschillende integratiescenario's waarin u een RefreshToken beschikbaar hebt. Zie https://aka.ms/msal-net-migration-adal2-msal2.

Extensiemethoden

Name Description
IsEmbeddedWebViewAvailable(IPublicClientApplication)

Retourneert waar als MSAL een ingesloten webweergave (browser) kan gebruiken.

IsProofOfPossessionSupportedByClient(IPublicClientApplication)

Wordt gebruikt om te bepalen of de momenteel beschikbare broker proof-of-possession kan uitvoeren.

IsSystemWebViewAvailable(IPublicClientApplication)

Retourneert waar als MSAL een systeembrowser kan gebruiken.

IsUserInteractive(IPublicClientApplication)

Retourneert onwaar wanneer het programma wordt uitgevoerd in het hoofdloze besturingssysteem, bijvoorbeeld wanneer SSH is uitgevoerd op een Linux-computer. Browsers (webweergaven) en brokers kunnen niet worden gebruikt als er geen ui-ondersteuning is. Gebruik in plaats daarvan AcquireTokenWithDeviceCode(IEnumerable<String>, Func<DeviceCodeResult,Task>) of AcquireTokenByIntegratedWindowsAuth(IEnumerable<String>)

Van toepassing op