ClientApplication Klass

Du använder vanligtvis inte den här klassen direkt. Använd dess underklasser i stället: PublicClientApplication och ConfidentialClientApplication.

Skapa en instans av programmet.

Konstruktor

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)

Parametrar

Name Description
client_id
Obligatorisk
str

Din app har en client_id när du har registrerat den på Microsoft Entra administrationscenter.

client_credential

För PublicClientApplicationanvänder du Ingen här.

För ConfidentialClientApplicationstöder den många olika indataformat för olika scenarier.

Stöd för användning av en klienthemlighet. Mata bara in en sträng, till exempel "your client secret".

Stöd för användning av ett certifikat i X.509-format (.pem)Deprecated eftersom det använder SHA-1 tumavtryck,

om du inte fortfarande använder ADFS som endast stöder SHA-1-tumavtryck. Använd pfx-alternativet som dokumenteras senare på den här sidan. Mata in i en diktamen i det här formuläret:


   {
       "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 kräver en "private_key" i PEM-format. Om certifikatet är i PKCS12-format (.pfx) kan du konvertera det till X.509-format (.pem) med openssl pkcs12 -in file.pfx -out file.pem -nodes. Tumavtrycket är tillgängligt i appens registrering i Azure Portal. Du kan också beräkna tumavtrycket. public_certificate (valfritt) är ett offentligt nyckelcertifikat som skickas via JWT-huvudet x5c. Detta är användbart när du använder autentisering med ämnesnamn/utfärdare , vilket är en metod för enklare certifikatrotation. Enligt specifikationerna är "certifikatet som innehåller den offentliga nyckeln som motsvarar nyckeln som används för att signera JWS digitalt det första certifikatet. Detta kan följas av ytterligare certifikat, där varje efterföljande certifikat är det som används för att certifiera det tidigare." Certifikatutfärdaren kan dock använda en annan ordning. Så om ditt försök får ett fel AADSTS700027 – "Det angivna signaturvärdet matchade inte det förväntade signaturvärdet" kan du försöka använda endast lövcertifikatet (i PEM/str-format) i stället.

Stöd för rå försäkran som erhållits från någon annanstanssom lagts till i version 1.13.0:

Det kan också vara en helt försignerad försäkran som du har sammanställt själv. Skicka bara en container som bara innehåller nyckeln "client_assertion", så här:


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

Stöd för läsning av klientcertifikat från PFX-filerDen här användningen använder automatiskt SHA-256-tumavtryck för certifikatet. Har lagts till i version 1.29.0:

Mata in i en ordlista som innehåller sökvägen till en PFX-fil:


   {
       "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)",
   }

Följande kommando genererar en .pfx-fil från din .key- och .pem-fil:


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

Ämnesnamn/utfärdarautentisering är en metod för att möjliggöra enklare certifikatrotation. Om pfx-filen innehåller både den privata nyckeln och det offentliga certifikatet kan du välja ämnesnamn/utfärdarautentisering genom att ange "public_certificate" till True.

Standardvärde: None
client_claims

Har lagts till i version 0.5.0: Det är en ordlista med extra anspråk som skulle signeras av den här ConfidentialClientApplication privata nyckeln. Du kan till exempel använda {"client_ip": "x.x.x.x"}. Du kan också åsidosätta något av följande standardanspråk:


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

En URL som identifierar en tokenutfärdare. Det bör vara av formatet https://login.microsoftonline.com/your_tenant Som standard använder vi https://login.microsoftonline.com/common

Har ändrats i version 1.17: Du kan också använda fördefinierad konstant och en byggare som den här:


   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, ...)
Standardvärde: None
validate_authority

(valfritt) Aktiverar eller inaktiverar verifiering av utfärdare. Den här parametern är som standard true.

Standardvärde: True
token_cache

Anger den tokencache som används av den här ClientApplication-instansen. Som standard skapas och används en minnesintern cache.

Standardvärde: None
http_client

