Développement OAuth

URL d’autorisation OAuthet analyse du callback

Chargez l’exemple public pour examiner la requête et le retour avant de saisir vos propres valeurs.

URL d’autorisation OAuth

Entrées de la requête

Saisissez les valeurs brutes. L’URI de redirection enregistrée est conservée exactement.

Résultat

Tout est traité dans cet onglet. Les entrées ne sont ni envoyées ni sauvegardées.

Options

response_type=code · flux de code d’autorisation

Conservez le verifier pour la demande de jeton. Seul le challenge entre dans l’URL ; le rapport exclut le verifier.

Un paramètre brut key=value par ligne. Ne préencodez pas les valeurs et ne répétez pas les champs réservés.

Saisissez des valeurs ou chargez l’exemple.

Un port différent ou une barre oblique ajoutée au callback peut bloquer une connexion. Cette page affiche l’URL d’autorisation OAuth à côté des valeurs décodées. Vous pouvez ainsi distinguer un problème de configuration d’un caractère mal encodé dans la chaîne de requête.

Si vous disposez déjà d’un retour de test, collez-le dans la vue d’analyse et renseignez séparément le state conservé pour cette transaction. Les noms répétés restent des lignes distinctes. Un résultat lisible ne prouve jamais que le code ou l’identité reçue est valide.

Pourquoi vérifier une URL d’autorisation OAuth ?

Garder le verifier à part

L’URL d’autorisation OAuth reçoit uniquement le challenge S256 et sa méthode. Le verifier utilisé pour le calcul reste dans son champ ; une copie séparée permet de le conserver pour la demande de jeton. Le rapport exporté ne le contient pas non plus.

Des cartes de paramètres alimentent une adresse ; une clé privée reste à côté.

Ne pas masquer un second state

Le query et le fragment peuvent tous deux contenir state. La table conserve leur origine et leur ordre. Même deux valeurs identiques restent ambiguës : sélectionner silencieusement la première ferait disparaître une information utile au diagnostic.

Un callback se divise en deux colonnes qui conservent deux lignes de même couleur.

Relier la requête à son retour

01

Saisir l’URI enregistrée sans la transformer

Vérifiez le schéma, le port, le chemin, la barre finale et le query de l’URI de redirection. Ne préencodez pas toute l’adresse. Les paramètres supplémentaires utilisent une ligne key=value brute ; un & dans la valeur reste du contenu.

02

Renouveler les valeurs au bon moment

La génération tire 32 octets aléatoires indépendants pour state et pour le verifier. Elle remplace aussi nonce si scope contient openid. Examinez les champs modifiés avant d’appliquer. Un changement de scope ne génère pas une nouvelle transaction à votre insu.

03

Choisir la cadence de calcul

Le mode automatique attend 350 ms après la dernière modification. Désactivez-le pour utiliser le bouton d’exécution ou Ctrl/Cmd+Enter. Les résultats périmés ne sont pas exportables. Les vues gardent leurs entrées, mais le state attendu du callback reste un champ indépendant.

Comprendre chaque paramètre envoyé

Préserver une adresse imbriquée

Le redirect_uri complet devient une seule valeur dans la requête. Les paramètres déjà présents sur le point de terminaison sont strictement décodés puis reconstruits avec les champs. Un plus brut dans une valeur supplémentaire devient %2B ; les espaces suivent l’encodage de formulaire.

Calculer un S256 reproductible

Le verifier doit comporter 43 à 128 caractères autorisés. Aucun espace n’est supprimé et aucun décodage Base64 ne précède le hachage. Désactiver PKCE retire challenge et méthode de l’adresse tout en conservant le verifier saisi.

Décoder une seule fois

Une URL complète, ?query, #fragment ou une chaîne de query seule sont acceptés. %252F devient %2F, tandis que %2B devient un plus. Les noms vides, les valeurs vides et les doublons restent visibles dans leur ordre initial.

Distinguer les résultats de comparaison

Le paramètre state peut être absent, vide, répété, non comparé, identique ou différent. Un code d’autorisation mélangé à error déclenche également un signalement. Les tables affichent 50 lignes à la fois ; le rapport contient toujours tous les paramètres.

Formats acceptés et limites

Uniquement le flux de code
response_type reste fixé à code. Les flux implicit, hybrid et PKCE plain ne sont pas proposés. Ici, nonce exige openid dans scope. Sa vérification réelle appartient à la validation de l’ID token dans votre application.
La syntaxe ne confirme pas l’inscription
Les points de terminaison exigent HTTPS. HTTP est permis pour les tests sur localhost, 127.0.0.1 et [::1]. Les redirections acceptent aussi un schéma privé de domaine inversé comme com.example.app:/cb. Identifiants dans l’URI, fragments, espaces bruts et échappements invalides sont refusés. L’inscription auprès du fournisseur se vérifie séparément.
Les champs réservés restent protégés
Le query existant et les lignes supplémentaires ne peuvent répéter un nom ou remplacer les champs du formulaire. Secrets, verifier, jetons, objets request et response_mode y sont interdits. Les modèles de fournisseurs, Discovery, JAR/PAR et la réception form_post sont hors périmètre.
Le contrôle s’arrête avant la connexion
La page n’ouvre pas l’adresse, ne reçoit pas de callback réel et n’échange aucun code. Les ancres ordinaires et routes de type hash sont refusées. Une égalité de state ne vérifie ni signature, ni émetteur, ni session, ni durée de validité ou réussite de l’autorisation.
Taille et durée de conservation bornées
Les champs de construction totalisent au maximum 32 768 caractères. Callback et state attendu ont chacun cette limite. Le résultat accepte 100 paramètres au plus. Aucun historique persistant : exemple, effacement et remplacement aléatoire passent par une prévisualisation, puis une annulation peut restaurer les entrées et le résultat.

Questions sur l’URL d’autorisation OAuth

Pourquoi l’URI de redirection doit-elle correspondre exactement ?

Changer le schéma, le port, le chemin ou la barre finale peut désigner un autre destinataire. Enregistrez la véritable URI chez le fournisseur. Cette page conserve la chaîne saisie comme valeur ; elle ne peut pas lire les paramètres enregistrés du client.

Quelle est la différence entre state et nonce ?

State revient dans les paramètres du callback et se compare à la valeur de la transaction. Nonce est lié à un ID token et doit être contrôlé après validation de ce jeton. Un champ nonce présent dans un callback collé ne remplace pas ce contrôle.

Faut-il PKCE avec un secret client ?

Le secret authentifie le client au point de terminaison de jeton. PKCE lie aussi le code à son verifier initial. Les recommandations actuelles préconisent PKCE pour les clients confidentiels. Vérifiez néanmoins la prise en charge de S256 par votre fournisseur.

Peut-on exposer le client ID dans l’adresse ?

Oui, il s’agit d’un identifiant public. client_secret et code_verifier remplissent d’autres rôles et ne doivent pas figurer dans le query d’autorisation. Ces noms sont bloqués ; le verifier dispose d’un bouton de copie séparé.

Que change OpenID Connect par rapport à OAuth ?

OAuth autorise l’accès aux ressources. OpenID Connect ajoute l’authentification de l’utilisateur et un ID token. Incluez openid dans scope et renseignez nonce selon les exigences du fournisseur. La validation du jeton retourné reste à la charge de l’application.

Un résultat ou une erreur semble incorrect ?

Préparer la prochaine requête

Comparez l’URL d’autorisation OAuth à la configuration enregistrée, puis examinez le callback avec le state conservé pour cette transaction précise.