Introduction
Une intégration d’expédition lit les commandes en attente et publie leurs mises à jour. L’exemple courant du dépôt paraît propre, mais une clé supprimée pourrait toujours donner accès au service. Vous devez contenir cette exposition et rétablir l’exécution d’expédition en attente.
Appliquez l’enquête Git, la révocation ciblée, le choix des scopes, la configuration privée et la vérification métier des laboratoires guidés. Terminez le résultat d’expédition tout en préservant le moniteur indépendant. Le défi démarre dans son propre environnement préparé.
Rétablir l’intégration d’expédition
Situation actuelle
L’équipe d’expédition utilise un worker préparé pour lire les commandes en attente et publier leurs mises à jour. Par exemple, la commande O-201 doit obtenir l’état ready après traitement du lot. Une clé a été supprimée de l’exemple courant, mais une alerte indique qu’elle reste récupérable dans l’historique. Le lot dispatch est en attente. Un moniteur indépendant doit rester opérationnel ; une pause temporaire des expéditions est acceptable pendant le confinement.
Le fournisseur local de formation, les méthodes Git, le gestionnaire, le format INI et les deux rôles de terminal sont ceux des laboratoires guidés. L’environnement est fictif et ne demande aucun compte externe.
Utilisez les identifiants de cette VM, pas ceux d’un laboratoire précédent. Comme dans les laboratoires guidés, ce fournisseur utilise 401 pour une clé invalide ou révoquée, 403 pour une clé valide sans le scope requis et 200 pour une lecture acceptée. Le worker relit le fichier privé à chaque appel ; aucun redémarrage n’est requis.
Périmètre
- Workstation s’ouvre dans
/home/labex/project/repository. Ses trois commits etshipping-example.inicontiennent les preuves historiques. L’exemple courant n’est pas la configuration d’exécution. - Integration s’exécute sous
keyworkerdans/home/labex/project. Le fichier privé estruntime/job.ini; le worker à conserver inchangé est/opt/keylab/worker.py, qui prend un nom de lot en argument. - L’API est sur
http://127.0.0.1:8000. Key Manager administre les identifiants grâce au jeton de/home/labex/.config/keylab/operator-token. - Le moniteur indépendant utilise
lab_key_monitor_onlyavecGET /v1/health.
| Opération | Scope requis | Objectif métier |
|---|---|---|
GET /v1/orders |
orders:read |
Lire les commandes en attente |
POST /v1/shipment-updates |
shipment-updates:write |
Publier les états d’expédition |
GET /v1/results |
orders:read |
Consulter les lots reçus |
GET /v1/customers |
customers:read |
Répertoire clients sans rapport |
GET /v1/health |
health:read |
Moniteur indépendant |
Votre objectif
L’identifiant historiquement exposé ne donne plus accès à l’API. Le worker inchangé utilise un remplacement distinct et dédié dans sa configuration privée ; le destinataire possède le résultat complet de dispatch reçu sous ce remplacement. Celui-ci ne peut pas lire le répertoire clients et le moniteur indépendant reste opérationnel.
Critères d’acceptation
- La clé historique est révoquée et reçoit
401pour les commandes, alors que l’API reste accessible. - Le remplacement configuré est actif, distinct de l’ancienne clé et doté exactement des deux scopes métier d’expédition.
/home/labex/project/runtime/job.iniappartient àkeyworker, a le mode600et peut être lu par ce compte de service. Le nouveau secret n’apparaît ni dans les fichiers ni dans les commits du dépôt.- Le worker inchangé a lu le lot assigné
dispatchavec le remplacement configuré ; l’API a reçu les commandesO-201etO-202, toutes deux à l’étatready, sous le même ID de remplacement. - Le remplacement reçoit
403pour le répertoire clients. Le moniteur inchangé obtient toujours200sur l’endpoint de santé.
Indices
Où peut rester un secret supprimé ?
Comparez l’exemple actuel aux anciens commits. Faites correspondre l’ID historique à l’enregistrement du gestionnaire ; un nom affiché ne suffit pas à identifier la clé.
Pourquoi un remplacement valide échoue-t-il encore ?
Le worker effectue une requête d’entrée et une de sortie. Le tableau permet de distinguer un scope insuffisant d’un secret incorrect ou révoqué. Une variable du shell ne met pas à jour le fichier privé.
Quelle preuve établit le rétablissement ?
Une démonstration ou un message de terminal ne suffit pas. Consultez le lot assigné dans l’API destinataire et comparez son ID de clé au remplacement configuré. Conservez le worker fourni inchangé.
Résumé
Vous avez transféré la réponse aux incidents d’une tâche de support à une intégration d’expédition. Une réponse complète invalide le secret historique, rétablit l’activité réelle avec un identifiant dédié et restreint, garde les secrets hors du contrôle de versions et préserve les accès indépendants.



