PublicClientApplication Třída

Stejný jako <xref:ClientApplication.__init__>parametr s výjimkou tohoto client_credential parametru zůstane None.

Note

Co je zprostředkovatel a proč ho používat?

Zprostředkovatel je komponenta nainstalovaná na vašem zařízení.

Zprostředkovatel implicitně dává vašemu zařízení identitu. Pomocí zprostředkovatele,

vaše zařízení se stane faktorem, který může splňovat vícefaktorové ověřování (Multi-Factor Authentication).

Tento faktor by se stal povinným

Pokud správce tenanta povolí odpovídající zásady podmíněného přístupu (CA).

Přítomnost zprostředkovatele umožňuje Microsoft identity platform

s vyšší jistotou, že se tokeny vydávají na vaše zařízení,

a to je bezpečnější.

Další výhodou brokera je,

běží jako dlouhodobý proces s operačním systémem vašeho zařízení,

a udržuje vlastní mezipaměť,

aby vaše aplikace s podporou zprostředkovatele (dokonce i rozhraní příkazového řádku)

může automaticky přidružovat jednotné přihlašování z dříve vytvořené přihlášené relace.

Jak se přihlásit k používání zprostředkovatele?

Můžete nastavit libovolnou kombinaci následujících parametrů výslovného souhlasu na hodnotu true:

Příznak výslovného souhlasu

Pokud se aplikace spustí na

Aplikace tuto funkci zaregistrovala jako identifikátor URI přesměrování desktopové platformy v 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 s nainstalovaným Portál společnosti

msauth.com.msauth.unsignedapp://auth

enable_broker_on_linux

Linux s nainstalovaným Intune

https://login.microsoftonline.com/common/oauth2/nativeclient (Musí být povolená)

Instalace závislosti zprostředkovatele

Např. pip install msal[broker]>=1.33,2<.

Testujte pomocí acquire_token_interactive() a acquire_token_silent().

Záložní chování podpory zprostředkovatele MSAL Python

MsAL buď dojde k chybě, nebo se bezobslužně vrátí do toků bez zprostředkovatele.

MSAL bude ignorovat enable_broker_... a obejití zprostředkovatele

u těchto toků ověřování, o kterých je známo, že zprostředkovatel nepodporuje.

To zahrnuje ADFS, B2C atd.

Další scénáře "could-use-broker" najdete níže.

Chyby MSAL, když se vývojář aplikací přihlásil k používání zprostředkovatele

ale není nainstalován balíček "střední vrstvy" přímé závislosti.

Chybová zpráva vás provede vývojářem aplikací deklarovat správnou závislost.

msal[broker].

Došlo k chybě, protože tato chyba je pro vývojáře aplikací užitečná.

MSAL bezobslužně "deaktivuje" zprostředkovatele a náhradní k nezprostředkovateli,

při přihlášení k odběru se nepodařilo inicializovat závislost nainstalovanou.

Předpokládáme, že k tomu dojde na zařízení, jehož operační systém je příliš starý.

nebo podkladová komponenta zprostředkovatele je nějak nedostupná.

Vývojář aplikací není moc nebo ho může udělat koncový uživatel.

Nakonec zásady podmíněného přístupu

vynutit, aby uživatel přepnul na jiné zařízení.

Chyby MSAL, pokud je zprostředkovatel přihlášen, nainstalován, inicializován,

ale následné žádosti o tokeny se nezdařily.

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)

Parametry

Name Description
enable_broker_on_windows
Vyžadováno
<xref:boolean>

Toto nastavení platí jenom v případě, že vaše aplikace běží na Windows 10+. Tento parametr má výchozí hodnotu None, což znamená, že msAL nevyužívá zprostředkovatele.

Novinka v MSAL Python 1.25.0.

enable_broker_on_mac
Vyžadováno
<xref:boolean>

Toto nastavení platí jenom v případě, že vaše aplikace běží na Macu. Tento parametr má výchozí hodnotu None, což znamená, že msAL nevyužívá zprostředkovatele.

Novinka v MSAL Python 1.31.0.

enable_broker_on_linux
Vyžadováno
<xref:boolean>

