ClientApplication Klas

U gebruikt deze klasse meestal niet rechtstreeks. Gebruik in plaats daarvan de subklassen: PublicClientApplication en ConfidentialClientApplication.

Maak een exemplaar van de toepassing.

Constructor

ClientApplication(client_id, client_credential=None, authority=None, validate_authority=True, token_cache=None, http_client=None, verify=True, proxies=None, timeout=None, client_claims=None, app_name=None, app_version=None, client_capabilities=None, azure_region=None, exclude_scopes=None, http_cache=None, instance_discovery=None, allow_broker=None, enable_pii_log=None, oidc_authority=None)

Parameters

Name Description
client_id
Vereist
str

Uw app heeft een client_id nadat u deze hebt geregistreerd op Microsoft Entra-beheercentrum.

client_credential

Voor PublicClientApplication, gebruik je Geen hier.

Hiervoor ConfidentialClientApplicationondersteunt het veel verschillende invoerindelingen voor verschillende scenario's.

Ondersteuning met behulp van een clientgeheim. Voer gewoon een tekenreeks in, zoals "your client secret".

Ondersteuning voor het gebruik van een certificaat in X.509-indeling (.pem) afgeschaft omdat deze GEBRUIKMAAKT van SHA-1-vingerafdruk,

tenzij u nog steeds ADFS gebruikt die alleen SHA-1-vingerafdruk ondersteunt. Gebruik de pfx-optie die verderop op deze pagina wordt beschreven. Feed in een dict in deze vorm:


   {
       "private_key": "...-----BEGIN PRIVATE KEY-----... in PEM format",
       "thumbprint": "An SHA-1 thumbprint such as A1B2C3D4E5F6..."
           "Changed in version 1.35.0, if thumbprint is absent"
           "and a public_certificate is present, MSAL will"
           "automatically calculate an SHA-256 thumbprint instead.",
       "passphrase": "Needed if the private_key is encrypted (Added in version 1.6.0)",
       "public_certificate": "...-----BEGIN CERTIFICATE-----...",  # Needed if you use Subject Name/Issuer auth. Added in version 0.5.0.
   }

MSAL-Python vereist een 'private_key' in PEM-indeling. Als uw certificaat de PKCS12-indeling (.pfx) heeft, kunt u het converteren naar X.509-indeling (.pem), op openssl pkcs12 -in file.pfx -out file.pem -nodes. De vingerafdruk is beschikbaar in de registratie van uw app in Azure Portal. U kunt ook de vingerafdruk berekenen. public_certificate (optioneel) is een openbaar sleutelcertificaat dat wordt verzonden via de JWT-header 'x5c'. Dit is handig wanneer u verificatie voor onderwerpnaam/verlener gebruikt. Dit is een methode om het rouleren van certificaten te vereenvoudigen. Per specificaties: "het certificaat met de openbare sleutel dat overeenkomt met de sleutel die wordt gebruikt om de JWS digitaal te ondertekenen, moet het eerste certificaat zijn. Dit kan worden gevolgd door extra certificaten, waarbij elk volgend certificaat het certificaat is dat wordt gebruikt om het vorige certificaat te certificeren." De verlener van uw certificaat kan echter een andere volgorde gebruiken. Als uw poging eindigt op een fout AADSTS700027 : 'De opgegeven handtekeningwaarde komt niet overeen met de verwachte handtekeningwaarde', kunt u in plaats daarvan alleen het bladcertificaat (in PEM/str-indeling) gebruiken.

Ondersteunende onbewerkte assertie die afkomstig is van elderstoegevoegd in versie 1.13.0:

Het kan ook een volledig vooraf ondertekende verklaring zijn die u zelf hebt samengesteld. Geef gewoon een container door die alleen de sleutel 'client_assertion' bevat, zoals hieronder:


   {
       "client_assertion": "...a JWT with claims aud, exp, iss, jti, nbf, and sub..."
   }

Ondersteuning voor het lezen van clientcertificaten uit PFX-bestanden Dit gebruik gebruikt automatisch SHA-256 vingerafdruk van het certificaat. Toegevoegd in versie 1.29.0:

