[Bug] MSAL.PY's error has no indicator for `InteractionRequired`
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- authentication, backend-api-design
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Python
- Étoiles
- 971
- Forks
- 223
- Merge moyen
- 13 h 48 min
- PR mergées (30 j)
- 2
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de AzureAD/microsoft-authentication-library-for-python
-
needs attention untriaged
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
AzureAD/microsoft-authentication-library-for-python#973 · 1 commentaire ·
-
AzureSDK bug P1
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
-
http_client docstring does not say that timeout, verify and proxies only configure the default sessionPeut-être pris @HardMax71 l’a pris il y a 40 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 25/100
-
[Bug] The built-in retry never retries the token POST: HTTPAdapter(max_retries=1) keeps urllib3's default allowed_methodsPeut-être pris @HardMax71 l’a pris il y a 46 jours. Ouvertebug untriaged
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
AzureAD/microsoft-authentication-library-for-python#957 · 3 commentaires ·
-
public-client untriaged
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
Toutes les issues de AzureAD/microsoft-authentication-library-for-python
Issues similaires
-
documentation good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
selimfirat/pysad#379 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
open-webui/open-webui#32805 ·
Les mainteneurs répondent en général sous 1 jour
-
fix: [bug description] HTML CVE metric table shows only the last CVE for each productPeut-être pris @Chris-wh233 l’a pris aujourd’hui. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
ossf/cve-bin-tool#5976 ·
Les mainteneurs répondent en général sous 1 jour
-
needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
gke-labs/kube-agents#3615 ·
Les mainteneurs répondent en général sous 1 jour
-
deferred
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour