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" 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

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:

  • A sikeres válasz "access_token" kulcsot tartalmazna,

  • a hibaválasz "error" (hiba) és általában "error_description" szöveget tartalmazna.

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
str

Alapértelmezés szerint a rendszer nem küld parancssori értéket, még sztringet "none"sem. Explicit módon kell megadnia egy értéket. Az érvényes értékek a következőben <xref:msal.Prompt>definiált állandók: .

Alapértelmezett érték: None
login_hint
str

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
int

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 None azt jelenti, hogy határozatlan ideig várni kell.

Alapértelmezett érték: None
port
int

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 . http://localhost)

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
int

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
int

SZABADON VÁLASZTHATÓ.

  • Ha az alkalmazás nem engedélyezi a közvetítő használatát, itt nem kell megadnia.parent_window_handle

  • Ha az alkalmazás a közvetítő használatát választja, parent_window_handle szükség van rá.

    • Ha az alkalmazás egy Windows vagy Mac rendszeren futó grafikus felhasználói felületű alkalmazás, meg kell adnia annak ablakleíróját is, hogy a bejelentkezési ablak felugrik az ablak tetejére.

    • Ha az alkalmazás Windows vagy Mac rendszeren futó konzolalkalmazás, használhat helyőrzőtPublicClientApplication.CONSOLE_WINDOW_HANDLE.

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 lambda ui="xyz", **kwargs: print("A {} will be launched".format(ui)): ui "böngésző" vagy "közvetítő". Ezzel tájékoztathatja a végfelhasználót, hogy várjon egy előugró ablakot.

Az 1.20.0-s verzió újdonságai.

Alapértelmezett érték: None
auth_scheme

Megadhat egy objektumot msal.auth_scheme.PopAuthScheme , hogy az MSAL megkapja a birtoklás igazolása (POP) jogkivonatot.

Az 1.26.0-s verzió újdonságai.

Alapértelmezett érték: None

Válaszok

Típus Description
  • A diktálás nem tartalmaz "hiba" kulcsot, és általában egy "access_token" kulcsot tartalmaz.

  • Hibakulcsot tartalmazó diktálás, amikor a jogkivonat frissítése meghiúsult.

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.

  • A sikeres válasz többek között "user_code" kulcsot tartalmazna

  • a hibaválasz más olvasható kulcs/érték párokat is tartalmazna.

Attribútumok

CONSOLE_WINDOW_HANDLE

CONSOLE_WINDOW_HANDLE = <object object>

DEVICE_FLOW_CORRELATION_ID

DEVICE_FLOW_CORRELATION_ID = '_correlation_id'