[Bug] MSAL.PY's error has no indicator for `InteractionRequired`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- authentication, backend-api-design
Direzione di ricerca
Start by reading the MSAL Python error handling and token acquisition paths referenced by the issue, along with the linked Azure CLI handling and interactive sample. Identify how errors expose interaction requirements with and without WAM. Done means MSAL provides a clear indicator clients can use without parsing error_description.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
Azure CLI relies on AADSTS50076 to detect MFA error (https://github.com/Azure/azure-cli/pull/12516):
if 'AADSTS50076' in msg:
# The tenant requires MFA and can't be accessed with home tenant's refresh token
mfa_tenants.append(t)
and let the user know interaction is required:
# Show warning for MFA tenants
if mfa_tenants:
logger.warning("The following tenants require Multi-Factor Authentication (MFA). "
"Use 'az login --tenant TENANT_ID' to explicitly login to a tenant.")
for t in mfa_tenants:
logger.warning("%s", t.tenant_id_name)
Today I was told by MSAL team that clients shouldn't parse error_description. However, MSAL.PY has no clear indicator that interaction is required, with or without WAM:
With WAM:
{
"error": "broker_error",
"error_description": "SubError: basic_action V2Error: invalid_grant AADSTS50076: Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access 'xxx'. Trace ID: xxx Correlation ID: xxx Timestamp: 2024-05-15 01:13:49Z. Status: Response_Status.Status_InteractionRequired, Error code: 3399614476, Tag: 557973645",
"msal_telemetry": "..."
}
Without WAM:
{
"error": "invalid_grant",
"error_description": "AADSTS50076: Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access 'xxx'. Trace ID: xxx Correlation ID: xxx Timestamp: 2024-05-15 01:16:43Z",
"error_codes": [
50076
],
"timestamp": "2024-05-15 01:16:43Z",
"trace_id": "xxx",
"correlation_id": "xxx",
"error_uri": "https://login.microsoftonline.com/error?code=50076",
"suberror": "basic_action",
"classification": "basic_action"
}
This makes Azure CLI have no way of knowing whether the error can be recovered by performing interactive authentication.
The MSAL example unconditionally launches acquire_token_interactive if acquire_token_silent fails to get an access token:
To Reproduce
az login with an account that requires MFA for non-home tenants.
Expected behavior
MSAL.PY's error should have an indicator for InteractionRequired.
What you see instead
MSAL.PY's error has no indicator for InteractionRequired.
The MSAL Python version you are using
1.28.0
Additional context
Add any other context about the problem here.
- Lingua principale
- Python
- Stelle
- 971
- Fork
- 223
- Merge medio
- 13h 48m
- PR unite (30g)
- 2
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di AzureAD/microsoft-authentication-library-for-python
-
needs attention untriaged
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
AzureAD/microsoft-authentication-library-for-python#973 · 2 commenti ·
-
AzureSDK bug P1
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
-
http_client docstring does not say that timeout, verify and proxies only configure the default sessionForse già presa @HardMax71 l’ha presa 41 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 25/100
-
[Bug] The built-in retry never retries the token POST: HTTPAdapter(max_retries=1) keeps urllib3's default allowed_methodsForse già presa @HardMax71 l’ha presa 47 giorni fa. Apertabug untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
AzureAD/microsoft-authentication-library-for-python#957 · 3 commenti ·
-
public-client untriaged
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di AzureAD/microsoft-authentication-library-for-python
Issue simili
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
yunaremaia/proto-drift#22 ·
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
yunaremaia/memwatch#96 ·
-
bug good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
yunaremaia/ci-gate-watch#34 ·
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
yunaremaia/agent-capability-attestation#64 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
yunaremaia/agent-call-graph#43 ·
I maintainer di solito rispondono entro 1 giorno