PublicClientApplication Klass

Samma som <xref:ClientApplication.__init__>, förutom att client_credential parametern ska förbli None.

Note

Vad är en mäklare och varför använda den?

En asynkron meddelandekö är en komponent som är installerad på enheten.

Broker ger implicit din enhet en identitet. Med hjälp av en asynkron

din enhet blir en faktor som kan uppfylla MFA (multifaktorautentisering).

Den här faktorn skulle bli obligatorisk

om en klientorganisations administratör aktiverar en motsvarande princip för villkorsstyrd åtkomst (CA).

Mäklarens närvaro tillåter Microsofts identitetsplattform

för att få högre förtroende för att token utfärdas till din enhet,

och det är säkrare.

En ytterligare fördel med broker är,

den körs som en långvarig process med enhetens operativsystem,

och underhåller sin egen cache,

så att dina koordinatoraktiverade appar (även en CLI)

kan automatiskt använda enkel inloggning från en tidigare etablerad inloggad session.

Så här väljer du att använda broker?

Du kan ange valfri kombination av följande anmälningsparametrar till true:

Anmäl dig-flagga

Om appen körs på

Appen har registrerat detta som en omdirigerings-URI för skrivbordsplattform i Azure Portal

enable_broker_on_windows

Windows 10+

ms-appx-web://Microsoft. AAD. BrokerPlugin/your_client_id

enable_broker_on_wsl

WSL

ms-appx-web://Microsoft. AAD. BrokerPlugin/your_client_id

enable_broker_on_mac

Mac med Company Portal installerat

msauth.com.msauth.unsignedapp://auth

enable_broker_on_linux

Linux med Intune installerat

https://login.microsoftonline.com/common/oauth2/nativeclient (MÅSTE vara aktiverat)

Installera koordinatorberoende,

t.ex. pip install msal[broker]>=1.33,2<.

Testa med acquire_token_interactive() och acquire_token_silent().

Återställningsbeteenden för MSAL Python asynkrona support

MSAL felar antingen ut eller återställer tyst till icke-asynkrona flöden.

MSAL ignorerar enable_broker_... och kringgå asynkron meddelandekö

på de autentiseringsflöden som är kända för att INTE stödjas av asynkron meddelandekö.

Detta inkluderar ADFS, B2C osv.

Se nedan för andra scenarier med "kunde-använda-koordinator".

MSAL-fel uppstår när apputvecklaren valde att använda broker

men ett direkt beroendepaket med "medelnivå" är inte installerat.

Felmeddelandet vägleder apputvecklaren att deklarera rätt beroende

msal[broker].

Vi fel här ute eftersom felet kan åtgärdas för apputvecklare.

MSAL "inaktiverar" asynkron meddelandekö och återställning till icke-asynkron meddelandekö,

När du valde att delta kunde beroendet installerats men kunde inte initieras.

Vi förväntar oss att detta skulle inträffa på en enhet vars operativsystem är för gammalt

eller så är den underliggande koordinatorkomponenten på något sätt otillgänglig.

Det finns inte mycket en apputvecklare eller slutanvändaren kan göra här.

Slutligen ska policyn för villkorsstyrd åtkomst

tvinga användaren att växla till en annan enhet.

MSAL-fel ut när asynkron meddelandekö har valts in, installerats, initierats,

men efterföljande tokenbegäranden misslyckades.

Konstruktor

PublicClientApplication(client_id, client_credential=None, *, enable_broker_on_windows=None, enable_broker_on_mac=None, enable_broker_on_linux=None, enable_broker_on_wsl=None, **kwargs)

Parametrar

Name Description
enable_broker_on_windows
Obligatorisk
<xref:boolean>

Den här inställningen gäller bara om din app körs på Windows 10+. Den här parametern är som standard Ingen, vilket innebär att MSAL inte använder en asynkron meddelandekö.

Nytt i MSAL Python 1.25.0.

enable_broker_on_mac
Obligatorisk
<xref:boolean>

Den här inställningen gäller bara om din app körs på Mac. Den här parametern är som standard Ingen, vilket innebär att MSAL inte använder en asynkron meddelandekö.

Nytt i MSAL Python 1.31.0.

