Integration eines R-Profil-Verfahrens
Reverse Proxy einrichten
Der USP Reverse Proxy empfängt die Anfragen des User-Agents, prüft die Authentizität und Autorisierung des jeweiligen Benutzers und leitet die Anfragen an das Verfahren weiter. Dafür sind folgende Anforderungen notwendig:
1. Netzwerkverbindung
Der USP Reverse Proxy muss den Server Ihres Verfahrens netzwerktechnisch erreichen können. Dazu sind unter Umständen sowohl auf USP, als auch auf Verfahrensseite Firewall- und andere Netzwerkkonfigurationen notwendig. Falls sich die zu integrierende Anwendung nicht innerhalb des BRZ-Netzwerkes befindet, ist es erforderlich, dass das Anwendungsnetzwerk HTTPS-Verbindungen von der BRZ NAT-IP auf Port 443 zulässt.
Die BRZ NAT-IP erhalten Sie im Rahmen der Anbindung.
2. TLS-Zertifikate
Der USP Reverse Proxy akzeptiert ausschließlich öffentlich anerkannte TLS-/SSL-Zertifikate vertrauenswürdiger Certificate Authorities, sowie Zertifikate vom Bundesrechenzentrum (BRZ) bzw. Bundesministerium für Inneres (BMI). Self-signed-Zertifikate oder Zertifikate aus nicht öffentlichen bzw. privaten Certificate Authorities werden nicht unterstützt.
3. Session-Management
Verfahren, die über ein R-Profil in USP integriert sind, sollten nach Möglichkeit stateless sein. Das heißt: Sie verwalten keine eigene Anwendungs-Session am Server. Sollte das aus anwendungsspezifischen Gründen dennoch notwendig sein, muss sichergestellt sein, dass die existierende Anwendungs-Session invalidiert wird, sobald benutzeridentifizierende PVP-Header ihren Wert ändern. Das geschieht, wenn sich eine Person mit einem Benutzer anmeldet und das Verfahren aufruft und sich anschließend ummeldet (z.B. ein anderes Unternehmen auswählt) und das Verfahren nochmal aufruft.
Das USP kann bei einem Benutzerwechsel in Mein USP die R-Verfahren nicht direkt über den Wechsel informieren: Das R-Verfahren muss daher bei jedem HTTP-Request die PVP-Header analysieren und bei Bedarf seine eigene Session invalidieren oder anpassen. Geschieht dies nicht, dann arbeitet das Verfahren mit den User-Daten des vorherigen Users und zeigt dem Benutzer möglicherweise die falschen Daten an.
Anwendungen müssen daher ihre bestehenden Sessions erneuern, sobald sie über den Reverse Proxy neue oder geänderte HTTP-Header erhalten. Sessions, die weiterhin auf
Basis der ursprünglichen Header verwendet werden, gelten als ungültig.
4. Hostname und URLs
Der USP Reverse Proxy erhält die Anfragen über eine definierte URL-Struktur, die wie folgt aufgebaut ist:
- https://[VERFAHREN].services.usp.gv.at/at.gv.[VERFAHREN]-[STAGE]/**
- z.B.: https://xyz.services.usp.gv.at/at.gv.xyz-p/**
Diese Anfragen werden an die Anwendung in der folgenden Form weitergeleitet:
- https://[VERFAHREN-DOMAIN]/at.gv.[VERFAHREN]-[STAGE]/**
- z.B.: https://anwendung-host/at.gv.xyz-p/**
- X-Forwarded-Host: app.services.usp.gv.at
- X-Forwarded-Prefix: /at.gv.xyz-p
Das Verfahren muss unter dem Kontext /at.gv.xyz-p erreichbar sein, wobei gv.xyz-p prinzipiell vom Verfahren frei wählbar ist. Konventionell definiert das Suffix -p die Produktionsumgebung, -t die Testumgebung und -q die Qualitätssicherungsumgebung.
Achtung
Verfahren müssen bei applikationsseitigen Redirects sicherstellen, dass keine absoluten Redirects stattfinden und der User-Agent immer auf dem USP Reverse Proxy bleibt. Dazu können die vom USP Reverse Proxy übermittelten X-Forwarded-Header (XFF) verwendet werden.
Attribute im R-Profil
Attribute werden als HTTP-Header an das Verfahren übermittelt. Nicht-ASCII-Zeichen und das kaufmännische "und" (&) werden HTML-Entity-encoded (HTML Decimal Numeric Character Reference) übermittelt, gemäß PVP Version 2 R-Profil.
| Friendly Name | Header | Beispielwert |
|---|---|---|
| PVP-VERSION | X-Pvp-Version | 2.3 |
| PARTICIPANT-ID | X-Pvp-Participant-Id | AT:B:115-USP |
| EID-CITIZEN-QAA-EIDAS-LEVEL | X-Pvp-Eid-Citizen-Qaa-Eidas- Level | http://eidas.europa.eu/LoA/high |
| EID-SIGNER-CERTIFICATE | X-Pvp-Eid-Signer-Certificate | MIIDXT…ZZKJEQxg== |
| EID-ISSUING-NATION | X-Pvp-Eid-Issuing-Nation | AT |
| SECCLASS | X-Pvp-Secclass | 2 |
| ROLES | X-Pvp-Roles | XYZ_Benutzer();XYZ_Admin() |
| BPK | X-Pvp-Bpk | XFN+468924i:sJ0uDLw8UQNEbhChZpwKCP SSp9thLzKQI= |
| ENC-BPK-LIST | X-Pvp-Enc-Bpk-List | (bpkBereich1|bpkValue1);(bpkBereich2|bpkVal ue2)... |
| PRINCIPAL-NAME | X-Pvp-Principal-Name | XXXUSP1 Törőcsik |
| GIVEN-NAME | X-Pvp-Given-Name | XXXUSP1 Ĥáčęk |
| BIRTHDATE | X-Pvp-Birthdate | 1972-02-13 |
| PERSON-COUNTRY-CODE | X-Usp-Person-Country-Code | Österreich |
| PERSON-ZIP | X-Usp-Person-Zip | 1030 |
| PERSON-CITY | X-Usp-Person-City | Wien |
| PERSON-STREET | X-Usp-Person-Street | Landstrasse |
| PERSON-HOUSE-NUMBER | X-Usp-Person-House-Number | 1A-2B |
| USERID | X-Pvp-Userid | 507639@usp.gv.at |
| GID | X-Pvp-Gid | 507639@usp.gv.at |
| X-Usp-Mail | mustermann@example.com | |
| OU | X-Pvp-Ou | USP-Betrieb Testunternehmen |
| OU-GV-OU-ID | X-Pvp-Ou-Gv-Ou-Id | R057I054T |
| ENTERPRISE-KEYS | X-Usp-Enterprise-Keys | RF#GESMBH;FB#123456m;EO#ATEOS9999 012663;SE#9110050065181 |
| ENTERPRISE-SUB-IDS | X-Usp-Enterprise-Sub-Ids | {\"SID\":[\"1234567064\"],\"KWT\":[\"99037703\ "]} |
| ENTERPRISE-COUNTRY-CODE | X-Usp-Enterprise-Country-Code | AT |
| ENTERPRISE-ZIP | X-Usp-Enterprise-Zip | 1020 |
| ENTERPRISE-CITY | X-Usp-Enterprise-City | Testgemeinde |
| ENTERPRISE-HOUSE-NUMBER | X-Usp-Enterprise-House- Number | 2A-2B |
| ENTERPRISE-ECONOMIC-ACTIVITY-TYPE | X-Usp-Economic-Activity-Type | H |
| ENTERPRISE-ECONOMIC-ACTIVITY-CODE | X-Usp-Economic-Activity-Code | 62030 |
| ENTERPRISE-ECONOMIC-ACTIVITY-YEAR | X-Usp-Economic-Activity-Year | 2025 |
| X-Pvp-Binding | http | |
| ORIG-HOST | X-Pvp-Orig-Host | http://xyz.services.usp.gv.at |
| ORIG-SCHEME | X-Pvp-Orig-Scheme | https |
| ORIG-URI | X-Pvp-Orig-Uri | /at.gv.brz.xyz-p/startseite |
| X-Forwarded-For | 10.10.12.12 | |
| X-Forwarded-Host | http://xyz.services.usp.gv.at | |
| X-Forwarded-Port | 443 | |
| X-Forwarded-Prefix | /at.gv.brz.xyz-p | |
| X-Forwarded-Proto | https |
Security und Web Application Firewall
R-Verfahren im USP werden durch eine Web Application Firewall (WAF) geschützt. Diese prüft eingehende Anfragen und blockiert Angriffe, bevor sie das Backend erreichen. Damit eine Anbindung mittels R-Profil erfolgreich möglich ist, muss das Verfahren mit den aktuellen Web-Sicherheitsrichtlinien kompatibel sein. Insbesondere sind Schutzmaßnahmen gegen SQL-Injection, Command-Injection und Cross-Site-Scripting erforderlich.
Die folgenden Compliance-Regeln müssen jedenfalls eingehalten werden:
| Angriff | Schutzmaßnahmen |
|---|---|
| SQL-Injection |
Falls diese Maßnahmen nicht implementiert werden können, können in Abstimmung mit dem USP Entwicklungs-Team engmaschige Relaxation Rules konfiguriert werden. |
| Command-Injection |
|
| Cross-Site-Scripting |
|
| Buffer Overflow / DoS |
|