Routing-API: Problem bei der Signaturprüfung der Adressierungsinformation
Zusammenfassung
Bei der Signaturprüfung der Adressierungsinformation muss ein anfragender Client wissen, auf welche AGS/ARS der Zustellpunkt registriert worden ist, und zwar auch dann, wenn er mit einer Area-ID oder ARS/AGS angefragt hat.
Schritte zum Reproduzieren
Die Dokumentation in https://docs.fitko.de/fit-connect/docs/sending/get-destination/#checkDestinationSignature fordert, dass die Signatur der Adressierungsinformation geprüft wird. Dazu ist u.a. eine Hypothese über die URN des Gebietes zu formulieren, die dann auf der Basis des Claim-Sets zu prüfen ist.
Ein Zustellpunkt kann auf Basis einer AGS oder ARS registiert werden. Im Beispiel haben wir den Zustellpunkt auf die ARS 066320003003 (Bebra) registriert. Wir können diesen Zustellpunkt auch über die AGS 06632003 und die Area-ID 2227 erreichen.
Folgendes Szenario:
- Ein Client ohne Kenntnis unserer Registrierungsinformation will unsere Verwaltungsleistung in Bebra in Anspruch nehmen.
- Der Client fragt über das Routing-API die Area-ID ab und erhält die Id 2227 (bzw. kennt von sich aus die AGS 06632003)
- Der Client fragt ebenfalls über das Routing-API die Menge der Zustellpunkte für die Area-ID 2227 (oder die AGS 06632003) ab und erhält in der Antwort unseren Zustellpunkt
- Im Claim-Set der Signatur der Adressierungsinformation steht unter
services.gebietIDs
der Werturn:de:bund:destatis:bevoelkerungsstatistik:schluessel:rs:066320003003
. Das ist der Wert, mit dem der Zustellpunkt registriert wurde, und nicht der Wert, mit dem der Client angefragt hat
Wie verhält sich der aktuelle Fehler?
Der Client ist nicht in der Lage die Signatur der Adressierungsinformation zu prüfen. Dazu würde er als zusätzliches Wissen benötigen:
- Wurde der angefragte Zustellpunkt mit einer AGS oder ARS registriert?
- Welche Länge hatte die zur Registratur verwendete AGS/ARS?
- Welcher ARS ist die die Area-Id 2227 bzw. die AGS 06632003 zugeordnet?
Was ist das erwartete richtige Verhalten?
Es sind verschiedene Varianten denkbar:
- Gebiets-IDs sind nicht Teil des zu prüfenden Claim-Sets (sub-optimal)
- Das Routing-API liefert eine zweite Gebiets-Id zurück, in der die URN des angefragten Gebietes steht. Nur diese URN steht im Claim-Set.
- Zustellpunkte werden ausschließlich als ARS registriert und ausschließlich über eine ARS im Routing-API abgefragt. Es gibt zusätzliche API-Funktionen, mit deren Hilfe sich ARS ermitteln lassen. Außerdem gilt, dass die angefragte ARS immer eine "Teilmenge" der registrierten ARS ist und somit die ARS im Claim-Set in der durch den Client angefragten ARS enthalten ist ... das lässt sich dann prüfen.