Choisir un rôle avant un outil
Un jeton d’accès OAuth peut être opaque ou utiliser JWT. Décoder un JWT ne vérifie pas son authenticité ; un JWT signé ne chiffre pas automatiquement son contenu. La présence d’une passerelle ne remplace pas l’autorisation métier dans les services.
| Élément | Rôle | Limite à garder visible |
|---|---|---|
| OAuth 2.0 | Délégation d’autorisation. | N’est pas seul un protocole de connexion utilisateur. |
| OpenID Connect | Authentification au-dessus d’OAuth 2.0. | Exige validation du profil et des jetons. |
| JWT | Format de déclarations. | Décodage, signature et chiffrement sont distincts. |
| Passerelle API | Contrôles communs à l’entrée. | Ne remplace pas les droits sur chaque objet. |
Vérifier le protocole et chaque accès
- Choisissez un flux adapté au client. Pour un parcours utilisateur, utilisez les recommandations actuelles sur le flux code et PKCE, avec une bibliothèque maintenue et des redirections strictement contrôlées.
- Pour un JWT accepté, vérifiez signature, algorithmes autorisés, émetteur, destinataire et contraintes temporelles prévues par le profil. Refusez un jeton destiné à un autre usage.
- Contrôlez l’accès à chaque objet, action et organisation. Testez les accès croisés entre comptes avec des données fictives ; un rôle ou une portée générale ne suffit pas toujours.
Prévoir aussi expiration, révocation et incidents
Documentez renouvellement, rotation des clés, perte de secrets et stratégie de révocation. Une vérification locale d’un jeton ne prend pas automatiquement connaissance d’une révocation distante. Limitez les données du jeton et les journaux ; ni JWT ni quota ne garantit à lui seul sécurité ou conformité.
Références primaires
- IETF RFC 9700 — OAuth 2.0 Security Best Current Practice [EN]
- IETF RFC 8725 — JWT Best Current Practices [EN]
- OpenID Foundation — OpenID Connect Core 1.0 [EN]
- OWASP — Authorization Cheat Sheet [EN]
Une passerelle ne remplace pas l’autorisation de l’objet
Une API doit vérifier à la fois que le jeton lui est destiné et que l’appelant peut effectuer cette opération sur cet objet. Une signature JWT correcte ou une connexion OAuth réussie ne suffit pas à établir ces droits. Les tests doivent inclure les identités voisines et les fonctions privilégiées.
- Refuser un jeton valide mais destiné à une autre audience.
- Tester accès croisé entre comptes, champs privés et opérations d’administration.
- Exercer expiration et changement de rôle sans inscrire de jeton dans les journaux.
Référence primaire : IETF — RFC 9700, OAuth 2.0 Security Best Current Practice. Méthode connexe : consulter le guide pratique.
Passkeys : préparer un changement de domaine et de RP ID
Distinguer compte métier, origine web et RP ID pour préparer une migration sans réaffecter silencieusement les identifiants.
- Notez les anciennes et nouvelles origines, leur RP ID et les comptes associés. Un nom de compte identique ne rend pas une passkey valable pour un autre RP ID. Vérifiez les combinaisons autorisées dans WebAuthn et les chemins qui restent disponibles pendant la transition.
- En environnement de test autorisé, vérifiez challenge, origine, RP ID et association au compte avec la bibliothèque adaptée. Essayez une origine inattendue et un challenge rejoué. Si le RP ID change, préparez une nouvelle inscription authentifiée ; ne présentez pas la copie d’un enregistrement comme une migration de clé.
- Testez un utilisateur disposant seulement de l’ancien identifiant, la récupération et les sessions déjà ouvertes. Fixez l’ordre d’ouverture et de retrait des parcours avec une possibilité de retour vérifiée. Une inscription réussie sur le nouveau domaine ne prouve pas que toutes les sessions anciennes ont été révoquées.
Cas de recette à reproduire
Exemple fictif : ces données ne décrivent aucun client ni résultat réel.
Voir les données du cas
{
"old_origin": "https://login.old.example",
"old_rp_id": "old.example",
"new_origin": "https://login.new.example",
"new_rp_id": "new.example",
"same_service_account": true,
"expected": "authenticated_new_registration"
}Décision attendue
Exemple fictif : le compte reste le même, mais old.example devient new.example avec un RP ID différent. L’ancien credential ne peut pas être réaffecté silencieusement ; une nouvelle inscription doit suivre le parcours authentifié prévu.
Peut-on changer le RP ID d’une passkey en modifiant sa ligne en base ?
Non. Le RP ID fait partie de la portée vérifiée du credential. Préparez un parcours d’inscription valable pour la nouvelle portée et une correspondance de compte authentifiée.
Référence primaire : W3C — Web Authentication Level 2. Méthode connexe : consulter le guide pratique.
Renouvellement TLS : vérifier le certificat réellement servi
Suivre le renouvellement jusqu’aux points de terminaison et vérifier les clients avant de déclarer le changement terminé.
- Listez noms attendus, CDN, répartiteurs, proxys et connexions internes qui présentent un certificat. Relevez certificat réellement servi, chaîne, échéance et responsable à chaque point pertinent. Une émission réussie chez l’autorité ne prouve pas l’installation sur tous les nœuds. Protégez les clés privées sans les inclure dans le relevé.
- Testez l’automatisation dans l’environnement de test du fournisseur quand il existe. Vérifiez les défis de validation, la couverture des noms SAN, le stockage protégé et le rechargement des composants. Évitez une émission répétée à chaque création d’instance si un certificat utilisable existe selon votre politique de clés.
- Vérifiez nom, dates et chaîne de confiance avec les clients pris en charge et sur plusieurs chemins pertinents. Gardez la vérification TLS activée. Surveillez l’échéance du certificat servi, pas seulement le statut du planificateur. Un retour arrière exige un certificat encore valide et une clé non compromise ; sinon corrigez ou isolez le point en échec.
Cas de recette à reproduire
Exemple fictif : ces données ne décrivent aucun client ni résultat réel.
Voir les données du cas
{
"issuance_succeeded": true,
"proxy_count": 2,
"proxies_serving_expected_certificate": 1,
"other_proxy_certificate_expired": true,
"tls_verification_enabled": true,
"expected": "change_incomplete_fix_and_verify_client_paths"
}Décision attendue
Exemple fictif : le renouvellement est réussi, mais un des deux proxys sert encore un certificat expiré. Le changement reste incomplet ; corrigez ce proxy et vérifiez les chemins clients au lieu de désactiver la validation TLS.
Référence primaire : Let’s Encrypt — Integration Guide. Méthode connexe : consulter le guide pratique.
Explorer le catalogue KEV de CISA
Un même identifiant, plusieurs couches techniques
Une notice peut concerner une bibliothèque, un serveur ou un composant inclus dans une appliance. Rechercher le nom exact, puis les dépendances connues et l’avis du produit distribué. Les alias du catalogue ne constituent pas une nomenclature complète des versions affectées.
- Rapprocher CVE, fournisseur du composant et fournisseur du produit final.
- Vérifier version, configuration et chemin d’exécution dans l’environnement autorisé.
- Ne pas déduire la correction d’un simple résultat de recherche vide.
Consulter le catalogue et sa méthode →
CISA KEV · 2026.10.21 · Consultation documentaire : 2026-10-22
Extensions : permissions et accès
Une authentification robuste ne décrit pas les accès de l’extension
La résistance au phishing ne dispense pas d’examiner ce qui fonctionne dans le navigateur une fois la session ouverte. Le manifeste donne des pistes sur cookies, scripts, débogage et identité, sans démontrer à lui seul une collecte.
- Tester les extensions autorisées sur un profil dédié aux opérations sensibles.
- Pour identity, examiner les scopes OAuth et destinataires ; cette permission n’énumère pas les droits du fournisseur d’identité.
- Distinguer révocation de session, révocation de jetons, désactivation d’extension et retrait d’un composant natif.
Consulter le répertoire et les exemples de manifestes →
Google Chrome · Stay secure · Documentation consulted 2026-10-23; browser behaviour remains version-dependent