enable_broker_on_linux
Obligatorisk
<xref:boolean>

Den här inställningen gäller endast om din app körs på Linux, inklusive WSL. Den här parametern är som standard Ingen, vilket innebär att MSAL inte använder en asynkron meddelandekö.

Nytt i MSAL Python 1.33.0.

enable_broker_on_wsl
Obligatorisk
<xref:boolean>

Den här inställningen gäller bara om din app körs på WSL. Den här parametern är som standard Ingen, vilket innebär att MSAL inte använder en asynkron meddelandekö.

Nytt i MSAL Python 1.33.0.

client_id
Obligatorisk
client_credential
Standardvärde: None

Keyword-Only parametrar

Name Description
enable_broker_on_windows
Standardvärde: None
enable_broker_on_mac
Standardvärde: None
enable_broker_on_linux
Standardvärde: None
enable_broker_on_wsl
Standardvärde: None

Metoder

acquire_token_by_device_flow

Hämta token av ett enhetsflödesobjekt med anpassningsbar avsökningseffekt.

acquire_token_interactive

Hämta token interaktivt, dvs. via en lokal webbläsare.

Krav: I Azure Portal konfigurerar du omdirigerings-URI:n för ditt "mobil- och skrivbordsprogram" som http://localhost. Om du väljer att använda broker under PublicClientApplication skapandet behöver din app även den här omdirigerings-URI:n: ms-appx-web://Microsoft.AAD.BrokerPlugin/YOUR_CLIENT_ID

initiate_device_flow

Initiera en Device Flow-instans som ska användas i acquire_token_by_device_flow.

acquire_token_by_device_flow

Hämta token av ett enhetsflödesobjekt med anpassningsbar avsökningseffekt.

acquire_token_by_device_flow(flow, claims_challenge=None, **kwargs)

Parametrar

Name Description
flow
Obligatorisk

En diktering som tidigare genererades av initiate_device_flow. Som standard blockerar den här metodens avsökningseffekt den aktuella tråden. Du kan avbryta avsökningsloopen när som helst genom att ändra värdet för flödets nyckel "expires_at" till 0.

claims_challenge

Den claims_challenge parametern begär specifika anspråk som begärs av resursprovidern i form av ett claims_challenge-direktiv i rubriken www-authenticate som ska returneras från UserInfo-slutpunkten och/eller i ID-token och/eller åtkomsttoken. Det är en sträng av ett JSON-objekt som innehåller listor över anspråk som begärs från dessa platser.

Standardvärde: None

Returer

Typ Description

En diktering som representerar json-svaret från Microsoft Entra:

  • Ett lyckat svar skulle innehålla nyckeln "access_token",

  • ett felsvar skulle innehålla "fel" och vanligtvis "error_description".

acquire_token_interactive

Hämta token interaktivt, dvs. via en lokal webbläsare.

Krav: I Azure Portal konfigurerar du omdirigerings-URI:n för ditt "mobil- och skrivbordsprogram" som http://localhost. Om du väljer att använda broker under PublicClientApplication skapandet behöver din app även den här omdirigerings-URI:n: ms-appx-web://Microsoft.AAD.BrokerPlugin/YOUR_CLIENT_ID

acquire_token_interactive(scopes, prompt=None, login_hint=None, domain_hint=None, claims_challenge=None, timeout=None, port=None, extra_scopes_to_consent=None, max_age=None, parent_window_handle=None, on_before_launching_ui=None, auth_scheme=None, **kwargs)

Parametrar

Name Description
scopes
Obligatorisk

Det är en lista över skiftlägeskänsliga strängar.

prompt
str

Som standard skickas inget promptvärde, inte ens strängen "none". Du måste uttryckligen ange ett värde. Dess giltiga värden är konstanterna som definieras i <xref:msal.Prompt>.

Standardvärde: None
login_hint
str

Optional. Identifierare för användaren. Vanligtvis ett UPN (User Principal Name).

Standardvärde: None
domain_hint

