PublicClientApplication Osztály
<xref:ClientApplication.__init__>A paramétert kivéve client_credential a paraméternek is meg kell maradnia None.
Note
Mi az a közvetítő, és miért használja?
A közvetítő az eszközön telepített összetevő.
A broker implicit módon identitást ad az eszköznek. Egy közvetítő használatával
az eszköz olyan tényezővé válik, amely képes kielégíteni az MFA-t (többtényezős hitelesítés).
Ez a tényező kötelezővé válik
ha a bérlő rendszergazdája engedélyezi a megfelelő feltételes hozzáférési (CA) szabályzatot.
A közvetítő jelenléte lehetővé teszi Microsoft Identitásplatform
nagyobb megbízhatóságot, hogy a jogkivonatok ki vannak adva az eszközre,
és ez biztonságosabb.
A közvetítő további előnye, hogy
hosszú élettartamú folyamatként fut az eszköz operációs rendszerével,
és saját gyorsítótárat tart fenn,
úgy, hogy a közvetítő által kompatibilis alkalmazások (még a parancssori felület is)
automatikusan egyszeri bejelentkezést eredményezhet egy korábban létrehozott bejelentkezési munkamenetből.
Hogyan lehet bejelentkezni a közvetítő használatára?
Az alábbi opt-in paraméterek bármely kombinációját igaz értékre állíthatja:
Bejelentkezési jelölő
Ha az alkalmazás fut a következőn:
Az alkalmazás asztali platform átirányítási URI-ként regisztrálta ezt a 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 Céges portál telepítve
msauth.com.msauth.unsignedapp://auth
enable_broker_on_linux
Linux az Intune-nal
https://login.microsoftonline.com/common/oauth2/nativeclient (ENGEDÉLYEZNI KELL)
Közvetítői függőség telepítése,
pl. pip install msal[broker]>=1.33,2<.
Tesztelés acquire_token_interactive() és acquire_token_silent() használatával.
Az MSAL Python közvetítői támogatásának tartalék viselkedése
Az MSAL hibát jelez, vagy csendesen visszaesik a nem közvetítői folyamatokra.
Az MSAL figyelmen kívül hagyja a enable_broker_... és a közvetítő megkerülése
azon hitelesítési folyamatokon, amelyekről ismert, hogy a közvetítő nem támogatja.
Ide tartozik az ADFS, a B2C stb.
Egyéb "could-use-broker" forgatókönyvek esetén lásd alább.
MSAL-hibák, amikor az alkalmazásfejlesztő a közvetítő használatát választotta
de a közvetlen függőségi "mid-tier" csomag nincs telepítve.
A hibaüzenet útmutatást nyújt az alkalmazás fejlesztőjének a megfelelő függőség deklarálásához
msal[broker].
Itt hiba történt, mert a hiba az alkalmazásfejlesztők számára végrehajtható.
Az MSAL csendesen "inaktiválja" a közvetítőt, és visszaesik a nem közvetítő,
a bejelentkezéskor a telepített függőség még nem inicializálható.
Arra számítunk, hogy ez egy olyan eszközön fog történni, amelynek operációs rendszere túl régi
vagy a mögöttes közvetítő összetevő valahogy nem érhető el.
Az alkalmazásfejlesztők és a végfelhasználók nem sok mindent tehetnek itt.
Végül a feltételes hozzáférési szabályzatnak
kényszerítse a felhasználót, hogy váltson másik eszközre.
MSAL-hibák a közvetítő engedélyezésekor, telepítésekor, inicializálásakor,
de a későbbi jogkivonat-kérés(ek) sikertelenek.
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)
Paraméterek
| Name | Description |
|---|---|
|
enable_broker_on_windows
Kötelező
|
<xref:boolean>
Ez a beállítás csak akkor érvényes, ha az alkalmazás Windows 10+ rendszeren fut. Ez a paraméter alapértelmezés szerint Nincs, ami azt jelenti, hogy az MSAL nem használ közvetítőt. Új MSAL Python 1.25.0. |
|
enable_broker_on_mac
Kötelező
|
<xref:boolean>
Ez a beállítás csak akkor érvényes, ha az alkalmazás Mac gépen fut. Ez a paraméter alapértelmezés szerint Nincs, ami azt jelenti, hogy az MSAL nem használ közvetítőt. Új MSAL Python 1.31.0. |
|
enable_broker_on_linux
Kötelező
|
<xref:boolean>
Ez a beállítás csak akkor érvényes, ha az alkalmazás Linuxon fut, beleértve a WSL-t is. Ez a paraméter alapértelmezés szerint Nincs, ami azt jelenti, hogy az MSAL nem használ közvetítőt. Új MSAL Python 1.33.0. |
|
enable_broker_on_wsl
Kötelező
|
<xref:boolean>
Ez a beállítás csak akkor érvényes, ha az alkalmazás WSL-n fut. Ez a paraméter alapértelmezés szerint Nincs, ami azt jelenti, hogy az MSAL nem használ közvetítőt. Új MSAL Python 1.33.0. |
|
client_id
Kötelező
|
|
|
client_credential
|
Alapértelmezett érték: None
|
Csak kulcsszavas paraméterek
| Name | Description |
|---|---|
|
enable_broker_on_windows
|
Alapértelmezett érték: None
|
|
enable_broker_on_mac
|
Alapértelmezett érték: None
|
|
enable_broker_on_linux
|
Alapértelmezett érték: None
|
|
enable_broker_on_wsl
|
Alapértelmezett érték: None
|
Metódusok
| acquire_token_by_device_flow |
Jogkivonat lekérése egy eszközfolyamat-objektummal, testre szabható lekérdezési effektussal. |
| acquire_token_interactive |
A jogkivonatot interaktívan, azaz egy helyi böngészőn keresztül szerezheti be. Előfeltétel: A Azure Portal konfigurálja a "Mobil és asztali alkalmazás" |
| initiate_device_flow |
Indítsa el a Device Flow-példányt, amelyet a rendszer a következő helyen acquire_token_by_device_flowfog használni: . |
acquire_token_by_device_flow
Jogkivonat lekérése egy eszközfolyamat-objektummal, testre szabható lekérdezési effektussal.
acquire_token_by_device_flow(flow, claims_challenge=None, **kwargs)
Paraméterek
| Name | Description |
|---|---|
|
flow
Kötelező
|
Korábban létrehozott initiate_device_flowdiktálás. Alapértelmezés szerint a metódus lekérdezési effektusa blokkolja az aktuális szálat. A lekérdezési ciklust bármikor megszakíthatja, ha a folyamat "expires_at" kulcsának értékét 0-ra módosítja. |
|
claims_challenge
|
A claims_challenge paraméter claims_challenge irányelv formájában kért konkrét jogcímeket kér az erőforrás-szolgáltatótól a UserInfo végpontról és/vagy az azonosító jogkivonatból és/vagy hozzáférési jogkivonatból visszaadandó www-hitelesítés fejlécében. Ez egy JSON-objektum sztringje, amely az ezekről a helyekről kért jogcímlistákat tartalmazza. Alapértelmezett érték: None
|
Válaszok
| Típus | Description |
|---|---|
|
A Microsoft Entra json-válaszát képviselő diktálás:
|
acquire_token_interactive
A jogkivonatot interaktívan, azaz egy helyi böngészőn keresztül szerezheti be.
Előfeltétel: A Azure Portal konfigurálja a "Mobil és asztali alkalmazás" http://localhostátirányítási URI-ját .
Ha a létrehozás során PublicClientApplication a közvetítő használatát választja, az alkalmazásnak szüksége van erre az átirányítási URI-ra is: 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)
Paraméterek
| Name | Description |
|---|---|
|
scopes
Kötelező
|
A kis- és nagybetűket megkülönböztető sztringek listája. |
|
prompt
|
Alapértelmezés szerint a rendszer nem küld parancssori értéket, még sztringet Alapértelmezett érték: None
|
|
login_hint
|
Optional. A felhasználó azonosítója. Általában egyszerű felhasználónév (UPN). Alapértelmezett érték: None
|
|
domain_hint
|
Lehet a "fogyasztók" vagy a "szervezetek" vagy a "contoso.com" bérlői tartomány. Ha tartalmazza, akkor kihagyja az e-mail-alapú felderítési folyamatot, amelyen a felhasználó végighalad a bejelentkezési oldalon, ami kissé leegyszerűsített felhasználói élményt eredményez. További információ az Auth Code Flow-dokumentumban és domain_hint dokumentumban elérhető lehetséges értékekről. Alapértelmezett érték: None
|
|
claims_challenge
|
A claims_challenge paraméter claims_challenge irányelv formájában kért konkrét jogcímeket kér az erőforrás-szolgáltatótól a UserInfo végpontról és/vagy az azonosító jogkivonatból és/vagy hozzáférési jogkivonatból visszaadandó www-hitelesítés fejlécében. Ez egy JSON-objektum sztringje, amely az ezekről a helyekről kért jogcímlistákat tartalmazza. Alapértelmezett érték: None
|
|
timeout
|
Ez a metódus blokkolja az aktuális szálat.
Ez a paraméter másodpercben adja meg az időtúllépés értékét.
Az alapértelmezett érték Alapértelmezett érték: None
|
|
port
|
A bejövő hitelesítésre adott válasz figyeléséhez használt port.
Alapértelmezés szerint rendszer által lefoglalt portot használunk.
(A redirect_uri többi része keményen . Alapértelmezett érték: None
|
|
extra_scopes_to_consent
|
A "hozzájáruláshoz szükséges további hatókörök" olyan fogalom, amely csak Microsoft Entra érhető el. Olyan egyéb erőforrásokra vonatkozik, amelyekhez ugyanahhoz az interakcióhoz szeretne hozzájárulást kérni, de amelyekhez nem fog jogkivonatot kapni ebben az adott műveletben. Alapértelmezett érték: None
|
|
max_age
|
SZABADON VÁLASZTHATÓ. Maximális hitelesítési életkor. A End-User aktív hitelesítésének utolsó időpontja óta eltelt időt adja meg másodpercekben. Ha az eltelt idő nagyobb ennél az értéknél, Microsoft Identitásplatform aktívan újra hitelesíti a végfelhasználót. Az MSAL Python automatikusan ellenőrzi a auth_time azonosító jogkivonatban. Az 1.15-ös verzió újdonságai. Alapértelmezett érték: None
|
|
parent_window_handle
|
SZABADON VÁLASZTHATÓ.
A legtöbb Python szkript konzolalkalmazás. Az 1.20.0-s verzió újdonságai. Alapértelmezett érték: None
|
|
on_before_launching_ui
|
<xref:function>
Visszahívás a következő formában Az 1.20.0-s verzió újdonságai. Alapértelmezett érték: None
|
|
auth_scheme
|
Megadhat egy objektumot Az 1.26.0-s verzió újdonságai. Alapértelmezett érték: None
|
Válaszok
| Típus | Description |
|---|---|
|
initiate_device_flow
Indítsa el a Device Flow-példányt, amelyet a rendszer a következő helyen acquire_token_by_device_flowfog használni: .
initiate_device_flow(scopes=None, *, claims_challenge=None, **kwargs)
Paraméterek
| Name | Description |
|---|---|
|
scopes
|
Védett API-k (erőforrás) eléréséhez kért hatókörök. Alapértelmezett érték: None
|
Csak kulcsszavas paraméterek
| Name | Description |
|---|---|
|
claims_challenge
|
Alapértelmezett érték: None
|
Válaszok
| Típus | Description |
|---|---|
|
Egy újonnan létrehozott eszközfolyamat-objektumot jelképező diktálás.
|
Attribútumok
CONSOLE_WINDOW_HANDLE
CONSOLE_WINDOW_HANDLE = <object object>
DEVICE_FLOW_CORRELATION_ID
DEVICE_FLOW_CORRELATION_ID = '_correlation_id'