Toto nastavení platí jenom v případě, že vaše aplikace běží v Linuxu, včetně WSL. Tento parametr má výchozí hodnotu None, což znamená, že msAL nevyužívá zprostředkovatele.

Novinka v MSAL Python 1.33.0.

enable_broker_on_wsl
Vyžadováno
<xref:boolean>

Toto nastavení platí jenom v případě, že vaše aplikace běží na WSL. Tento parametr má výchozí hodnotu None, což znamená, že msAL nevyužívá zprostředkovatele.

Novinka v MSAL Python 1.33.0.

client_id
Vyžadováno
client_credential
Default value: None

Výhradně parametry klíčových slov

Name Description
enable_broker_on_windows
Default value: None
enable_broker_on_mac
Default value: None
enable_broker_on_linux
Default value: None
enable_broker_on_wsl
Default value: None

Metody

acquire_token_by_device_flow

Získání tokenu objektem toku zařízení s přizpůsobitelným efektem dotazování

acquire_token_interactive

Interaktivní získání tokenu, tj. prostřednictvím místního prohlížeče.

Předpoklad: V Azure Portal nakonfigurujte identifikátor URI přesměrování vaší mobilní a desktopové aplikace jako http://localhost. Pokud se při vytváření přihlásíte k použití zprostředkovatele PublicClientApplication , vaše aplikace také potřebuje tento identifikátor URI přesměrování: ms-appx-web://Microsoft.AAD.BrokerPlugin/YOUR_CLIENT_ID

initiate_device_flow

Zahajte instanci toku zařízení, ve které se použije acquire_token_by_device_flow.

acquire_token_by_device_flow

Získání tokenu objektem toku zařízení s přizpůsobitelným efektem dotazování

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

Parametry

Name Description
flow
Vyžadováno

Diktování, které initiate_device_flowdříve vygenerovalo . Ve výchozím nastavení bude efekt dotazování této metody blokovat aktuální vlákno. Smyčku dotazování můžete kdykoli přerušit změnou hodnoty klíče "expires_at" toku na 0.

claims_challenge

Parametr claims_challenge požaduje specifické deklarace identity požadované poskytovatelem prostředků ve formě direktivy claims_challenge v hlavičce www-authenticate, která se má vrátit z koncového bodu UserInfo nebo v tokenu ID nebo v přístupovém tokenu. Jedná se o řetězec objektu JSON, který obsahuje seznamy deklarací identity, které jsou požadovány z těchto umístění.

Default value: None

Návraty

Typ Description

Diktování představující odpověď JSON z Microsoft Entra:

  • Úspěšná odpověď by obsahovala klíč "access_token",

  • Chybová odpověď by obsahovala chybu a obvykle error_description.

acquire_token_interactive

Interaktivní získání tokenu, tj. prostřednictvím místního prohlížeče.

Předpoklad: V Azure Portal nakonfigurujte identifikátor URI přesměrování vaší mobilní a desktopové aplikace jako http://localhost. Pokud se při vytváření přihlásíte k použití zprostředkovatele PublicClientApplication , vaše aplikace také potřebuje tento identifikátor URI přesměrová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)

Parametry

Name Description
scopes
Vyžadováno

Jedná se o seznam řetězců rozlišujících malá a velká písmena.

prompt
str

Ve výchozím nastavení nebude odeslána žádná hodnota výzvy, ani řetězec "none". Budete muset explicitně zadat hodnotu. Platné hodnoty jsou konstanty definované v <xref:msal.Prompt>.

Default value: None
login_hint
str

Optional. Identifikátor uživatele. Obecně hlavní název uživatele (UPN).

Default value: None
domain_hint

Může to být jeden z "uživatelů" nebo "organizace" nebo doména vašeho tenanta "contoso.com". Pokud je součástí, přeskočí proces zjišťování na základě e-mailu, který uživatel prochází na přihlašovací stránce, což vede k trochu jednoduššímu uživatelskému prostředí. Další informace o možných hodnotách dostupných v dokumentaci k toku ověřovacího kódu a domain_hint dokumentaci.

