PublicClientApplication class

Diese Klasse wird verwendet, um Token für öffentliche Clientanwendungen (Desktop, Mobil) zu erwerben. Öffentliche Clientanwendungen sind nicht vertrauenswürdig, um geheime Anwendungsschlüssel sicher zu speichern, und daher können nur Token im Namen eines Benutzers angefordert werden.

Extends

Konstruktoren

PublicClientApplication(Configuration)

Wichtige Attribute im Configuration-Objekt für die Authentifizierung sind:

  • clientID: die Anwendungs-ID Ihrer Anwendung. Sie können eine erhalten, indem Sie Ihre Bewerbung bei unserem Anwendungsregistrierungsportal registrieren.
  • authority: die Autoritäts-URL für Ihre Anwendung.

AAD-Behörden sind der Form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}.

  • Wenn Ihre Anwendung Konten in einem Organisationsverzeichnis unterstützt, ersetzen Sie den Wert "Enter_the_Tenant_Info_Here" durch die Mandanten-ID oder den Mandantennamen (z. B. contoso.microsoft.com).
  • Wenn Ihre Anwendung Konten in einem beliebigen Organisationsverzeichnis unterstützt, ersetzen Sie den Wert "Enter_the_Tenant_Info_Here" durch Organisationen.
  • Wenn Ihre Anwendung Konten in einem Organisationsverzeichnis und persönlichen Microsoft Konten unterstützt, ersetzen Sie den Wert "Enter_the_Tenant_Info_Here" durch den gemeinsamen Wert.
  • Um die Unterstützung nur auf persönliche Microsoft-Konten einzuschränken, ersetzen Sie den Wert "Enter_the_Tenant_Info_Here" durch Verbraucher.

Azure B2C-Behörden sind der Form https://{instance}/{tenant}/{policy}. Jede Richtlinie gilt als eigene Autorität. Sie müssen alle bekanntenAuthoritäten zum Zeitpunkt der Clientanwendungserstellung festlegen.

ADFS-Rechtsgrundlagen sind das Formular https://{instance}/adfs.

Methoden

acquireTokenByDeviceCode(DeviceCodeRequest)

Erwirbt ein Token von der Autorität mithilfe des OAuth2.0-Gerätecodeflusses. Dieser Fluss wurde für Geräte entwickelt, die keinen Zugriff auf einen Browser haben oder Eingabeeinschränkungen haben. Der Autorisierungsserver gibt ein DeviceCode-Objekt mit einem Überprüfungscode, einem Endbenutzercode und dem Endbenutzerüberprüfungs-URI aus. Das DeviceCode-Objekt wird über einen Rückruf bereitgestellt, und der Endbenutzer sollte angewiesen werden, ein anderes Gerät zum Navigieren zum Überprüfungs-URI für eingabeanmeldeinformationen zu verwenden. Da der Client eingehende Anforderungen nicht empfangen kann, fragt er den Autorisierungsserver wiederholt ab, bis der Endbenutzer die Eingabe der Anmeldeinformationen abgeschlossen hat.

acquireTokenInteractive(InteractiveRequest)

Erwirbt ein Token interaktiv über den Browser, indem ein Autorisierungscode angefordert und dann für ein Token ausgetauscht wird.

acquireTokenSilent(SilentFlowRequest)

Gibt ein Token zurück, das entweder aus dem Cache abgerufen wurde, oder indem das Aktualisierungstoken für ein neues Zugriffstoken ausgetauscht wird. Wenn die Brokererstellung aktiviert ist, wird die Tokenanforderung vom Broker gewartet.

getAllAccounts()

Gibt alle zwischengespeicherten Konten für diese Anwendung zurück. Wenn die Brokererstellung aktiviert ist, wird diese Anforderung vom Broker gewartet.

signOut(SignOutRequest)

Entfernt Cacheartefakte, die dem angegebenen Konto zugeordnet sind.

Geerbte Methoden

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

Erwirbt ein Token durch Austauschen des Autorisierungscodes, der aus dem ersten Schritt des OAuth2.0-Autorisierungscodeflusses empfangen wurde.

getAuthCodeUrl(AuthorizationCodeUrlRequest) kann verwendet werden, um die URL für den ersten Schritt des OAuth2.0-Autorisierungscodeflusses zu erstellen. Stellen Sie sicher, dass Werte für redirectUri und Bereiche in AuthorizationCodeUrlRequest und AuthorizationCodeRequest identisch sind.

acquireTokenByRefreshToken(RefreshTokenRequest)

Erwirbt ein Token, indem das für einen neuen Tokensatz bereitgestellte Aktualisierungstoken ausgetauscht wird.

Diese API wird nur für Szenarien bereitgestellt, in denen Sie von ADAL zu MSAL migrieren möchten. Andernfalls wird empfohlen, dass Sie für automatische Szenarien verwenden acquireTokenSilent() . Bei Verwendung acquireTokenSilent()behandelt MSAL automatisch das Zwischenspeichern und Aktualisieren von Token.

acquireTokenByUsernamePassword(UsernamePasswordRequest)