(valfritt) Din implementering av den abstrakta klassen HttpClient <msal.oauth2cli.http.http_client> Standardinställningar för en sessionsinstans för begäranden. Eftersom MSAL 1.11.0 konfigureras standardsessionen för att försöka utföra ett nytt försök med anslutningsfel. Om du tillhandahåller egna http_client är det din http_client skyldighet att bestämma om du vill göra ett nytt försök.

Standardvärde: None
verify

(valfritt) Den skickas till verifieringsparametern i biblioteket för underliggande begäranden Detta gäller inte om du har valt att skicka din egen Http-klient

Standardvärde: True
proxies

(valfritt) Den skickas till proxyparametern i biblioteket för underliggande begäranden Detta gäller inte om du har valt att skicka din egen Http-klient

Standardvärde: None
timeout

(valfritt) Den skickas till timeout-parametern i biblioteket för underliggande begäranden Detta gäller inte om du har valt att skicka din egen Http-klient

Standardvärde: None
app_name

(valfritt) Du kan ange ditt programnamn för Microsoft telemetriändamål. Standardvärdet är Ingen, innebär att det inte skickas till Microsoft.

Standardvärde: None
app_version

(valfritt) Du kan ange din programversion för Microsoft telemetriändamål. Standardvärdet är Ingen, innebär att det inte skickas till Microsoft.

Standardvärde: None
client_capabilities

(valfritt) Tillåter konfiguration av en eller flera klientfunktioner, t.ex. ["CP1"].

Klientfunktionen är avsedd att informera Microsofts identitetsplattform (STS) om vad den här klienten är kapabel till, så att STS kan välja att aktivera vissa funktioner. Om klienten till exempel kan hantera anspråksutmaningar kan STS utfärda CAE-åtkomsttoken (Continuous Access Evaluation) till resurser, med vetskapen om att klienten kommer att kunna hantera dessa utmaningar när resursen genererar en anspråksutmaning .

Implementeringsinformation: Klientfunktionen implementeras med hjälp av parametern "anspråk" på kabeln för tillfället. MSAL kombinerar dem i anspråksparametern som du senare anger via en av begäran om att hämta token.

Standardvärde: None
azure_region
str

(valfritt) Instruerar MSAL att använda entra regional token-tjänsten. Den här äldre funktionen är endast tillgänglig för program från första part. Endast acquire_token_for_client() stöds.

Stöder 4 värden:

  1. azure_region=None – Det här standardvärdet innebär att ingen region har konfigurerats. MSAL använder den region som definierats i env var MSAL_FORCE_REGION.

  2. azure_region="some_region" – vilket innebär att den angivna regionen används.

  3. azure_region=True – vilket innebär att MSAL försöker identifiera regionen automatiskt. Detta rekommenderas inte.

  4. azure_region=False – vilket innebär att MSAL inte använder någon region.

Note

Automatisk identifiering av regioner har testats på virtuella datorer och på Azure Functions. Det är opålitligt.

Program som använder det här alternativet bör konfigurera en kort tidsgräns.

Mer information och för värdena för regionsträngen

Se https://dotnet.territoriali.olinfo.it/entra/msal/dotnet/resources/region-discovery-troubleshooting

Ny i version 1.12.0.

Standardvärde: None
exclude_scopes

(valfritt) Tidigare har MSAL-hårdkoder offline_access omfång, vilket skulle göra det möjligt för din app att ha långvarig åtkomst till användarens data. Om det är onödigt eller oönskat för din app kan du nu använda den här parametern för att ange en undantagslista med omfång, till exempel exclude_scopes = ["offline_access"].

Standardvärde: None
http_cache

MSAL har länge cachelagra token i token_cache. Nyligen introducerade MSAL också ett koncept för http_cache, genom att automatiskt cachelagra en viss begränsad mängd http-svar som inte är token, så att långlivadePublicClientApplication och ConfidentialClientApplication skulle vara mer högpresterande och dynamiska i vissa situationer.

Den här http_cache parametern accepterar valfritt diktatörsliknande objekt. Om det inte anges använder MSAL en minnesintern diktering.

Om din app är en kommandoradsapp (CLI) vill du spara dina http_cache mellan olika CLI-körningar. Den bevarade filens format kan ändras på grund av, men inte begränsat till, instabilt protokoll, så implementeringen tolererar oväntade inläsningsfel. Följande recept visar ett sätt att göra det:


   # 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"], ...)

