tweak documentation

This commit is contained in:
imperosol
2026-04-04 19:24:53 +02:00
parent 03fb3c3ba1
commit 876b6d3f4e
2 changed files with 29 additions and 9 deletions
+26 -7
View File
@@ -12,7 +12,7 @@ et d'un client d'API (celui auquel est liée votre
Deux informations vous sont nécessaires, en plus de votre clef d'API : Deux informations vous sont nécessaires, en plus de votre clef d'API :
- l'id du client : vous pouvez l'obtenir soit en le demandant à l'équipe info, - l'id du client : vous pouvez l'obtenir soit en le demandant à l'équipe info,
soit en appelant la route `GET /client/me` avec votre clef d'API soit en appelant la route `GET /api/client/me` avec votre clef d'API
renseignée dans le header [X-APIKey](./connect.md#x-apikey) renseignée dans le header [X-APIKey](./connect.md#x-apikey)
- la clef HMAC du client : vous devez la demander à l'équipe info. - la clef HMAC du client : vous devez la demander à l'équipe info.
@@ -91,16 +91,29 @@ et doit contenir les données décrites dans
- `callback_url`(URL) : l'URL que le site AE appellera si l'authentification - `callback_url`(URL) : l'URL que le site AE appellera si l'authentification
réussit réussit
- `signature`(string) : la signature des données de la requête. - `signature`(string) : la signature des données de la requête.
Il s'agit d'une signature par clef HMAC dont le fonctionnement
est détaillé plus bas.
Ces données doivent être url-encodées et passées dans les paramètres GET. Ces données doivent être url-encodées et passées dans les paramètres GET.
!!!tip "URL de retour" !!!warning "URL de retour"
Notre système n'impose aucune contrainte quant à la manière Les URLs fournies doivent être des URLs HTTP valides.
de construire votre URL (hormis le fait que ce doit être une URL HTTPS valide), En outre, elles doivent obligatoirement inclure la barre oblique finale.
mais il est tout de même conseillé d'utiliser l'identifiant de votre
utilisateur comme paramètre dans l'URL === "URL correcte ✔️"
(par exemple `GET /callback/{int:user_id}/`).
`https://exemple.ae.utbm.fr/foo/`
=== "URL incorrecte ❌"
`https://exemple.ae.utbm.fr/foo`
!!!tip
Inclure l'id de votre utilisateur dans l'URL de retour
peut être un bon moyen de l'identifier lors du callback.
Par exemple : `GET /callback/{int:user_id}/`.
???Example ???Example
@@ -186,6 +199,8 @@ et la signature de l'URL de retour doit être vérifiée.
Dans le deux cas, la signature est le digest HMAC-SHA512 Dans le deux cas, la signature est le digest HMAC-SHA512
des données url-encodées, en utilisant la clef HMAC du client d'API. des données url-encodées, en utilisant la clef HMAC du client d'API.
L'ordre dans lequel ces données sont placées dans l'encodage URL
doit être strictement le même que celui donné plus haut.
???Example "Signature de l'URL de connexion" ???Example "Signature de l'URL de connexion"
@@ -348,6 +363,10 @@ des données url-encodées, en utilisant la clef HMAC du client d'API.
Vous devez impérativement vérifier la signature Vous devez impérativement vérifier la signature
des données de la requête de callback ! des données de la requête de callback !
Ne pas vérifier la signature permet à n'importe quel acteur
tierce malveillant de vous appeler sur votre callback.
Ce serait une faille de sécurité majeure de votre côté.
Si l'équipe informatique se rend compte que vous ne le faites pas, Si l'équipe informatique se rend compte que vous ne le faites pas,
elle se réserve le droit de suspendre votre application, elle se réserve le droit de suspendre votre application,
immédiatement et sans préavis. immédiatement et sans préavis.
Generated
+3 -2
View File
@@ -815,10 +815,11 @@ wheels = [
[[package]] [[package]]
name = "griffelib" name = "griffelib"
version = "2.0.0" version = "2.0.2"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/9d/82/74f4a3310cdabfbb10da554c3a672847f1ed33c6f61dd472681ce7f1fe67/griffelib-2.0.2.tar.gz", hash = "sha256:3cf20b3bc470e83763ffbf236e0076b1211bac1bc67de13daf494640f2de707e", size = 166461, upload-time = "2026-03-27T11:34:51.091Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/4d/51/c936033e16d12b627ea334aaaaf42229c37620d0f15593456ab69ab48161/griffelib-2.0.0-py3-none-any.whl", hash = "sha256:01284878c966508b6d6f1dbff9b6fa607bc062d8261c5c7253cb285b06422a7f", size = 142004, upload-time = "2026-02-09T19:09:40.561Z" }, { url = "https://files.pythonhosted.org/packages/11/8c/c9138d881c79aa0ea9ed83cbd58d5ca75624378b38cee225dcf5c42cc91f/griffelib-2.0.2-py3-none-any.whl", hash = "sha256:925c857658fb1ba40c0772c37acbc2ab650bd794d9c1b9726922e36ea4117ea1", size = 142357, upload-time = "2026-03-27T11:34:46.275Z" },
] ]
[[package]] [[package]]