PublicClientApplication Klas
Hetzelfde als <xref:ClientApplication.__init__>, behalve die client_credential parameter blijft None.
Note
Wat is een broker en waarom zou ik het gebruiken?
Een broker is een onderdeel dat op uw apparaat is geïnstalleerd.
Broker geeft uw apparaat impliciet een identiteit. Met behulp van een broker,
uw apparaat wordt een factor die kan voldoen aan MFA (Multi-Factor Authentication).
Deze factor zou verplicht worden
als de beheerder van een tenant een bijbehorend beleid voor voorwaardelijke toegang (CA) inschakelt.
De aanwezigheid van de broker staat Microsoft identity platform
om meer vertrouwen te hebben dat de tokens worden uitgegeven aan uw apparaat,
en dat is veiliger.
Een extra voordeel van broker is,
het wordt uitgevoerd als een proces met een lange levensduur met het besturingssysteem van uw apparaat,
en onderhoudt zijn eigen cache,
zodat uw broker-apps (zelfs een CLI)
kan automatisch eenmalige aanmelding uitvoeren vanuit een eerder tot stand gebrachte aanmeldingssessie.
Hoe kunt u zich aanmelden voor het gebruik van broker?
U kunt elke combinatie van de volgende opt-in-parameters instellen op true:
Vlag voor aanmelden
Als de app wordt uitgevoerd op
De app heeft dit geregistreerd als omleidings-URI voor desktopplatforms in 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 waarop Bedrijfsportal geïnstalleerd
msauth.com.msauth.unsignedapp://auth://auth
enable_broker_on_linux
Linux waarop Intune is geïnstalleerd
https://login.microsoftonline.com/common/oauth2/nativeclient (MOET zijn ingeschakeld)
Broker-afhankelijkheid installeren,
bijvoorbeeld pip install msal[broker]>=1.33,2<.
Test met acquire_token_interactive() en acquire_token_silent().
Het terugvalgedrag van MSAL Python's broker-ondersteuning
MSAL zal een foutmelding geven of op de achtergrond terugvallen op niet-brokerstromen.
MSAL negeert de enable_broker_... en bypass broker
op deze verificatiestromen die bekend zijn dat ze niet worden ondersteund door broker.
Dit omvat ADFS, B2C, enzovoort.
Zie hieronder voor andere 'could-use-broker'-scenario's.
MSAL-fouten wanneer app-ontwikkelaar zich heeft aangemeld voor het gebruik van broker
maar er is geen direct afhankelijkheidspakket 'mid-tier' geïnstalleerd.
Foutbericht helpt app-ontwikkelaar om de juiste afhankelijkheid te declareren
msal[broker].
We treden hier op omdat de fout kan worden uitgevoerd voor app-ontwikkelaars.
MSAL 'deactiveert' de broker en terugval naar niet-broker,
wanneer u zich hebt aangemeld, kan afhankelijkheid nog niet worden geïnitialiseerd.
We verwachten dat dit zou gebeuren op een apparaat waarvan het besturingssysteem te oud is
of het onderliggende brokeronderdeel is op een of andere manier niet beschikbaar.
Er is niet veel een app-ontwikkelaar of de eindgebruiker kan hier doen.
Uiteindelijk zal het beleid voor voorwaardelijke toegang
dwingt de gebruiker over te schakelen naar een ander apparaat.
MSAL-fouten wanneer broker is aangemeld, geïnstalleerd, geïnitialiseerd,
maar volgende tokenaanvragen zijn mislukt.
Constructor
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)
Parameters
| Name | Description |
|---|---|
|
enable_broker_on_windows
Vereist
|
<xref:boolean>
Deze instelling is alleen effectief als uw app wordt uitgevoerd op Windows 10+. Deze parameter wordt standaard ingesteld op None, wat betekent dat MSAL geen broker gebruikt. Nieuw in MSAL Python 1.25.0. |
|
enable_broker_on_mac
Vereist
|
<xref:boolean>
Deze instelling is alleen effectief als uw app wordt uitgevoerd op Mac. Deze parameter wordt standaard ingesteld op None, wat betekent dat MSAL geen broker gebruikt. Nieuw in MSAL Python 1.31.0. |
|
enable_broker_on_linux
Vereist
|
<xref:boolean>
Deze instelling is alleen van kracht als uw app wordt uitgevoerd op Linux, inclusief WSL. Deze parameter wordt standaard ingesteld op None, wat betekent dat MSAL geen broker gebruikt. Nieuw in MSAL Python 1.33.0. |
|
enable_broker_on_wsl
Vereist
|
<xref:boolean>
Deze instelling is alleen van kracht als uw app wordt uitgevoerd op WSL. Deze parameter wordt standaard ingesteld op None, wat betekent dat MSAL geen broker gebruikt. Nieuw in MSAL Python 1.33.0. |
|
client_id
Vereist
|
|
|
client_credential
|
Default value: None
|
Keyword-Only Parameters
| 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
|
Methoden
| acquire_token_by_device_flow |
Het token verkrijgen door een apparaatstroomobject, met aanpasbare polling-effect. |
| acquire_token_interactive |
Een token interactief verkrijgen via een lokale browser. Vereiste: Configureer in Azure Portal de omleidings-URI van uw mobiele en bureaubladtoepassing als |
| initiate_device_flow |
Een apparaatstroomexemplaren initiëren, die wordt gebruikt in acquire_token_by_device_flow. |
acquire_token_by_device_flow
Het token verkrijgen door een apparaatstroomobject, met aanpasbare polling-effect.
acquire_token_by_device_flow(flow, claims_challenge=None, **kwargs)
Parameters
| Name | Description |
|---|---|
|
flow
Vereist
|
Een dict die eerder is gegenereerd door initiate_device_flow. Standaard blokkeert het polling-effect van deze methode de huidige thread. U kunt de polling-lus op elk gewenst moment afbreken door de waarde van de sleutel 'expires_at' van de stroom te wijzigen in 0. |
|
claims_challenge
|
De claims_challenge parameter vraagt specifieke claims op die zijn aangevraagd door de resourceprovider in de vorm van een claims_challenge-instructie in de www-authenticate-header die moet worden geretourneerd vanuit het eindpunt userinfo en/of in het id-token en/of toegangstoken. Het is een tekenreeks van een JSON-object met lijsten met claims die vanaf deze locaties worden aangevraagd. Default value: None
|
Retouren
| Type | Description |
|---|---|
|
Een dict die het json-antwoord van Microsoft Entra vertegenwoordigt:
|
acquire_token_interactive
Een token interactief verkrijgen via een lokale browser.
Vereiste: Configureer in Azure Portal de omleidings-URI van uw mobiele en bureaubladtoepassing als http://localhost.
Als u ervoor kiest om broker te gebruiken tijdens PublicClientApplication het maken, heeft uw app ook deze omleidings-URI nodig: 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)
Parameters
| Name | Description |
|---|---|
|
scopes
Vereist
|
Het is een lijst met hoofdlettergevoelige tekenreeksen. |
|
prompt
|
Standaard wordt er geen promptwaarde verzonden, zelfs geen tekenreeks Default value: None
|
|
login_hint
|
Optional. Id van de gebruiker. Over het algemeen een USER Principal Name (UPN). Default value: None
|
|
domain_hint
|
Kan een van de 'consumenten' of 'organisaties' of uw tenantdomein 'contoso.com' zijn. Indien opgenomen, wordt het detectieproces op basis van e-mail overgeslagen dat de gebruiker doorloopt op de aanmeldingspagina, wat leidt tot een iets gestroomlijndere gebruikerservaring. Meer informatie over mogelijke waarden die beschikbaar zijn in Auth Code Flow-document en domain_hint-document. Default value: None
|
|
claims_challenge
|
De claims_challenge parameter vraagt specifieke claims op die zijn aangevraagd door de resourceprovider in de vorm van een claims_challenge-instructie in de www-authenticate-header die moet worden geretourneerd vanuit het eindpunt userinfo en/of in het id-token en/of toegangstoken. Het is een tekenreeks van een JSON-object met lijsten met claims die vanaf deze locaties worden aangevraagd. Default value: None
|
|
timeout
|
Met deze methode wordt de huidige thread geblokkeerd.
Met deze parameter geeft u de time-outwaarde in seconden op.
De standaardwaarde Default value: None
|
|
port
|
De poort die moet worden gebruikt om te luisteren naar een binnenkomend verificatieantwoord.
Standaard gebruiken we een door het systeem toegewezen poort.
(De rest van de redirect_uri is vastgelegd als Default value: None
|
|
extra_scopes_to_consent
|
'Extra bereiken voor toestemming' is een concept dat alleen beschikbaar is in Microsoft Entra. Het verwijst naar andere resources waarvoor u mogelijk toestemming wilt vragen, in dezelfde interactie, maar waarvoor u geen token voor deze specifieke bewerking krijgt. Default value: None
|
|
max_age
|
OPTIONEEL. Maximale verificatieleeftijd. Hiermee geeft u de toegestane verstreken tijd in seconden sinds de laatste keer dat de End-User actief is geverifieerd. Als de verstreken tijd groter is dan deze waarde, zal Microsoft identity platform de eindgebruiker actief opnieuw verifiëren. MSAL Python valideert ook automatisch de auth_time in het id-token. Nieuw in versie 1.15. Default value: None
|
|
parent_window_handle
|
OPTIONEEL.
De meeste Python scripts zijn console-apps. Nieuw in versie 1.20.0. Default value: None
|
|
on_before_launching_ui
|
<xref:function>
Een callback met de vorm van Nieuw in versie 1.20.0. Default value: None
|
|
auth_scheme
|
U kunt een Nieuw in versie 1.26.0. Default value: None
|
Retouren
| Type | Description |
|---|---|
|
initiate_device_flow
Een apparaatstroomexemplaren initiëren, die wordt gebruikt in acquire_token_by_device_flow.
initiate_device_flow(scopes=None, *, claims_challenge=None, **kwargs)
Parameters
| Name | Description |
|---|---|
|
scopes
|
Bereiken die zijn aangevraagd voor toegang tot een beveiligde API (een resource). Default value: None
|
Keyword-Only Parameters
| Name | Description |
|---|---|
|
claims_challenge
|
Default value: None
|
Retouren
| Type | Description |
|---|---|
|
Een dict die een nieuw apparaatstroomobject vertegenwoordigt.
|
Kenmerken
CONSOLE_WINDOW_HANDLE
CONSOLE_WINDOW_HANDLE = <object object>
DEVICE_FLOW_CORRELATION_ID
DEVICE_FLOW_CORRELATION_ID = '_correlation_id'