Feed in een woordenlijst met het pad naar een PFX-bestand:


   {
       "private_key_pfx_path": "/path/to/your.pfx",  # Added in version 1.29.0
       "public_certificate": True,  # Only needed if you use Subject Name/Issuer auth. Added in version 1.30.0
       "passphrase": "Passphrase if the private_key is encrypted (Optional)",
   }

Met de volgende opdracht wordt een PFX-bestand gegenereerd op basis van uw .key- en PEM-bestand:


   openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.pem

Verificatie van onderwerpnaam/verlener is een methode om eenvoudiger certificaatrotatie mogelijk te maken. Als uw PFX-bestand zowel de persoonlijke sleutel als het openbare certificaat bevat, kunt u zich aanmelden voor verificatie voor onderwerpnaam/verlener door 'public_certificate' in te stellen op True.

Default value: None
client_claims

Toegevoegd in versie 0.5.0: het is een woordenlijst met extra claims die door deze ConfidentialClientApplication persoonlijke sleutel worden ondertekend. U kunt bijvoorbeeld {"client_ip": "x.x.x.x.x"} gebruiken. U kunt ook een van de volgende standaardclaims negeren:


   {
       "aud": the_token_endpoint,
       "iss": self.client_id,
       "sub": same_as_issuer,
       "exp": now + 10_min,
       "iat": now,
       "jti": a_random_uuid
   }
Default value: None
authority
str

Een URL die een tokeninstantie identificeert. Deze moet de indeling hebben https://login.microsoftonline.com/your_tenant Standaard gebruiken we https://login.microsoftonline.com/common

Gewijzigd in versie 1.17: u kunt ook vooraf gedefinieerde constante en een opbouwfunctie als volgt gebruiken:


   from msal.authority import (
       AuthorityBuilder,
       AZURE_US_GOVERNMENT, AZURE_CHINA, AZURE_PUBLIC)
   my_authority = AuthorityBuilder(AZURE_PUBLIC, "contoso.onmicrosoft.com")
   # Now you get an equivalent of
   # "https://login.microsoftonline.com/contoso.onmicrosoft.com"

   # You can feed such an authority to msal's ClientApplication
   from msal import PublicClientApplication
   app = PublicClientApplication("my_client_id", authority=my_authority, ...)
Default value: None
validate_authority

(optioneel) Hiermee schakelt u autorisatievalidatie in of uit. Deze parameter is standaard ingesteld op true.

Default value: True
token_cache

Hiermee stelt u de tokencache in die wordt gebruikt door dit ClientApplication-exemplaar. Standaard wordt er een cache in het geheugen gemaakt en gebruikt.

Default value: None
http_client

(optioneel) Uw implementatie van abstracte klasse HttpClient <msal.oauth2cli.http.http_client> Standaard ingesteld op een sessie-exemplaar van aanvragen. Aangezien MSAL 1.11.0 is geconfigureerd, wordt de standaardsessie geconfigureerd om een nieuwe poging te doen bij verbindingsfout. Als u uw eigen http_client opgeeft, is het de plicht van uw http_client om te beslissen of u een nieuwe poging wilt uitvoeren.

Default value: None
verify

(optioneel) Deze wordt doorgegeven aan de verificatieparameter in de onderliggende aanvraagbibliotheek . Dit geldt niet als u ervoor hebt gekozen om uw eigen Http-client door te geven

Default value: True
proxies

(optioneel) Deze wordt doorgegeven aan de parameter proxy's in de onderliggende aanvraagbibliotheek . Dit geldt niet als u ervoor hebt gekozen om uw eigen Http-client door te geven

Default value: None
timeout

(optioneel) Deze wordt doorgegeven aan de time-outparameter in de onderliggende aanvraagbibliotheek . Dit geldt niet als u ervoor hebt gekozen om uw eigen Http-client door te geven

Default value: None
app_name

(optioneel) U kunt uw toepassingsnaam opgeven voor Microsoft telemetriedoeleinden. De standaardwaarde is Geen, betekent dat deze niet wordt doorgegeven aan Microsoft.

Default value: None
app_version

(optioneel) U kunt uw toepassingsversie opgeven voor Microsoft telemetriedoeleinden. De standaardwaarde is Geen, betekent dat deze niet wordt doorgegeven aan Microsoft.

Default value: None
client_capabilities

(optioneel) Hiermee kunt u een of meer clientmogelijkheden configureren, bijvoorbeeld ["CP1"].