Innehållet inuti http_cache är billigt att få. Du behöver inte dela dem mellan olika appar.

Innehållet inuti http_cache innehåller inga token eller personligt identifierbar information (PII). Kryptering är onödigt.

Nytt i version 1.16.0.

Standardvärde: None
instance_discovery
<xref:boolean>

Tidigare skulle MSAL ansluta till en central slutpunkt som finns vid https://login.microsoftonline.com för att hämta vissa metadata, särskilt när du använder en okänd auktoritet. Det här beteendet kallas instansidentifiering.

Den här parametern är som standard Ingen, vilket aktiverar instansidentifieringen.

Om du känner till vissa myndigheter som du tillåter msal att arbeta med as-is, utan att ta med någon instansidentifiering, är det rekommenderade mönstret:


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

Om du inte känner till vissa myndigheter i förväg, men ändå vill att MSAL ska godkänna alla utfärdare som du anger, kan du använda en False för att ovillkorligt inaktivera identifiering av instanser.

Nytt i version 1.19.0.

Standardvärde: None
allow_broker
<xref:boolean>

Deprecated. Använd enable_broker_on_windows i stället.

Standardvärde: None
enable_pii_log
<xref:boolean>

När det är aktiverat kan loggarna innehålla PII (personlig identifierbar information). Detta kan vara användbart vid felsökning av koordinatorbeteenden. Standardbeteendet är False.

Nytt i version 1.24.0.

Standardvärde: None
oidc_authority
str

Har lagts till i version 1.28.0: Det är en URL som identifierar en OpenID Connect-utfärdare (OIDC) i formatet https://contoso.com/tenant. MSAL lägger till ".well-known/openid-configuration" till utfärdaren och hämtar OIDC-metadata därifrån för att ta reda på slutpunkterna.

Obs! Broker används INTE för OIDC-utfärdare.

Standardvärde: None

Metoder

acquire_token_by_auth_code_flow

Verifiera autentiseringssvaret som omdirigeras tillbaka och hämta token.

Det ger automatiskt nonce-skydd.

acquire_token_by_authorization_code

Den andra halvan av auktoriseringskoden beviljar.

acquire_token_by_refresh_token

Hämta token(er) baserat på en uppdateringstoken (RT) som hämtats från någon annanstans.

Du använder bara den här metoden när du har gamla RT från andra platser och nu vill migrera dem till MSAL. Om du anropar den här metoden sparas nya token automatiskt i MSAL.

Du behöver INTE använda den här metoden om du redan använder MSAL. MSAL underhåller RT automatiskt i sin tokencache och en åtkomsttoken kan hämtas när du anropar acquire_token_silent.

acquire_token_by_username_password

Hämtar en token för en viss resurs via användarautentiseringsuppgifter.

På den här sidan finns begränsningar för användarnamnets lösenordsflöde. https://github.com/AzureAD/microsoft-authentication-library-for-python/wiki/Username-Password-Authentication

[Inaktuell] Det här API:et är inaktuellt för offentliga klientflöden och tas bort i en framtida version. Använd ett säkrare flöde i stället. Migreringsguide: https://aka.ms/msal-ropc-migration

acquire_token_silent

Hämta en åtkomsttoken för ett visst konto, utan användarinteraktion.

Den har samma parametrar som acquire_token_silent_with_error. Skillnaden är beteendet för returvärdet. Den här metoden kombinerar cachefelet tomt och uppdaterar till ett returvärde, Ingen. Om din app inte bryr sig om det exakta tokenuppdateringsfelet under tokencachesökningen är den här metoden enklare och rekommenderas.

acquire_token_silent_with_error

Hämta en åtkomsttoken för ett visst konto, utan användarinteraktion.

Det görs antingen genom att hitta en giltig åtkomsttoken från cacheminnet eller genom att hitta en giltig uppdateringstoken från cacheminnet och sedan automatiskt använda den för att lösa in en ny åtkomsttoken.

