Azure "JsonWebTokenError: invalid algorithm"
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- azure, javascript, node.js
- Domaine
- authentication, backend, cloud, security
Piste de recherche
Commencez par le chemin de l’API backend contenant jwt.verify et comparez son comportement de déploiement dans Azure Static Web Apps avec celui de l’émulateur local. Examinez le token déployé, le certificat renvoyé par Microsoft identity jwks_uri et l’algorithme RS256 configuré ; l’issue est terminée lorsque la cause de l’erreur Azure-only invalid-algorithm est identifiée et que la vérification fonctionne ou que la limitation est documentée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
Only occurs when deployed to Azure cloud, local Azure Static Web Apps emulator is all ok.
Azure Static Web App (SWA) with integrated API. One of the step at backend API is to validate the Bearer Token with public key submitted in request headers:
const jwt = require("jsonwebtoken"); // v 8.5.1
async function getMSPublicKey(misc) // misc contains kid and tenantId, confirmed in F12 request header
{
var vurl = "https://login.microsoftonline.com/" + misc.tenantId + "/v2.0/.well-known/openid-configuration";
const x1 = await fetch(vurl);
const x2 = await x1.json();
const x3 = await fetch(x2.jwks_uri);
const k = await x3.json();
return pkey = k.keys.find( k => k.kid === misc.kid).x5c[0]; // public key in the entry matching kid
}
var vmisc = JSON.parse(ac.req.headers["misc"]);
var publickey = "-----BEGIN CERTIFICATE-----\n" + await getMSPublicKey(vmisc) + "\n-----END CERTIFICATE-----";
// next line is reported in AppTraces, Message = JsonWebTokenError: invalid algorithm
var payload = jwt.verify(theToken, publickey, { algorithms: ['RS256'] });
// theToken is validated ok at jwt.io
Environment
Azure Static Web Application
- jsonwebtoken: v 8.5.1
- azurefunctions: 3.5.2.0, node v 14.16.0
- VSC Version: 1.63.1 (system setup)
Commit: fe719cd3e5825bf14e14182fddeb88ee8daf044f
Date: 2021-12-14T02:13:54.292Z
Electron: 13.5.2
Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.19044
- Langage dominant
- JavaScript
- Étoiles
- 18.2k
- Forks
- 1.3k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
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 auth0/node-jsonwebtoken
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
auth0/node-jsonwebtoken#1042 · 1 commentaire ·
-
`jwt.sign()` callback is executed twice for "The payload already has an "..." property" errorsOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
auth0/node-jsonwebtoken#1000 · 2 commentaires · 1 réaction ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
auth0/node-jsonwebtoken#1048 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 65/100
auth0/node-jsonwebtoken#1046 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 10/100
auth0/node-jsonwebtoken#1034 ·
Toutes les issues de auth0/node-jsonwebtoken
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
saadeghi/daisyui#4780 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
accessibility bug embed websites
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
quarto-dev/quarto-cli#14972 ·
Les mainteneurs répondent en général sous 1 jour
-
has-readme needs-attention new-tool repo-verified
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
shanselman/TinyToolTown#834 · 2 commentaires ·
Les mainteneurs répondent en général sous 6 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
siderolabs/talos-design-system#16 ·
Les mainteneurs répondent en général sous 1 jour