Clientmogelijkheid is bedoeld om de Microsoft identity platform (STS) te informeren waarvoor deze client geschikt is, zodat STS bepaalde functies kan inschakelen. Als de client bijvoorbeeld in staat is om claims uit te voeren, kan STS toegangstokens uitgeven aan resources voor continue toegang tot resources, wetende dat wanneer de resource een claimuitdaging verzendt, de client deze uitdagingen kan afhandelen.

Implementatiedetails: Clientmogelijkheid wordt geïmplementeerd met behulp van de parameter 'claims' op de kabel, voorlopig. MSAL combineert deze in claimsparameter die u later opgeeft via een van de acquire-tokenaanvraag.

Default value: None
azure_region
str

(optioneel) Geeft MSAL opdracht om de regionale tokenservice Entra te gebruiken. Deze verouderde functie is alleen beschikbaar voor toepassingen van derden. Alleen acquire_token_for_client() wordt ondersteund.

Ondersteunt 4 waarden:

  1. azure_region=None - Deze standaardwaarde betekent dat er geen regio is geconfigureerd. MSAL gebruikt de regio die is gedefinieerd in env var MSAL_FORCE_REGION.

  2. azure_region="some_region" - wat betekent dat de opgegeven regio wordt gebruikt.

  3. azure_region=True - wat betekent dat MSAL probeert de regio automatisch te detecteren. Dit wordt niet aanbevolen.

  4. azure_region=False - betekent dat MSAL geen regio gebruikt.

Note

Automatische detectie van regio's is getest op VM's en op Azure Functions. Het is onbetrouwbaar.

Toepassingen die deze optie gebruiken, moeten een korte time-out configureren.

Voor meer informatie en voor de waarden van de regiotekenreeks

Zie https://learn.microsoft.com/entra/msal/dotnet/resources/region-discovery-troubleshooting

Nieuw in versie 1.12.0.

Default value: None
exclude_scopes

(optioneel) MsAL-hardcodes offline_access bereik, waardoor uw app langdurige toegang heeft tot de gegevens van de gebruiker. Als dat niet nodig of ongewenst is voor uw app, kunt u deze parameter nu gebruiken om een uitsluitingslijst met bereiken op te geven, zoals exclude_scopes = ["offline_access"].

Default value: None
http_cache

MSAL heeft al lang tokens in de cache opgeslagen in de token_cache. Onlangs heeft MSAL ook een concept vanhttp_cache, door automatisch een eindige hoeveelheid niet-token http-antwoorden in de cache op te cachen, zodat lange levensduur PublicClientApplication en ConfidentialClientApplication in sommige situaties beter presterend en responsief zou zijn.

Deze http_cache parameter accepteert elk dicterend object. Indien niet opgegeven, gebruikt MSAL een in-memory dict.

Als uw app een opdrachtregel-app (CLI) is, wilt u uw http_cache behouden voor verschillende CLI-uitvoeringen. De indeling van het persistente bestand kan worden gewijzigd vanwege, maar niet beperkt tot, onstabiel protocol, zodat uw implementatie onverwachte laadfouten tolereert. In het volgende recept ziet u een manier om dit te doen:


   # Just add the following lines at the beginning of your CLI script
   import sys, atexit, pickle, logging
   http_cache_filename = sys.argv[0] + ".http_cache"
   try:
       with open(http_cache_filename, "rb") as f:
           persisted_http_cache = pickle.load(f)  # Take a snapshot
   except (
           FileNotFoundError,  # Or IOError in Python 2
           pickle.UnpicklingError,  # A corrupted http cache file
           AttributeError,  # Cache created by a different version of MSAL
           ):
       persisted_http_cache = {}  # Recover by starting afresh
   except:  # Unexpected exceptions
       logging.exception("You may want to debug this")
       persisted_http_cache = {}  # Recover by starting afresh
   atexit.register(lambda: pickle.dump(
       # When exit, flush it back to the file.
       # It may occasionally overwrite another process's concurrent write,
       # but that is fine. Subsequent runs will reach eventual consistency.
       persisted_http_cache, open(http_cache_file, "wb")))

   # And then you can implement your app as you normally would
   app = msal.PublicClientApplication(
       "your_client_id",
       ...,
       http_cache=persisted_http_cache,  # Utilize persisted_http_cache
       ...,
       #token_cache=...,  # You may combine the old token_cache trick
           # Please refer to token_cache recipe at
           # https://msal-python.readthedocs.io/en/latest/#msal.SerializableTokenCache
       )
   app.acquire_token_interactive(["your", "scope"], ...)

Inhoud binnen http_cache is goedkoop te verkrijgen. U hoeft ze niet te delen tussen verschillende apps.

Inhoud in de inhoud http_cache bevat geen tokens of persoonlijke informatie (PII). Versleuteling is niet nodig.

Nieuw in versie 1.16.0.

Default value: None
instance_discovery
<xref:boolean>

In het verleden zou MSAL verbinding maken met een centraal eindpunt dat zich bevindt om https://login.microsoftonline.com bepaalde metagegevens te verkrijgen, met name wanneer u een onbekende instantie gebruikt. Dit gedrag wordt exemplaardetectie genoemd.

Deze parameter is standaard ingesteld op None, waardoor de instantiedetectie wordt ingeschakeld.

Als u bepaalde instanties kent waarmee MSAL kan werken met as-is, zonder tussenkomst van instantiedetectie, is het aanbevolen patroon:


   known_authorities = frozenset([  # Treat your known authorities as const
       "https://contoso.com/adfs", "https://login.azs/foo"])
   ...
   authority = "https://contoso.com/adfs"  # Assuming your app will use this
   app1 = PublicClientApplication(
       "client_id",
       authority=authority,
       # Conditionally disable Instance Discovery for known authorities
       instance_discovery=authority not in known_authorities,
       )

Als u niet van tevoren bepaalde autoriteiten kent, maar toch wilt dat MSAL een instantie accepteert die u wilt verstrekken, kunt u een False onvoorwaardelijke instantiedetectie uitschakelen.

Nieuw in versie 1.19.0.

Default value: None
allow_broker
<xref:boolean>

Deprecated. Gebruik in plaats daarvan enable_broker_on_windows.

Default value: None
enable_pii_log
<xref:boolean>

Wanneer deze functie is ingeschakeld, kunnen logboeken PII (Persoonsgegevens) bevatten. Dit kan handig zijn bij het oplossen van brokergedrag. Het standaardgedrag is Onwaar.

Nieuw in versie 1.24.0.

Default value: None
oidc_authority
str

Toegevoegd in versie 1.28.0: het is een URL die een OpenID Connect-instantie (OIDC) van de indeling https://contoso.com/tenantidentificeert. MSAL voegt '.well-known/openid-configuration' toe aan de instantie en haalt de OIDC-metagegevens daar op om de eindpunten te achterhalen.

Opmerking: Broker wordt NIET gebruikt voor OIDC-instantie.

Default value: None

Methoden

acquire_token_by_auth_code_flow

Valideer het verificatieantwoord dat wordt omgeleid en haal tokens op.

Het biedt automatisch niet-beveiliging.

acquire_token_by_authorization_code

De tweede helft van de autorisatiecodetoestemming.

acquire_token_by_refresh_token

Verwerf token(s) op basis van een vernieuwingstoken (RT) dat elders is verkregen.

U gebruikt deze methode alleen als u oude RT's van elders hebt en u deze nu wilt migreren naar MSAL. Als u deze methode aanroept, worden nieuwe tokens automatisch opgeslagen in MSAL.

U hoeft deze methode niet te gebruiken als u al MSAL gebruikt. MSAL onderhoudt RT automatisch in de tokencache en een toegangstoken kan worden opgehaald wanneer u aanroept acquire_token_silent.

acquire_token_by_username_password

Hiermee haalt u een token op voor een bepaalde resource via gebruikersreferenties.

Zie deze pagina voor beperkingen van de wachtwoordstroom voor gebruikersnaam. https://github.com/AzureAD/microsoft-authentication-library-for-python/wiki/Username-Password-Authentication

[Afgeschaft] Deze API is afgeschaft voor openbare clientstromen en wordt verwijderd in een toekomstige release. Gebruik in plaats daarvan een veiligere stroom. Migratiehandleiding: https://aka.ms/msal-ropc-migration

acquire_token_silent

Een toegangstoken verkrijgen voor een bepaald account, zonder tussenkomst van de gebruiker.

