la # 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_`) ## 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":""}' \ https://dev4.4nkweb.com/api/v1/idnot/auth | jq . ```