Erwirbt Token mit Kennworterteilung durch Austauschen des Benutzernamens und Kennworts von Clientanwendungen für Anmeldeinformationen

Die neueste bewährte Methode für OAuth 2.0-Sicherheit verbietet die Kennworterteilung vollständig. Weitere Details zu dieser Empfehlung finden Sie in https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 Microsoft Dokumentation und Empfehlungen:https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

clearCache()

Löschen des Cache

getAuthCodeUrl(AuthorizationUrlRequest)

Erstellt die URL der Autorisierungsanforderung, sodass der Benutzer Anmeldeinformationen eingeben und der Anwendung zustimmen kann. Die URL zielt auf den /authorize-Endpunkt der Autorität ab, die im Anwendungsobjekt konfiguriert ist.

Sobald der Benutzer seine Anmeldeinformationen und Zustimmungen eingibt, sendet die Autorität eine Antwort auf den in der Anforderung gesendeten Umleitungs-URI und sollte einen Autorisierungscode enthalten, der dann zum Abrufen von Token über acquireTokenByCode(AuthorizationCodeRequest)verwendet werden kann.

getLogger()

Gibt die Loggerinstanz zurück.

getTokenCache()

Ruft den Tokencache für die Anwendung ab.

setLogger(Logger)

Ersetzt den Standardprotokollierer in Konfigurationen durch neuen Logger durch neue Konfigurationen.

Details zum Konstruktor

PublicClientApplication(Configuration)

Wichtige Attribute im Configuration-Objekt für die Authentifizierung sind:

  • clientID: die Anwendungs-ID Ihrer Anwendung. Sie können eine erhalten, indem Sie Ihre Bewerbung bei unserem Anwendungsregistrierungsportal registrieren.
  • authority: die Autoritäts-URL für Ihre Anwendung.

AAD-Behörden sind der Form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}.

  • Wenn Ihre Anwendung Konten in einem Organisationsverzeichnis unterstützt, ersetzen Sie den Wert "Enter_the_Tenant_Info_Here" durch die Mandanten-ID oder den Mandantennamen (z. B. contoso.microsoft.com).
  • Wenn Ihre Anwendung Konten in einem beliebigen Organisationsverzeichnis unterstützt, ersetzen Sie den Wert "Enter_the_Tenant_Info_Here" durch Organisationen.
  • Wenn Ihre Anwendung Konten in einem Organisationsverzeichnis und persönlichen Microsoft Konten unterstützt, ersetzen Sie den Wert "Enter_the_Tenant_Info_Here" durch den gemeinsamen Wert.
  • Um die Unterstützung nur auf persönliche Microsoft-Konten einzuschränken, ersetzen Sie den Wert "Enter_the_Tenant_Info_Here" durch Verbraucher.

Azure B2C-Behörden sind der Form https://{instance}/{tenant}/{policy}. Jede Richtlinie gilt als eigene Autorität. Sie müssen alle bekanntenAuthoritäten zum Zeitpunkt der Clientanwendungserstellung festlegen.

ADFS-Rechtsgrundlagen sind das Formular https://{instance}/adfs.

new PublicClientApplication(configuration: Configuration)

Parameter

configuration
Configuration

Details zur Methode

acquireTokenByDeviceCode(DeviceCodeRequest)

Erwirbt ein Token von der Autorität mithilfe des OAuth2.0-Gerätecodeflusses. Dieser Fluss wurde für Geräte entwickelt, die keinen Zugriff auf einen Browser haben oder Eingabeeinschränkungen haben. Der Autorisierungsserver gibt ein DeviceCode-Objekt mit einem Überprüfungscode, einem Endbenutzercode und dem Endbenutzerüberprüfungs-URI aus. Das DeviceCode-Objekt wird über einen Rückruf bereitgestellt, und der Endbenutzer sollte angewiesen werden, ein anderes Gerät zum Navigieren zum Überprüfungs-URI für eingabeanmeldeinformationen zu verwenden. Da der Client eingehende Anforderungen nicht empfangen kann, fragt er den Autorisierungsserver wiederholt ab, bis der Endbenutzer die Eingabe der Anmeldeinformationen abgeschlossen hat.

function acquireTokenByDeviceCode(request: DeviceCodeRequest): Promise<null | AuthenticationResult>

Parameter

Gibt zurück

Promise<null | AuthenticationResult>

acquireTokenInteractive(InteractiveRequest)

Erwirbt ein Token interaktiv über den Browser, indem ein Autorisierungscode angefordert und dann für ein Token ausgetauscht wird.

function acquireTokenInteractive(request: InteractiveRequest): Promise<AuthenticationResult>

Parameter

Gibt zurück

acquireTokenSilent(SilentFlowRequest)

Gibt ein Token zurück, das entweder aus dem Cache abgerufen wurde, oder indem das Aktualisierungstoken für ein neues Zugriffstoken ausgetauscht wird. Wenn die Brokererstellung aktiviert ist, wird die Tokenanforderung vom Broker gewartet.