Het heeft dezelfde parameters als de acquire_token_silent_with_error. Het verschil is het gedrag van de retourwaarde. Met deze methode wordt de lege cache en de vernieuwingsfout gecombineerd tot één retourwaarde, Geen. Als uw app niet belangrijk is voor de exacte fout bij het vernieuwen van tokens tijdens het opzoeken van de tokencache, is deze methode eenvoudiger en aanbevolen.

acquire_token_silent_with_error

Een toegangstoken verkrijgen voor een bepaald account, zonder tussenkomst van de gebruiker.

Dit wordt gedaan door een geldig toegangstoken te vinden uit de cache of door een geldig vernieuwingstoken uit de cache te vinden en dit vervolgens automatisch te gebruiken om een nieuw toegangstoken in te wisselen.

Met deze methode wordt de cache leeg gemaakt van de fout bij het vernieuwen van tokens. Als uw app zorgt voor de exacte fout bij het vernieuwen van tokens tijdens het opzoeken van de tokencache, is deze methode geschikt. Anders wordt de andere methode acquire_token_silent aanbevolen.

get_accounts

Haal een lijst op met accounts die zich eerder hebben aangemeld, bijvoorbeeld in de cache.

Een account kan later worden gebruikt acquire_token_silent om de tokens te vinden.

get_authorization_request_url

Hiermee maakt u een URL om een autorisatiecodetoekenning te starten.

initiate_auth_code_flow

Start een verificatiecodestroom.

Later wanneer het antwoord uw redirect_uri bereikt, kunt u de acquire_token_by_auth_code_flow verificatie/autorisatie voltooien.

is_pop_supported

Retourneert True als deze client proof-of-possession-toegangstoken ondersteunt.

remove_account

Meld me af en vergeet me uit de tokencache

acquire_token_by_auth_code_flow

Valideer het verificatieantwoord dat wordt omgeleid en haal tokens op.

Het biedt automatisch niet-beveiliging.

acquire_token_by_auth_code_flow(auth_code_flow, auth_response, scopes=None, **kwargs)

Parameters

Name Description
auth_code_flow
Vereist

Hetzelfde dicteren geretourneerd door initiate_auth_code_flow.

auth_response
Vereist

Een dicteerfunctie van de queryreeks die is ontvangen van de verificatieserver.

scopes

Bereiken die zijn aangevraagd voor toegang tot een beveiligde API (een resource).

Meestal kunt u het leeg laten.

Als u om toestemming van de gebruiker voor meerdere resources hebt gevraagd, moet u hier een subset opgeven van wat u nodig hebt.initiate_auth_code_flow

OAuth2 is voornamelijk ontworpen voor singleton-services, waarbij tokens altijd zijn bedoeld voor dezelfde resource en de enige wijzigingen zich in de bereiken bevinden. In Microsoft Entra kunnen tokens worden uitgegeven voor meerdere resources van derden. U kunt autorisatiecode voor meerdere resources vragen, maar wanneer u deze inwisselt, is het token voor slechts één beoogde ontvanger, die doelgroep wordt genoemd. De ontwikkelaar moet dus een bereik opgeven, zodat we het token kunnen beperken dat voor de bijbehorende doelgroep wordt uitgegeven.

Default value: None

Retouren

