Nachweise in der CI-Pipeline prüfen mit kya-verify
Wer Agenten-Nachweise erzeugt oder Testdaten pflegt, sollte sie bei jeder Änderung automatisch prüfen. Die Kommandozeile kya-verify macht das in jeder CI-Pipeline möglich, mit klaren Exit-Codes.
Das Wichtigste in Kürze
- kya-verify prüft Nachweise in jeder CI-Pipeline mit klaren Exit-Codes.
- Jeder Code ausser 0 sollte den Lauf scheitern lassen.
- Öffentliche Schlüssel und Statuslisten gehören ins Repository, private Schlüssel nie.
Kommandozeile kennenlernen
Das Paket bringt die Kommandozeile kya-verify mit. Sie nimmt eine Datei oder die Standardeingabe, optional Schlüssel, Statuslisten, Zeitstempel-Anker und einen Prüfzeitpunkt, und gibt das Urteil als Text oder mit --json als vollständigen Bericht aus:
npx kya-verify evidence.json --keys issuer-jwks.json --lists status-list.jwt --json > report.json
echo "exit code: $?"Exit-Codes verwenden
kya-verify endet mit 0 bei VALID, 1 bei INVALID, 2 bei INDETERMINATE und 64 bei falschem Aufruf. In einer Pipeline sollte jeder Code ausser 0 den Lauf scheitern lassen, denn auch ein unbestimmtes Urteil heisst, dass ein Nachweis fehlt.
Vertrauen im Repository ablegen
Legen Sie die öffentlichen Schlüssel der Aussteller und die Statuslisten in einem eigenen Verzeichnis ab, etwa trust/. Private Schlüssel gehören nie ins Repository. Aktualisieren Sie die Statuslisten regelmässig, damit Widerrufe in der Prüfung ankommen.
Workflow anlegen
Ein Workflow für GitHub Actions installiert das Paket und prüft alle Nachweise im Verzeichnis evidence/:
name: Verify agent evidence
on: [push, pull_request]
jobs:
kya:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- run: npm install --no-save https://knowyouragent.ch/downloads/knowyouragent-verify-core-1.2.0.tgz
- name: Verify all evidence files
run: |
for f in evidence/*.json; do
npx kya-verify "$f" --keys trust/issuer-jwks.json --lists trust/status-list.jwt || exit 1
doneDasselbe Muster funktioniert in GitLab CI, Jenkins oder jeder anderen Pipeline mit Node.js.
Berichte aufbewahren
Speichern Sie mit --json den vollständigen Bericht als Artefakt des Laufs. Der reportDigest macht jeden Bericht später nachrechenbar; Begründungscodes erklärt die Fehlerreferenz.
Fehler beheben
Scheitert ein Lauf, zeigt die Ausgabe von kya-verify das Urteil und mit --json alle Prüfschritte. Häufige Ursachen sind eine veraltete Statusliste im Verzeichnis trust/, ein gewechselter Schlüssel des Ausstellers, der noch nicht hinterlegt ist, und Nachweise, deren Gültigkeit abgelaufen ist. Für reproduzierbare Tests mit festen Testdaten setzen Sie --now auf einen festen Zeitpunkt.
Häufige Fragen
Warum scheitert der Lauf bei einem unbestimmten Urteil?
Weil INDETERMINATE heisst, dass ein Nachweis fehlt. Wer das zulassen will, kann den Exit-Code 2 gezielt behandeln, sollte das aber bewusst entscheiden.
Kann ich nur geänderte Nachweise prüfen?
Ja, etwa indem Sie die Liste der geänderten Dateien aus dem Versionsverwaltungssystem an die Schleife übergeben.
Wie halte ich Testdaten stabil, wenn Mandate ablaufen?
Mit der Option --now auf einen festen Zeitpunkt. So bleiben Testergebnisse gleich, auch wenn die Gültigkeit der Testdaten in der Wirklichkeit abläuft.
Wie lange dauert die Prüfung in der Pipeline?
Die Prüfung selbst dauert pro Nachweis Millisekunden. Den grössten Teil der Laufzeit macht die Installation des Pakets aus, die sich zwischenspeichern lässt.
Funktioniert kya-verify auch ohne Internet?
Ja. Nach der Installation braucht die Kommandozeile keinen Netzwerkzugriff; Schlüssel und Statuslisten kommen aus dem Repository.
Kann ich die Berichte im Pull Request anzeigen?
Ja. Die Ausgabe mit --json lässt sich auswerten und als Kommentar oder Zusammenfassung des Laufs darstellen.
Kann ich die Pipeline auch für eigene Testvektoren nutzen?
Ja. Legen Sie Nachweise mit bekanntem Ergebnis ab und vergleichen Sie Urteil und Begründungscodes aus dem JSON-Bericht mit den erwarteten Werten.
Wie sichere ich die Installation ab?
Prüfen Sie die Prüfsumme des Pakets im Workflow, bevor Sie es installieren, und legen Sie die erwartete Prüfsumme im Repository ab.
Quellen
- @knowyouragent/verify-core (Paket): https://knowyouragent.ch/downloads/knowyouragent-verify-core-1.2.0.tgz
- GitHub Actions: Dokumentation: https://docs.github.com/actions