Den här metoden skiljer cachen tom från tokenuppdateringsfel. Om din app bryr sig om det exakta tokenuppdateringsfelet under tokencachesökningen är den här metoden lämplig. Annars rekommenderas den andra metoden acquire_token_silent .

get_accounts

Hämta en lista över konton som tidigare loggat in, dvs. finns i cacheminnet.

Ett konto kan senare användas i acquire_token_silent för att hitta dess token.

get_authorization_request_url

Skapar en URL så att du kan starta ett beviljande av auktoriseringskod.

initiate_auth_code_flow

Initiera ett autentiseringskodflöde.

Senare när svaret når din redirect_uri kan du använda acquire_token_by_auth_code_flow för att slutföra autentiseringen/auktoriseringen.

is_pop_supported

Returnerar Sant om den här klienten stöder åtkomsttoken för bevis för innehav.

remove_account

Logga ut mig och glöm mig från tokencachen

acquire_token_by_auth_code_flow

Verifiera autentiseringssvaret som omdirigeras tillbaka och hämta token.

Det ger automatiskt nonce-skydd.

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

Parametrar

Name Description
auth_code_flow
Obligatorisk

Samma diktat som returnerades av initiate_auth_code_flow.

auth_response
Obligatorisk

En diktering av frågesträngen som tagits emot från autentiseringsservern.

scopes

Omfång som begärs för åtkomst till ett skyddat API (en resurs).

För det mesta kan du lämna den tom.

Om du har begärt användarmedgivande för flera resurser måste du här ange en delmängd av det du behövde i initiate_auth_code_flow.

OAuth2 utformades främst för singleton-tjänster, där token alltid är avsedda för samma resurs och de enda ändringarna finns i omfången. I Microsoft Entra kan token utfärdas för flera resurser från tredje part. Du kan be om auktoriseringskod för flera resurser, men när du löser in den är token endast för en avsedd mottagare, kallad målgrupp. Så utvecklaren måste ange ett omfång så att vi kan begränsa att token utfärdas för motsvarande målgrupp.

Standardvärde: None

Returer