Type Description
  • Een dict met 'access_token' en/of 'id_token' is onder andere afhankelijk van het bereik dat is gebruikt. (Zie https://tools.ietf.org/html/rfc6749#section-5.1)

  • Een dict met 'error', optioneel 'error_description', 'error_uri'. (Het is dit of dat)

  • De meeste gegevensfouten aan de clientzijde leiden tot een ValueError-uitzondering. Het gebruikspatroon kan dus zonder protocoldetails zijn:

    
       def authorize():  # A controller in a web app
           try:
               result = msal_app.acquire_token_by_auth_code_flow(
                   session.get("flow", {}), request.args)
               if "error" in result:
                   return render_template("error.html", result)
               use(result)  # Token(s) are available in result and cache
           except ValueError:  # Usually caused by CSRF
               pass  # Simply ignore them
           return redirect(url_for("index"))
    

acquire_token_by_authorization_code

De tweede helft van de autorisatiecodetoestemming.

acquire_token_by_authorization_code(code, scopes, redirect_uri=None, nonce=None, claims_challenge=None, **kwargs)

Parameters

Name Description
code
Vereist

De autorisatiecode die wordt geretourneerd door de autorisatieserver.

scopes
Vereist

(Vereist) Bereiken die zijn aangevraagd voor toegang tot een beveiligde API (een resource).

Als u toestemming van de gebruiker voor meerdere resources hebt aangevraagd, wilt u hier meestal een subset opgeven van wat u nodig hebt in AuthCode.

OAuth2 is voornamelijk ontworpen voor singleton-services, waarbij tokens altijd zijn bedoeld voor dezelfde resource en de enige wijzigingen zich in de bereiken bevinden. In Microsoft Entra kunnen tokens worden uitgegeven voor meerdere resources van derden. U kunt autorisatiecode voor meerdere resources vragen, maar wanneer u deze inwisselt, is het token voor slechts één beoogde ontvanger, die doelgroep wordt genoemd. De ontwikkelaar moet dus een bereik opgeven, zodat we het token kunnen beperken dat voor de bijbehorende doelgroep wordt uitgegeven.

nonce

Als u een nonce hebt opgegeven bij het aanroepen get_authorization_request_url, moet dezelfde nonce hier ook worden opgegeven, zodat we deze valideren. Er wordt een uitzondering gegenereerd als de nonce in id-token niet overeenkomt.

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

Verwerf token(s) op basis van een vernieuwingstoken (RT) dat elders is verkregen.

U gebruikt deze methode alleen als u oude RT's van elders hebt en u deze nu wilt migreren naar MSAL. Als u deze methode aanroept, worden nieuwe tokens automatisch opgeslagen in MSAL.

U hoeft deze methode niet te gebruiken als u al MSAL gebruikt. MSAL onderhoudt RT automatisch in de tokencache en een toegangstoken kan worden opgehaald wanneer u aanroept acquire_token_silent.

acquire_token_by_refresh_token(refresh_token, scopes, **kwargs)

Parameters

Name Description
refresh_token
Vereist
str

Het oude vernieuwingstoken, als een tekenreeks.

scopes
Vereist

De bereiken worden gekoppeld aan deze oude RT. Elk bereik moet de indeling Microsoft identity platform (v2) hebben. Zie Bereiken die geen resources zijn.

Retouren

Type Description
  • Een dict bevat 'fout' en een aantal andere sleutels, wanneer er een fout is opgetreden.

  • Een dict bevat geen foutsleutel, betekent dat de migratie is geslaagd.

acquire_token_by_username_password

Hiermee haalt u een token op voor een bepaalde resource via gebruikersreferenties.

Zie deze pagina voor beperkingen van de wachtwoordstroom voor gebruikersnaam. https://github.com/AzureAD/microsoft-authentication-library-for-python/wiki/Username-Password-Authentication

[Afgeschaft] Deze API is afgeschaft voor openbare clientstromen en wordt verwijderd in een toekomstige release. Gebruik in plaats daarvan een veiligere stroom. Migratiehandleiding: https://aka.ms/msal-ropc-migration

acquire_token_by_username_password(username, password, scopes, claims_challenge=None, auth_scheme=None, **kwargs)

Parameters

Name Description
username
Vereist
str

Meestal een UPN in de vorm van een e-mailadres.

password
Vereist
str

Het wachtwoord.

scopes
Vereist

Bereiken die zijn aangevraagd voor toegang tot een beveiligde API (een resource).

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

Een toegangstoken verkrijgen voor een bepaald account, zonder tussenkomst van de gebruiker.

Het heeft dezelfde parameters als de acquire_token_silent_with_error. Het verschil is het gedrag van de retourwaarde. Met deze methode wordt de lege cache en de vernieuwingsfout gecombineerd tot één retourwaarde, Geen. Als uw app niet belangrijk is voor de exacte fout bij het vernieuwen van tokens tijdens het opzoeken van de tokencache, is deze methode eenvoudiger en aanbevolen.

acquire_token_silent(scopes, account, authority=None, force_refresh=False, claims_challenge=None, auth_scheme=None, **kwargs)

Parameters

Name Description
scopes
Vereist
account
Vereist
authority
Default value: None
force_refresh
Default value: False
claims_challenge
Default value: None
auth_scheme
Default value: None

Retouren

Type Description
  • Een dict zonder foutsleutel en bevat meestal een 'access_token'-sleutel als het opzoeken van de cache is geslaagd.

  • Geen wanneer het opzoeken van de cache geen token oplevert.

acquire_token_silent_with_error

Een toegangstoken verkrijgen voor een bepaald account, zonder tussenkomst van de gebruiker.

Dit wordt gedaan door een geldig toegangstoken te vinden uit de cache of door een geldig vernieuwingstoken uit de cache te vinden en dit vervolgens automatisch te gebruiken om een nieuw toegangstoken in te wisselen.

Met deze methode wordt de cache leeg gemaakt van de fout bij het vernieuwen van tokens. Als uw app zorgt voor de exacte fout bij het vernieuwen van tokens tijdens het opzoeken van de tokencache, is deze methode geschikt. Anders wordt de andere methode acquire_token_silent aanbevolen.

acquire_token_silent_with_error(scopes, account, authority=None, force_refresh=False, claims_challenge=None, auth_scheme=None, **kwargs)

Parameters

Name Description
scopes
Vereist

(Vereist) Bereiken die zijn aangevraagd voor toegang tot een beveiligde API (een resource).

account
Vereist

(Vereist) Een van de accountobjecten geretourneerd door get_accounts. Vanaf MSAL Python 1,23 wordt een None invoer een NO-OP en wordt deze altijd geretourneerdNone.

force_refresh

Als waar is, wordt het opzoeken van het Toegangstoken overgeslagen en wordt geprobeerd een vernieuwingstoken te vinden om een nieuw toegangstoken te verkrijgen.

Default value: False
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
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
authority
Default value: None

Retouren

Type Description
  • Een dict zonder foutsleutel en bevat meestal een 'access_token'-sleutel als het opzoeken van de cache is geslaagd.

  • Geen wanneer er gewoon geen token in de cache is.

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

get_accounts

Haal een lijst op met accounts die zich eerder hebben aangemeld, bijvoorbeeld in de cache.

Een account kan later worden gebruikt acquire_token_silent om de tokens te vinden.

get_accounts(username=None)

Parameters

Name Description
username

Filter alleen accounts met deze gebruikersnaam. Hoofdlettergevoelig.

Default value: None

Retouren

Type Description

Een lijst met accountobjecten. Elk account is een dict. Voorlopig documenteer we alleen het veld 'gebruikersnaam'. Uw app kan ervoor kiezen om deze informatie weer te geven aan de eindgebruiker en de gebruiker een van zijn/haar accounts te laten kiezen om door te gaan.

get_authorization_request_url

Hiermee maakt u een URL om een autorisatiecodetoekenning te starten.

get_authorization_request_url(scopes, login_hint=None, state=None, redirect_uri=None, response_type='code', prompt=None, nonce=None, domain_hint=None, claims_challenge=None, **kwargs)

Parameters

Name Description
scopes
Vereist

(Vereist) Bereiken die zijn aangevraagd voor toegang tot een beveiligde API (een resource).

state
str

Aanbevolen door OAuth2 voor CSRF-beveiliging.

Default value: None
login_hint
str

Id van de gebruiker. Over het algemeen een USER Principal Name (UPN).

Default value: None
redirect_uri
str

Adres waarnaar moet worden teruggestuurd bij ontvangst van een reactie van de autoriteit.

Default value: None
response_type
str

De standaardwaarde is 'code' voor een OAuth2-autorisatiecodetoestemming.

U kunt andere inhoud gebruiken, zoals 'id_token' of 'token', waarmee een impliciete toekenning wordt geactiveerd, maar dat wordt niet aanbevolen.

Default value: code
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
nonce

Een cryptografisch willekeurige waarde die wordt gebruikt om herhalingsaanvallen te beperken. Zie ook OIDC specificaties.

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

Retouren

Type Description

De autorisatie-URL als een tekenreeks.

initiate_auth_code_flow

Start een verificatiecodestroom.

Later wanneer het antwoord uw redirect_uri bereikt, kunt u de acquire_token_by_auth_code_flow verificatie/autorisatie voltooien.

initiate_auth_code_flow(scopes, redirect_uri=None, state=None, prompt=None, login_hint=None, domain_hint=None, claims_challenge=None, max_age=None, response_mode=None)

Parameters

Name Description
scopes
Vereist

Het is een lijst met hoofdlettergevoelige tekenreeksen.

redirect_uri
str

Optional. Als dit niet is opgegeven, wordt de vooraf geregistreerde server gebruikt.

Default value: None
state
str

Een ondoorzichtige waarde die door de client wordt gebruikt om de status tussen de aanvraag en callback te behouden. Als deze bibliotheek afwezig is, wordt er automatisch een intern gegenereerd.

Default value: None
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
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
response_mode
str

OPTIONEEL. Hiermee geeft u de methode op waarmee antwoordparameters moeten worden geretourneerd. De standaardwaarde is gelijk aan query, wat nog steeds veilig genoeg was in MSAL Python (omdat MSAL Python tokens niet overbrengt via de queryparameter in de eerste plaats). Voor nog betere beveiliging raden we u aan de waarde form_postte gebruiken. In de modus form_post worden antwoordparameters gecodeerd als HTML-formulierwaarden die worden verzonden via de HTTP POST-methode en gecodeerd in de hoofdtekst met behulp van de indeling application/x-www-form-urlencoded. Geldige waarden kunnen 'form_post' zijn voor HTTP POST voor callback-URI of 'query' (de standaardinstelling) voor HTTP GET met parameters die zijn gecodeerd in de querytekenreeks. Meer informatie over mogelijke waarden hier https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#ResponseModes en hier https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html#FormPostResponseMode

Note

U moet uw webframework zo configureren dat form_post antwoorden worden geaccepteerd in plaats van queryantwoorden.

Hoewel deze parameter nog steeds werkt, wordt deze verwijderd in een toekomstige versie.

Het gebruik van op query's gebaseerde antwoordmodi is minder veilig en moet worden vermeden.

Default value: None
claims_challenge
Default value: None

Retouren

Type Description

De verificatiecodestroom. Het is een dict in deze vorm:


   {
       "auth_uri": "https://...",  // Guide user to visit this
       "state": "...",  // You may choose to verify it by yourself,
                        // or just let acquire_token_by_auth_code_flow()
                        // do that for you.
       "...": "...",  // Everything else are reserved and internal
   }

De beller verwacht het volgende:

  1. Op een of andere manier slaat u deze inhoud op, meestal in de huidige sessie,

  2. de eindgebruiker (d.w.w.v. resource-eigenaar) te begeleiden om die auth_uri te bezoeken,

  3. en geef deze dict en volgende verificatiereactie vervolgens door naar acquire_token_by_auth_code_flow.

is_pop_supported

Retourneert True als deze client proof-of-possession-toegangstoken ondersteunt.

is_pop_supported()

remove_account

Meld me af en vergeet me uit de tokencache

remove_account(account)

Parameters

Name Description
account
Vereist

Kenmerken

ACQUIRE_TOKEN_BY_AUTHORIZATION_CODE_ID

ACQUIRE_TOKEN_BY_AUTHORIZATION_CODE_ID = '832'

ACQUIRE_TOKEN_BY_DEVICE_FLOW_ID

ACQUIRE_TOKEN_BY_DEVICE_FLOW_ID = '622'

ACQUIRE_TOKEN_BY_REFRESH_TOKEN

ACQUIRE_TOKEN_BY_REFRESH_TOKEN = '85'

ACQUIRE_TOKEN_BY_USERNAME_PASSWORD_ID

ACQUIRE_TOKEN_BY_USERNAME_PASSWORD_ID = '301'

ACQUIRE_TOKEN_FOR_CLIENT_ID

ACQUIRE_TOKEN_FOR_CLIENT_ID = '730'

ACQUIRE_TOKEN_INTERACTIVE

ACQUIRE_TOKEN_INTERACTIVE = '169'

ACQUIRE_TOKEN_ON_BEHALF_OF_ID

ACQUIRE_TOKEN_ON_BEHALF_OF_ID = '523'

ACQUIRE_TOKEN_SILENT_ID

ACQUIRE_TOKEN_SILENT_ID = '84'

ATTEMPT_REGION_DISCOVERY

ATTEMPT_REGION_DISCOVERY = True

DISABLE_MSAL_FORCE_REGION

DISABLE_MSAL_FORCE_REGION = False

GET_ACCOUNTS_ID

GET_ACCOUNTS_ID = '902'

REMOVE_ACCOUNT_ID

REMOVE_ACCOUNT_ID = '903'