Default value: None
claims_challenge

Parametr claims_challenge požaduje konkrétní deklarace identity požadované poskytovatelem prostředků ve formě direktivy claims_challenge v hlavičce www-authenticate, která se má vrátit z koncového bodu UserInfo nebo v tokenu ID nebo v přístupovém tokenu. Jedná se o řetězec objektu JSON, který obsahuje seznamy deklarací identity, které jsou požadovány z těchto umístění.

Default value: None
timeout
int

Tato metoda zablokuje aktuální vlákno. Tento parametr určuje hodnotu časového limitu v sekundách. Výchozí hodnota None znamená čekání na neomezenou dobu.

Default value: None
port
int

Port, který se má použít k naslouchání příchozí odpovědi ověřování. Ve výchozím nastavení použijeme port přidělený systémem. (Zbytek redirect_uri je pevně zakódovaný jako http://localhost.)

Default value: None
extra_scopes_to_consent

"Zvláštní rozsahy k vyjádření souhlasu" jsou konceptem dostupným pouze v Microsoft Entra. Odkazuje na jiné prostředky, u kterých se může zobrazit výzva k vyjádření souhlasu, ve stejné interakci, ale pro které v této konkrétní operaci nebudete dostávat token.

Default value: None
max_age
int

VOLITELNÝ. Maximální věk ověřování. Určuje povolený uplynulý čas v sekundách od posledního ověření End-User. Pokud je uplynulý čas větší než tato hodnota, Microsoft identity platform bude koncový uživatel aktivně znovu ověřovat.

PYTHON MSAL také automaticky ověří auth_time v tokenu ID.

Novinka ve verzi 1.15

Default value: None
parent_window_handle
int

VOLITELNÝ.

  • Pokud se vaše aplikace nepřihlásí k používání zprostředkovatele, nemusíte se zde zadávat parent_window_handle .

  • Pokud se vaše aplikace rozhodne používat zprostředkovatele, parent_window_handle je potřeba.

    • Pokud je vaše aplikace grafickým uživatelským rozhraním spuštěná v systému Windows nebo Mac, musíte také zadat popisovač okna, aby se v horní části okna otevře přihlašovací okno.

    • Pokud je vaše aplikace konzolovou aplikací spuštěnou v systému Windows nebo Mac, můžete použít zástupný symbol PublicClientApplication.CONSOLE_WINDOW_HANDLE.

Většina Python skriptů jsou konzolové aplikace.

Novinka ve verzi 1.20.0

Default value: None
on_before_launching_ui
<xref:function>

Zpětné volání s tvarem lambda ui="xyz", **kwargs: print("A {} will be launched".format(ui)), kde ui bude buď "prohlížeč" nebo "broker". Můžete ho použít k informování koncového uživatele, aby očekával automaticky otevírané okno.

Novinka ve verzi 1.20.0

Default value: None
auth_scheme

Můžete zadat msal.auth_scheme.PopAuthScheme objekt, aby MSAL za vás získal token POP (Proof-of-Possession).

Novinka ve verzi 1.26.0

Default value: None

Návraty

Typ Description
  • Diktování obsahující žádný klíč "error" a obvykle obsahuje klíč "access_token".

  • Diktování obsahující klíč chyby, když se aktualizace tokenu nezdařila.

initiate_device_flow

Zahajte instanci toku zařízení, ve které se použije acquire_token_by_device_flow.

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

Parametry

Name Description
scopes

Obory požadované pro přístup k chráněnému rozhraní API (prostředek).

Default value: None

Výhradně parametry klíčových slov

Name Description
claims_challenge
Default value: None

Návraty

Typ Description

Diktování představující nově vytvořený objekt Toku zařízení

  • Úspěšná odpověď by mimo jiné obsahovala klíč "user_code".

  • Chybová odpověď by obsahovala některé další čitelné páry klíč/hodnota.

Atributy

CONSOLE_WINDOW_HANDLE

CONSOLE_WINDOW_HANDLE = <object object>

DEVICE_FLOW_CORRELATION_ID

DEVICE_FLOW_CORRELATION_ID = '_correlation_id'