Typ Description
  • En diktering som innehåller "access_token" och/eller "id_token", bland annat, beror på vilket omfång som användes. (Se https://tools.ietf.org/html/rfc6749#section-5.1)

  • En dikta som innehåller "error", valfritt "error_description", "error_uri". (Det är antingen det ena eller det andra)

  • De flesta datafel på klientsidan skulle resultera i ValueError-undantag. Användningsmönstret kan därför vara utan protokollinformation:

    
       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

Den andra halvan av auktoriseringskoden beviljar.

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

Parametrar

Name Description
code
Obligatorisk

Auktoriseringskoden som returnerades från auktoriseringsservern.

scopes
Obligatorisk

(Krävs) Omfång som begärs för åtkomst till ett skyddat API (en resurs).

Om du har begärt användarmedgivande för flera resurser vill du här vanligtvis ange en delmängd av det du behövde i AuthCode.

OAuth2 utformades främst för singleton-tjänster, där token alltid är avsedda för samma resurs och de enda ändringarna finns i omfången. I Microsoft Entra kan token utfärdas för flera resurser från tredje part. Du kan be om auktoriseringskod för flera resurser, men när du löser in den är token endast för en avsedd mottagare, kallad målgrupp. Så utvecklaren måste ange ett omfång så att vi kan begränsa att token utfärdas för motsvarande målgrupp.

nonce

Om du angav en nonce när du anropade get_authorization_request_urlbör samma nonce också anges här, så att vi verifierar det. Ett undantag utlöses om nonce i id-token matchar fel.

Standardvärde: None
claims_challenge

Den claims_challenge parametern begär specifika anspråk som begärs av resursprovidern i form av ett claims_challenge-direktiv i rubriken www-authenticate som ska returneras från UserInfo-slutpunkten och/eller i ID-token och/eller åtkomsttoken. Det är en sträng av ett JSON-objekt som innehåller listor över anspråk som begärs från dessa platser.

Standardvärde: None
redirect_uri
Standardvärde: None

Returer

Typ Description

En diktering som representerar json-svaret från Microsoft Entra:

  • Ett lyckat svar skulle innehålla nyckeln "access_token",

  • ett felsvar skulle innehålla "fel" och vanligtvis "error_description".

acquire_token_by_refresh_token

Hämta token(er) baserat på en uppdateringstoken (RT) som hämtats från någon annanstans.

Du använder bara den här metoden när du har gamla RT från andra platser och nu vill migrera dem till MSAL. Om du anropar den här metoden sparas nya token automatiskt i MSAL.

Du behöver INTE använda den här metoden om du redan använder MSAL. MSAL underhåller RT automatiskt i sin tokencache och en åtkomsttoken kan hämtas när du anropar acquire_token_silent.

acquire_token_by_refresh_token(refresh_token, scopes, **kwargs)

Parametrar

Name Description
refresh_token
Obligatorisk
str

Den gamla uppdateringstoken, som en sträng.

scopes
Obligatorisk

Omfången associeras med den gamla RT-filen. Varje omfång måste ha formatet Microsofts identitetsplattform (v2). Se Omfång, inte resurser.

Returer

Typ Description
  • En diktering innehåller "fel" och några andra nycklar, när felet inträffade.

  • En diktering innehåller ingen "felnyckel" innebär att migreringen lyckades.

acquire_token_by_username_password

Hämtar en token för en viss resurs via användarautentiseringsuppgifter.

På den här sidan finns begränsningar för användarnamnets lösenordsflöde. https://github.com/AzureAD/microsoft-authentication-library-for-python/wiki/Username-Password-Authentication

[Inaktuell] Det här API:et är inaktuellt för offentliga klientflöden och tas bort i en framtida version. Använd ett säkrare flöde i stället. Migreringsguide: https://aka.ms/msal-ropc-migration

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

Parametrar

Name Description
username
Obligatorisk
str

Vanligtvis ett UPN i form av en e-postadress.

password
Obligatorisk
str

Lösenordet.

scopes
Obligatorisk

Omfång som begärs för åtkomst till ett skyddat API (en resurs).

claims_challenge

Den claims_challenge parametern begär specifika anspråk som begärs av resursprovidern i form av ett claims_challenge-direktiv i rubriken www-authenticate som ska returneras från UserInfo-slutpunkten och/eller i ID-token och/eller åtkomsttoken. Det är en sträng av ett JSON-objekt som innehåller listor över anspråk som begärs från dessa platser.

Standardvärde: None
auth_scheme

Du kan ange ett msal.auth_scheme.PopAuthScheme objekt så att MSAL får en POP-token (Proof-of-Possession) åt dig.

Ny i version 1.26.0.

Standardvärde: None

Returer

Typ Description

En diktering som representerar json-svaret från Microsoft Entra:

  • Ett lyckat svar skulle innehålla nyckeln "access_token",

  • ett felsvar skulle innehålla "fel" och vanligtvis "error_description".

acquire_token_silent

Hämta en åtkomsttoken för ett visst konto, utan användarinteraktion.

Den har samma parametrar som acquire_token_silent_with_error. Skillnaden är beteendet för returvärdet. Den här metoden kombinerar cachefelet tomt och uppdaterar till ett returvärde, Ingen. Om din app inte bryr sig om det exakta tokenuppdateringsfelet under tokencachesökningen är den här metoden enklare och rekommenderas.

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

Parametrar

Name Description
scopes
Obligatorisk
account
Obligatorisk
authority
Standardvärde: None
force_refresh
Standardvärde: False
claims_challenge
Standardvärde: None
auth_scheme
Standardvärde: None

Returer

Typ Description
  • En diktat som inte innehåller någon "felnyckel" och innehåller vanligtvis en "access_token"-nyckel om cachesökningen lyckades.

  • Ingen när cachesökning inte ger en token.

acquire_token_silent_with_error

Hämta en åtkomsttoken för ett visst konto, utan användarinteraktion.

Det görs antingen genom att hitta en giltig åtkomsttoken från cacheminnet eller genom att hitta en giltig uppdateringstoken från cacheminnet och sedan automatiskt använda den för att lösa in en ny åtkomsttoken.

Den här metoden skiljer cachen tom från tokenuppdateringsfel. Om din app bryr sig om det exakta tokenuppdateringsfelet under tokencachesökningen är den här metoden lämplig. Annars rekommenderas den andra metoden acquire_token_silent .

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

Parametrar

Name Description
scopes
Obligatorisk

(Krävs) Omfång som begärs för åtkomst till ett skyddat API (en resurs).

account
Obligatorisk

(Krävs) Ett av kontoobjektet som returneras av get_accounts. Från och med MSAL Python 1.23 blir en None indata en NO-OP och returnerar Nonealltid .

force_refresh

Om sant hoppar det över sökningen av åtkomsttoken och försöker hitta en uppdateringstoken för att hämta en ny åtkomsttoken.

Standardvärde: False
claims_challenge

Den claims_challenge parametern begär specifika anspråk som begärs av resursprovidern i form av ett claims_challenge-direktiv i rubriken www-authenticate som ska returneras från UserInfo-slutpunkten och/eller i ID-token och/eller åtkomsttoken. Det är en sträng av ett JSON-objekt som innehåller listor över anspråk som begärs från dessa platser.

Standardvärde: None
auth_scheme

Du kan ange ett msal.auth_scheme.PopAuthScheme objekt så att MSAL får en POP-token (Proof-of-Possession) åt dig.

Ny i version 1.26.0.

Standardvärde: None
authority
Standardvärde: None

Returer

Typ Description
  • En diktat som inte innehåller någon "felnyckel" och innehåller vanligtvis en "access_token"-nyckel om cachesökningen lyckades.

  • Ingen när det helt enkelt inte finns någon token i cacheminnet.

  • En diktering som innehåller en "felnyckel" när tokenuppdateringen misslyckades.

get_accounts

Hämta en lista över konton som tidigare loggat in, dvs. finns i cacheminnet.

Ett konto kan senare användas i acquire_token_silent för att hitta dess token.

get_accounts(username=None)

Parametrar

Name Description
username

Filtrera endast konton med det här användarnamnet. Skiftlägesokänsligt.

Standardvärde: None

Returer

Typ Description

En lista över kontoobjekt. Varje konto är en dikta. För tillfället dokumenterar vi bara fältet "användarnamn". Din app kan välja att visa informationen för slutanvändaren och låta användaren välja ett av sina konton för att fortsätta.

get_authorization_request_url

Skapar en URL så att du kan starta ett beviljande av auktoriseringskod.

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)

