66 lines
2.7 KiB
Markdown
66 lines
2.7 KiB
Markdown
# Journalisation et analyse du flux IdNot
|
||
|
||
## Nginx (serveur web du front)
|
||
|
||
- Fichier d’inclusion: `/home/debian/4NK_env/lecoffre_node/conf/nginx/logging.conf`
|
||
- Inclus dans le vhost: `/home/debian/4NK_env/lecoffre_node/conf/nginx/dev4.4nkweb.com-https.conf`
|
||
- Logs générés:
|
||
- Access: `/var/log/nginx/lecoffre_front_access.log` (format JSON `lecoffre_json`)
|
||
- Error: `/var/log/nginx/lecoffre_front_error.log`
|
||
|
||
Champs JSON importants: `time`, `request_id`, `method`, `uri`, `status`, `request_time`, `upstream_status`, `upstream_response_time`, `x_forwarded_for`.
|
||
|
||
Propagation d’identifiant de requête:
|
||
- `X-Request-ID` client → mappé dans `$x_request_id` (fallback `$request_id`).
|
||
- Re-transmis aux upstream via `proxy_set_header X-Request-ID $x_request_id;`.
|
||
|
||
Commandes utiles:
|
||
```bash
|
||
# Dernières lignes des requêtes IdNot state
|
||
grep '"uri":"/api/v1/idnot/state' /var/log/nginx/lecoffre_front_access.log | tail -n 50 | jq .
|
||
|
||
# Requêtes IdNot auth
|
||
grep '"uri":"/api/v1/idnot/auth' /var/log/nginx/lecoffre_front_access.log | tail -n 50 | jq .
|
||
```
|
||
|
||
## Front (lecoffre-front)
|
||
|
||
- Ajout d’un `X-Request-ID` généré côté front lors du `POST /api/v1/idnot/state` pour corrélation.
|
||
- Code: `src/front/Api/Auth/IdNot/index.ts` (entête `X-Request-ID: front_<rand>`)
|
||
|
||
## Backend (dev3)
|
||
|
||
- À surveiller dans les logs applicatifs:
|
||
- `POST /api/v1/idnot/state`: génération de state (HMAC/TTL/nonce)
|
||
- `POST /api/v1/idnot/auth`: échange du code, puis appels vers IdNot et API Annuaire V2
|
||
- Appels sortants vers `https://qual-api.notaires.fr/...`: status, headers, body (tronqué), erreurs de parsing JSON
|
||
|
||
Conseils d’instrumentation backend:
|
||
- Loguer `X-Request-ID`, `Authorization` masqué, `Content-Type`, `Accept`.
|
||
- En cas d’échec JSON, loguer les 200 premiers caractères du body et le header `content-type`.
|
||
|
||
## Points à surveiller spécifiquement
|
||
|
||
- `status` 4xx/5xx sur `/api/v1/idnot/auth` et temps `upstream_response_time` élevés.
|
||
- Réponses non-JSON de l’API Annuaire (ex: body commençant par "No context") → probable manque de contexte/jeton.
|
||
- Cohérence `state` (émis côté backend) et `redirect_uri` fixe.
|
||
|
||
## Vérifications rapides
|
||
|
||
```bash
|
||
# Génération de state (OK attendu)
|
||
curl -sS --connect-timeout 3 --max-time 8 -X POST \
|
||
-H 'Content-Type: application/json' \
|
||
-d '{"next_url":"https://dev4.4nkweb.com/lecoffre/authorized-client"}' \
|
||
https://dev4.4nkweb.com/api/v1/idnot/state | jq .
|
||
|
||
# Auth (nécessite code valide)
|
||
curl -sS --connect-timeout 3 --max-time 10 -X POST \
|
||
-H 'Content-Type: application/json' \
|
||
-H "X-Request-ID: debug_manual_$(date +%s)" \
|
||
-d '{"code":"<CODE_IDNOT>"}' \
|
||
https://dev4.4nkweb.com/api/v1/idnot/auth | jq .
|
||
```
|
||
|
||
|