@@ -12,7 +12,7 @@ et d'un client d'API (celui auquel est liée votre
1212Deux informations vous sont nécessaires, en plus de votre clef d'API :
1313
1414- l'id du client : vous pouvez l'obtenir soit en le demandant à l'équipe info,
15- soit en appelant la route ` GET /client/me ` avec votre clef d'API
15+ soit en appelant la route ` GET /api/ client/me ` avec votre clef d'API
1616 renseignée dans le header [ X-APIKey] ( ./connect.md#x-apikey )
1717- la clef HMAC du client : vous devez la demander à l'équipe info.
1818
@@ -91,16 +91,29 @@ et doit contenir les données décrites dans
9191- ` callback_url ` (URL) : l'URL que le site AE appellera si l'authentification
9292 réussit
9393- ` signature ` (string) : la signature des données de la requête.
94+ Il s'agit d'une signature par clef HMAC dont le fonctionnement
95+ est détaillé plus bas.
9496
9597Ces données doivent être url-encodées et passées dans les paramètres GET.
9698
97- !!!tip "URL de retour"
99+ !!!warning "URL de retour"
98100
99- Notre système n'impose aucune contrainte quant à la manière
100- de construire votre URL (hormis le fait que ce doit être une URL HTTPS valide),
101- mais il est tout de même conseillé d'utiliser l'identifiant de votre
102- utilisateur comme paramètre dans l'URL
103- (par exemple `GET /callback/{int:user_id}/`).
101+ Les URLs fournies doivent être des URLs HTTP valides.
102+ En outre, elles doivent obligatoirement inclure la barre oblique finale.
103+
104+ === "URL correcte ✔️"
105+
106+ `https://exemple.ae.utbm.fr/foo/`
107+
108+ === "URL incorrecte ❌"
109+
110+ `https://exemple.ae.utbm.fr/foo`
111+
112+ !!!tip
113+
114+ Inclure l'id de votre utilisateur dans l'URL de retour
115+ peut être un bon moyen de l'identifier lors du callback.
116+ Par exemple : `GET /callback/{int:user_id}/`.
104117
105118???Example
106119
@@ -186,6 +199,8 @@ et la signature de l'URL de retour doit être vérifiée.
186199
187200Dans le deux cas, la signature est le digest HMAC-SHA512
188201des données url-encodées, en utilisant la clef HMAC du client d'API.
202+ L'ordre dans lequel ces données sont placées dans l'encodage URL
203+ doit être strictement le même que celui donné plus haut.
189204
190205???Example "Signature de l'URL de connexion"
191206
@@ -348,6 +363,10 @@ des données url-encodées, en utilisant la clef HMAC du client d'API.
348363 Vous devez impérativement vérifier la signature
349364 des données de la requête de callback !
350365
366+ Ne pas vérifier la signature permet à n'importe quel acteur
367+ tierce malveillant de vous appeler sur votre callback.
368+ Ce serait une faille de sécurité majeure de votre côté.
369+
351370 Si l'équipe informatique se rend compte que vous ne le faites pas,
352371 elle se réserve le droit de suspendre votre application,
353372 immédiatement et sans préavis.
0 commit comments