Kan vara en av "konsumenter" eller "organisationer" eller din klientdomän "contoso.com". Om den ingår hoppar den över den e-postbaserade identifieringsprocessen som användaren går igenom på inloggningssidan, vilket leder till en något mer effektiviserad användarupplevelse. Mer information om möjliga värden som är tillgängliga i Auth Code Flow-dokumentet och domain_hint dokumentet.

Standardvärde: None
claims_challenge

Den claims_challenge parametern begär specifika anspråk som begärs av resursprovidern i form av ett claims_challenge-direktiv i rubriken www-authenticate som ska returneras från UserInfo-slutpunkten och/eller i ID-token och/eller åtkomsttoken. Det är en sträng av ett JSON-objekt som innehåller listor över anspråk som begärs från dessa platser.

Standardvärde: None
timeout
int

Den här metoden blockerar den aktuella tråden. Den här parametern anger tidsgränsvärdet i sekunder. Standardvärdet None innebär att vänta på obestämd tid.

Standardvärde: None
port
int

Porten som ska användas för att lyssna på ett inkommande autentiseringssvar. Som standard använder vi en systemallokerad port. (Resten av redirect_uri är hårdkodad som http://localhost.)

Standardvärde: None
extra_scopes_to_consent

"Extra omfång för medgivande" är ett begrepp som endast är tillgängligt i Microsoft Entra. Den refererar till andra resurser som du kanske vill uppmana till medgivande för, i samma interaktion, men som du inte får tillbaka en token för i den här åtgärden.

Standardvärde: None
max_age
int

VALFRI. Maximal autentiseringsålder. Anger den tillåtna förflutna tiden i sekunder sedan den senaste gången End-User autentiserades aktivt. Om den förflutna tiden är större än det här värdet kommer Microsofts identitetsplattform aktivt att autentisera slutanvändaren igen.

MSAL-Python verifierar också automatiskt auth_time i ID-token.

Ny i version 1.15.

Standardvärde: None
parent_window_handle
int

VALFRI.

  • Om din app inte väljer att använda broker behöver du inte ange något parent_window_handle här.

  • Om din app väljer att använda broker parent_window_handle krävs.

    • Om din app är en GUI-app som körs på Windows- eller Mac-system måste du också ange dess fönsterhandtag så att inloggningsfönstret visas ovanpå fönstret.

    • Om din app är en konsolapp som körs på Windows- eller Mac-system kan du använda en platshållare PublicClientApplication.CONSOLE_WINDOW_HANDLE.

De flesta Python skript är konsolappar.

Ny i version 1.20.0.

Standardvärde: None
on_before_launching_ui
<xref:function>

Ett återanrop med formen lambda ui="xyz", **kwargs: print("A {} will be launched".format(ui)), där ui kommer att vara antingen "browser" eller "broker". Du kan använda den för att informera slutanvändaren om att förvänta sig ett popup-fönster.

Ny i version 1.20.0.

Standardvärde: None
auth_scheme

Du kan ange ett msal.auth_scheme.PopAuthScheme objekt så att MSAL får en POP-token (Proof-of-Possession) åt dig.

Ny i version 1.26.0.

Standardvärde: None

Returer

Typ Description
  • En diktering som inte innehåller någon "felnyckel" och innehåller vanligtvis en "access_token"-nyckel.

  • En diktering som innehåller en "felnyckel" när tokenuppdateringen misslyckades.

initiate_device_flow

Initiera en Device Flow-instans som ska användas i acquire_token_by_device_flow.

initiate_device_flow(scopes=None, *, claims_challenge=None, **kwargs)

Parametrar

Name Description
scopes

Omfång som begärs för åtkomst till ett skyddat API (en resurs).

Standardvärde: None

Keyword-Only parametrar

Name Description
claims_challenge
Standardvärde: None

Returer

Typ Description

En diktamen som representerar ett nyligen skapat enhetsflödesobjekt.

  • Ett lyckat svar skulle bland annat innehålla nyckeln "user_code"

  • ett felsvar skulle innehålla några andra läsbara nyckel/värde-par.

Attribut

CONSOLE_WINDOW_HANDLE

CONSOLE_WINDOW_HANDLE = <object object>

DEVICE_FLOW_CORRELATION_ID

DEVICE_FLOW_CORRELATION_ID = '_correlation_id'