Parametrar

Name Description
scopes
Obligatorisk

(Krävs) Omfång som begärs för åtkomst till ett skyddat API (en resurs).

state
str

Rekommenderas av OAuth2 för CSRF-skydd.

Standardvärde: None
login_hint
str

Identifierare för användaren. Vanligtvis ett UPN (User Principal Name).

Standardvärde: None
redirect_uri
str

Adress som ska returneras när du får ett svar från utfärdaren.

Standardvärde: None
response_type
str

Standardvärdet är "kod" för beviljande av OAuth2-auktoriseringskod.

Du kan använda annat innehåll, till exempel "id_token" eller "token", vilket utlöser ett implicit beviljande, men det rekommenderas inte.

Standardvärde: code
prompt
str

Som standard skickas inget promptvärde, inte ens strängen "none". Du måste uttryckligen ange ett värde. Dess giltiga värden är konstanterna som definieras i <xref:msal.Prompt>.

Standardvärde: None
nonce

Ett kryptografiskt slumpmässigt värde som används för att minimera uppspelningsattacker. Se även OIDC-specifikationer.

Standardvärde: None
domain_hint

Kan vara en av "konsumenter" eller "organisationer" eller din klientdomän "contoso.com". Om den ingår hoppar den över den e-postbaserade identifieringsprocessen som användaren går igenom på inloggningssidan, vilket leder till en något mer effektiviserad användarupplevelse. Mer information om möjliga värden som är tillgängliga i Auth Code Flow-dokumentet och domain_hint dokumentet.

Standardvärde: None
claims_challenge