function acquireTokenSilent(request: SilentFlowRequest): Promise<AuthenticationResult>

Parameter

request
SilentFlowRequest

Entwickler hat SilentFlowRequest bereitgestellt

Gibt zurück

getAllAccounts()

Gibt alle zwischengespeicherten Konten für diese Anwendung zurück. Wenn die Brokererstellung aktiviert ist, wird diese Anforderung vom Broker gewartet.

function getAllAccounts(): Promise<AccountInfo[]>

Gibt zurück

Promise<AccountInfo[]>

signOut(SignOutRequest)

Entfernt Cacheartefakte, die dem angegebenen Konto zugeordnet sind.

function signOut(request: SignOutRequest): Promise<void>

Parameter

request
SignOutRequest

Entwickler bereitgestellt SignOutRequest

Gibt zurück

Promise<void>

Details zur geerbten Methode

acquireTokenByCode(AuthorizationCodeRequest, AuthorizationCodePayload)

Erwirbt ein Token durch Austauschen des Autorisierungscodes, der aus dem ersten Schritt des OAuth2.0-Autorisierungscodeflusses empfangen wurde.

getAuthCodeUrl(AuthorizationCodeUrlRequest) kann verwendet werden, um die URL für den ersten Schritt des OAuth2.0-Autorisierungscodeflusses zu erstellen. Stellen Sie sicher, dass Werte für redirectUri und Bereiche in AuthorizationCodeUrlRequest und AuthorizationCodeRequest identisch sind.

function acquireTokenByCode(request: AuthorizationCodeRequest, authCodePayLoad?: AuthorizationCodePayload): Promise<AuthenticationResult>

Parameter

authCodePayLoad
AuthorizationCodePayload

Gibt zurück

Geerbt vonClientApplication.acquireTokenByCode

acquireTokenByRefreshToken(RefreshTokenRequest)

Erwirbt ein Token, indem das für einen neuen Tokensatz bereitgestellte Aktualisierungstoken ausgetauscht wird.

Diese API wird nur für Szenarien bereitgestellt, in denen Sie von ADAL zu MSAL migrieren möchten. Andernfalls wird empfohlen, dass Sie für automatische Szenarien verwenden acquireTokenSilent() . Bei Verwendung acquireTokenSilent()behandelt MSAL automatisch das Zwischenspeichern und Aktualisieren von Token.

function acquireTokenByRefreshToken(request: RefreshTokenRequest): Promise<null | AuthenticationResult>

Parameter

Gibt zurück

Promise<null | AuthenticationResult>

Geerbt vonClientApplication.acquireTokenByRefreshToken

acquireTokenByUsernamePassword(UsernamePasswordRequest)

Warnung

Diese API ist nun veraltet.

  • Use a more secure flow instead

Erwirbt Token mit Kennworterteilung durch Austauschen des Benutzernamens und Kennworts von Clientanwendungen für Anmeldeinformationen

Die neueste bewährte Methode für OAuth 2.0-Sicherheit verbietet die Kennworterteilung vollständig. Weitere Details zu dieser Empfehlung finden Sie in https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-3.4 Microsoft Dokumentation und Empfehlungen:https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-authentication-flows#usernamepassword

function acquireTokenByUsernamePassword(request: UsernamePasswordRequest): Promise<null | AuthenticationResult>

Parameter

request
UsernamePasswordRequest

UsenamePasswordRequest

Gibt zurück

Promise<null | AuthenticationResult>

Geerbt vonClientApplication.acquireTokenByUsernamePassword

clearCache()

Löschen des Cache

function clearCache()

Geerbt vonClientApplication.clearCache

getAuthCodeUrl(AuthorizationUrlRequest)

Erstellt die URL der Autorisierungsanforderung, sodass der Benutzer Anmeldeinformationen eingeben und der Anwendung zustimmen kann. Die URL zielt auf den /authorize-Endpunkt der Autorität ab, die im Anwendungsobjekt konfiguriert ist.

Sobald der Benutzer seine Anmeldeinformationen und Zustimmungen eingibt, sendet die Autorität eine Antwort auf den in der Anforderung gesendeten Umleitungs-URI und sollte einen Autorisierungscode enthalten, der dann zum Abrufen von Token über acquireTokenByCode(AuthorizationCodeRequest)verwendet werden kann.

function getAuthCodeUrl(request: AuthorizationUrlRequest): Promise<string>

Parameter

Gibt zurück

Promise<string>

Geerbt vonClientApplication.getAuthCodeUrl

getLogger()

Gibt die Loggerinstanz zurück.

function getLogger(): Logger

Gibt zurück

Geerbt vonClientApplication.getLogger

getTokenCache()

Ruft den Tokencache für die Anwendung ab.

function getTokenCache(): TokenCache

Gibt zurück

Geerbt vonClientApplication.getTokenCache

setLogger(Logger)

Ersetzt den Standardprotokollierer in Konfigurationen durch neuen Logger durch neue Konfigurationen.

function setLogger(logger: Logger)

Parameter

logger
Logger

Loggerinstanz

Geerbt vonClientApplication.setLogger