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 |
| 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:
|
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
|
Ve výchozím nastavení nebude odeslána žádná hodnota výzvy, ani řetězec Default value: None
|
|
login_hint
|
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
|
Tato metoda zablokuje aktuální vlákno.
Tento parametr určuje hodnotu časového limitu v sekundách.
Výchozí hodnota Default value: None
|
|
port
|
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 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
|
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
|
VOLITELNÝ.
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 Novinka ve verzi 1.20.0 Default value: None
|
|
auth_scheme
|
Můžete zadat Novinka ve verzi 1.26.0 Default value: None
|
Návraty
| Typ | Description |
|---|---|
|
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í
|
Atributy
CONSOLE_WINDOW_HANDLE
CONSOLE_WINDOW_HANDLE = <object object>
DEVICE_FLOW_CORRELATION_ID
DEVICE_FLOW_CORRELATION_ID = '_correlation_id'