Den claims_challenge parametern begär specifika anspråk som begärs av resursprovidern i form av ett claims_challenge-direktiv i rubriken www-authenticate som ska returneras från UserInfo-slutpunkten och/eller i ID-token och/eller åtkomsttoken. Det är en sträng av ett JSON-objekt som innehåller listor över anspråk som begärs från dessa platser.

Standardvärde: None

Returer

Typ Description

Auktoriserings-URL:en som en sträng.

initiate_auth_code_flow

Initiera ett autentiseringskodflöde.

Senare när svaret når din redirect_uri kan du använda acquire_token_by_auth_code_flow för att slutföra autentiseringen/auktoriseringen.

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)

Parametrar

Name Description
scopes
Obligatorisk

Det är en lista över skiftlägeskänsliga strängar.

redirect_uri
str

Optional. Om det inte anges använder servern den förregistrerade.

Standardvärde: None
state
str

Ett täckande värde som används av klienten för att upprätthålla tillståndet mellan begäran och återanropet. Om det inte finns genererar det här biblioteket automatiskt ett internt.

Standardvärde: None
prompt
str

Som standard skickas inget promptvärde, inte ens strängen "none". Du måste uttryckligen ange ett värde. Dess giltiga värden är konstanterna som definieras i <xref:msal.Prompt>.

Standardvärde: None
login_hint
str

Optional. Identifierare för användaren. Vanligtvis ett UPN (User Principal Name).

Standardvärde: None
domain_hint

Kan vara en av "konsumenter" eller "organisationer" eller din klientdomän "contoso.com". Om den ingår hoppar den över den e-postbaserade identifieringsprocessen som användaren går igenom på inloggningssidan, vilket leder till en något mer effektiviserad användarupplevelse. Mer information om möjliga värden som är tillgängliga i Auth Code Flow-dokumentet och domain_hint dokumentet.

Standardvärde: None
max_age
int

VALFRI. Maximal autentiseringsålder. Anger den tillåtna förflutna tiden i sekunder sedan den senaste gången End-User autentiserades aktivt. Om den förflutna tiden är större än det här värdet kommer Microsofts identitetsplattform aktivt att autentisera slutanvändaren igen.

MSAL-Python verifierar också automatiskt auth_time i ID-token.

Ny i version 1.15.

Standardvärde: None
response_mode
str

VALFRI. Anger den metod med vilken svarsparametrar ska returneras. Standardvärdet motsvarar query, som fortfarande var tillräckligt säkert i MSAL-Python (eftersom MSAL-Python inte överför token via frågeparametern i första hand). För ännu bättre säkerhet rekommenderar vi att du använder värdet form_post. I läget "form_post" kodas svarsparametrar som HTML-formulärvärden som överförs via HTTP POST-metoden och kodas i brödtexten med hjälp av formatet application/x-www-form-urlencoded. Giltiga värden kan vara antingen "form_post" för HTTP POST till återanrops-URI eller "fråga" (standard) för HTTP GET med parametrar kodade i frågesträngen. Mer information om möjliga värden här https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#ResponseModes och här https://openid.net/specs/oauth-v2-form-post-response-mode-1_0.html#FormPostResponseMode

Note

Du bör konfigurera ditt webbramverk så att det accepterar form_post svar i stället för frågesvar.

Även om den här parametern fortfarande fungerar tas den bort i en framtida version.

Att använda frågebaserade svarslägen är mindre säkert och bör undvikas.

Standardvärde: None
claims_challenge
Standardvärde: None

Returer

Typ Description

Autentiseringskodflödet. Det är en diktamen i det här formuläret:


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

Anroparen förväntas:

  1. på något sätt lagra det här innehållet, vanligtvis i den aktuella sessionen,

  2. användaren (dvs. resursägaren) att besöka den auth_uri,

  3. och sedan vidarebefordra den här diktamen och efterföljande autentiseringssvar till acquire_token_by_auth_code_flow.

is_pop_supported

Returnerar Sant om den här klienten stöder åtkomsttoken för bevis för innehav.

is_pop_supported()

remove_account

Logga ut mig och glöm mig från tokencachen

remove_account(account)

Parametrar

Name Description
account
Obligatorisk

Attribut

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'