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

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:

  • Een geslaagd antwoord bevat de sleutel 'access_token',

  • een foutreactie zou 'fout' en meestal 'error_description' bevatten.

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
str

Standaard wordt er geen promptwaarde verzonden, zelfs geen tekenreeks "none". U moet expliciet een waarde opgeven. De geldige waarden zijn de constanten die zijn gedefinieerd in <xref:msal.Prompt>.

Default value: None
login_hint
str

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
int

Met deze methode wordt de huidige thread geblokkeerd. Met deze parameter geeft u de time-outwaarde in seconden op. De standaardwaarde None betekent dat er voor onbepaalde tijd moet worden gewacht.

Default value: None
port
int

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

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
int

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
int

OPTIONEEL.

  • Als uw app zich niet aanmeldt voor het gebruik van broker, hoeft u hier geen gegevens parent_window_handle op te geven.

  • Als uw app ervoor kiest om broker te gebruiken, parent_window_handle is dit vereist.

    • Als uw app een GUI-app is die wordt uitgevoerd op Windows of Mac-systeem, moet u ook de venstergreep opgeven, zodat het aanmeldingsvenster boven aan het venster wordt weergegeven.

    • Als uw app een console-app is die wordt uitgevoerd op Windows of Mac-systeem, kunt u een tijdelijke aanduiding PublicClientApplication.CONSOLE_WINDOW_HANDLEgebruiken.

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 lambda ui="xyz", **kwargs: print("A {} will be launched".format(ui)), waarbij ui 'browser' of 'broker' wordt weergegeven. U kunt deze gebruiken om uw eindgebruiker te informeren een pop-upvenster te verwachten.

Nieuw in versie 1.20.0.

Default value: None
auth_scheme

U kunt een msal.auth_scheme.PopAuthScheme object opgeven zodat MSAL een POP-token (Proof-of-Possession) voor u krijgt.

Nieuw in versie 1.26.0.

Default value: None

Retouren

Type Description
  • Een dict met geen foutsleutel en bevat meestal een 'access_token'-sleutel.

  • Een dict met een foutsleutel, wanneer het vernieuwen van tokens is mislukt.

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.

  • Een geslaagd antwoord bevat onder andere de sleutel 'user_code'.

  • een foutreactie zou enkele andere leesbare sleutel-/waardeparen bevatten.

Kenmerken

CONSOLE_WINDOW_HANDLE

CONSOLE_WINDOW_HANDLE = <object object>

DEVICE_FLOW_CORRELATION_ID

DEVICE_FLOW_CORRELATION_ID = '_correlation_id'