Software-technische Referenzarchitektur
Diese Seite ist ein Teil der IsyFact-Standards. Alle Inhalte der Seite, insbesondere Texte und Grafiken, sind urheberrechtlich geschützt. Alle urheberrechtlichen Nutzungs- und Verwertungsrechte liegen beim Bundesverwaltungsamt.
Die Nutzung ist unter den Lizenzbedingungen der Creative Commons Namensnennung 4.0 International gestattet.
Die software-technische Referenzarchitektur beschreibt, wie die in der fachlichen Referenzarchitektur definierten Anwendungen software-technisch in Form von IT-Systemen umgesetzt werden.
Eine zentrale Eigenschaft der software-technischen Referenzarchitektur ist, dass sie nicht zwischen Anwendungstypen unterscheidet. Die software-technische Umsetzung von Anwendungen ist ungeachtet ihrer Fachlichkeit gleich. Die software-technische Referenzarchitektur definiert hierzu das IT-System als Oberbegriff und beschreibt die Umsetzung einer Anwendung mittels einer Menge von IT-Systemen, die jedes für sich eine bestimmte Ausprägung besitzen. Diese Ausprägung ist technisch motiviert und umfasst aktuell Backends, Frontends und Batches.
1. Definition der Systemlandschaft
Der Begriff der Anwendungslandschaft ist fachlich motiviert. Die technische Entsprechung hierfür ist der Begriff der Systemlandschaft. Eine Systemlandschaft, die eine Anwendungslandschaft nach den IsyFact-Standards umsetzt, wird im Folgenden als IsyFact-Systemlandschaft bezeichnet. Eine solche IsyFact-Systemlandschaft beinhaltet alle IT-Systeme als technische Umsetzung der Anwendungen der Anwendungslandschaft sowie technische Systeme zur Unterstützung (z.B. Datenbanken oder Web-Server).
2. Strukturierung der Systemlandschaft
Wichtige Grundlagen für die Software-Referenzarchitektur sind die Schnittstellen und Aufruf-Beziehungen der IT-Systeme vom Typ Geschäftsanwendung, Querschnittsanwendung sowie Portal und Service-Gateway. Aufruf-Beziehungen werden stets unterschieden in interne Aufrufe, in welchen ein IT-System einer IsyFact-Systemlandschaft mit einem anderen IT-System derselben IsyFact-Systemlandschaft kommuniziert, und externe Aufrufe, in welchen ein IT-System der IsyFact-Systemlandschaft mit einem Anwender oder einem IT-System außerhalb dieser IsyFact-Systemlandschaft kommuniziert. Interne und externe Aufrufe unterscheiden sich sowohl in ihrer Authentifizierung und Autorisierung als auch (bei automatisierten Schnittstellen) in der verwendeten Technologie.
Im Folgenden werden die Schnittstellen und Aufrufbeziehungen pro Anwendungstyp erläutert.
Das Service-Gateway: Service-Gateway-Systeme haben die Aufgabe, Aufrufe von internen Anwendungen an externe Systeme und Aufrufe von externen Systemen an interne Anwendungen weiterzuleiten und dabei unterschiedliche Schnittstellentechnologien zu überbrücken.
Für die Weiterleitung von Aufrufen enthält ein Service-Gateway die folgenden Funktionalitäten:
-
Es bildet die Aufrufe zwischen der für externe Systeme verwendeten Webservice-Technologie und der für interne Schnittstellen verwendeten Technologie aufeinander ab. Es kapselt die Webservice-Technologie vor den internen Systemen.
-
Bei Aufrufen durch externe Systeme führt es die Authentifizierung und eine erste Autorisierung des Aufrufs durch.
Ein Service-Gateway-System besitzt weder eine eigene Datenhaltung noch eigene Fachlichkeit.
Die Geschäftsanwendung: Eine Geschäftsanwendung implementiert allgemein die Geschäftsprozesse einer Domäne. Geschäftsanwendungen können monolithisch strukturiert sein und alle Schichten der Softwarearchitektur umfassen, von der Benutzeroberfläche über Prozesse und Geschäftslogik bis hin zur Datenspeicherung. Sie können aber auch jeweils nur Teile davon implementieren, sodass z.B. eine Geschäftsanwendung eine GUI bereitstellt, eine weitere die Geschäftslogik implementiert und eine dritte schließlich die Persistierung der Daten realisiert. In diesem Fall würde die Gesamtfunktionalität durch das Zusammenwirken der drei Geschäftsanwendungen erbracht.
Die Geschäftsanwendungen einer IsyFact-Systemlandschaft können sich intern gegenseitig über ihre Service-Schnittstellen aufrufen. In einem konkreten Anwendungskontext einer IsyFact-Systemlandschaft wird man in der Regel die Arten von Geschäftsanwendungen noch genauer definieren und dabei auch die möglichen Aufrufbeziehungen zwischen ihnen geeignet einschränken.
Für die Kommunikation mit externen Systemen muss eine Geschäftsanwendung ein Service-Gateway-System verwenden, egal in welche Richtung die Kommunikation verläuft.
Geschäftsanwendungen, die eine Benutzeroberfläche bereitstellen, dürfen aus Sicherheitsgründen nicht direkt vom Benutzer aufgerufen werden, sondern werden in das Portal (siehe unten) der IsyFact-Systemlandschaft eingebunden.
Das Portal: Die Referenzarchitektur sieht keinen Portal-Server im klassischen Sinne vor. Es gibt weder einen systemübergreifenden Rahmen noch eine systemübergreifende Navigation.
Ein Portal im Sinne der Referenzarchitektur besteht aus:
-
Einem Web-Server-Cluster, der Aufrufe entgegennimmt und an die Application-Server der Geschäftsanwendungen weiterleitet.
-
Einer zentralen Startseite, welche den eingeloggten Benutzern die Geschäftsanwendungen der Anwendungslandschaft, für welche sie berechtigt sind, präsentiert.
Der Zweck eines Portals ist die gemeinsame Authentifizierung und Autorisierung für alle Geschäftsanwendungen und die Indirektion des Zugriffs von Nutzern auf die Geschäftsanwendungen.
Die Querschnittsanwendung: Eine Querschnittsanwendung bietet Geschäftsanwendungen querschnittlich genutzte Funktionalitäten an, etwa für die Bereitstellung von Schlüsseldaten. Querschnittsanwendungen können eine eigene Datenhaltung besitzen.
Querschnittsanwendungen werden nur von internen Benutzern oder anderen IT-Systemen derselben Systemlandschaft aufgerufen. Sie rufen selbst nur andere Querschnittsanwendungen auf. Eine Ausnahme bilden Querschnittsanwendungen, wie z.B. ein Mail-Gateway für den Versand von E-Mails an externe Empfänger.
3. Servicekommunikation
Services sind ein wesentlicher Bestandteil jeder Systemlandschaft. Die software-technische Referenzarchitektur definiert HTTP als grundsätzliches Übertragungsprotokoll und weitere Vorgaben für Services zu den Themen:
-
Kommunikation mit internen und externen Systemen,
-
Übertragung von Metadaten und Nutzdaten,
-
Versionierung von Services.
4. Prinzipien der Sicherheitsarchitektur
Die IsyFact-Referenzarchitektur beinhaltet auch Vorgaben für die Sicherheitsarchitektur einer Systemlandschaft. Eine davon ist die Forderung, dass IsyFact-konforme IT-Systeme gegen unberechtigte Nutzung zu schützen sind. Folgende Prinzipien der Sicherheit liegen der Erstellung einer Systemlandschaft zugrunde:
-
Authentifizierungsinformationen, wie Benutzername und Passwort, werden nicht über IT-Systeme hinweg weitergegeben. Nur der Eigentümer der Authentifizierungsinformationen und der zentrale IAM-Service besitzen Kenntnis über diese Informationen.
-
Eine Zweifaktor-Authentifizierung ist durch das Client-Zertifikat und dem darin enthaltenen Behördenkennzeichen (BHKNZ) als zusätzliches Authentifizierungsmerkmal konzipiert, allerdings setzt dies im IAM-Service voraus, dass dieses Merkmal dort auch ausgewertet werden kann.
-
Bei Aufrufen von Außen (durch Web-Clients oder externen Anwendungen) erfolgt die Authentifizierung und grobgranulare Autorisierung an den Außengrenzen der Systemlandschaft (Portal, Service-Gateway bzw. Authentication-Gateway).
-
Kommt der Aufruf von innerhalb der Systemlandschaft (z.B. bei einem Batch- oder Task-Aufruf), benötigt der (technische) Aufrufer eigene Authentifizierungsinformationen und die Authentifizierung und grobgranulare Autorisierung geschieht aus der Nutzungsschicht (Batch / Task) des aufrufenden IT-Systems.
-
Wird zur Ausführung des Aufrufs ein Service einer anderen Geschäftsanwendung / Domäne benötigt, erfolgt dessen Aufruf im Namen und mit der Autorisierung des ursprünglichen Aufrufers.
-
Die feingranulare Autorisierung geschieht an den Systemgrenzen / externen Schnittstellen der aufgerufenen Geschäftsanwendung.
-
Existiert keine Systemlandschaft (d.h. IT-Systeme stehen für sich allein), gilt grundsätzlich, dass die Authentifizierung und grobgranulare Autorisierung in der Nutzungsschicht (Service oder Batch) des IT-Systems geschehen muss.
Folgende Abbildung zeigt die Umsetzung der Prinzipien in der Systemlandschaft:
-
Portal:
Interne und externe Anwender rufen über das Portal die Geschäftsanwendung auf und werden dabei durch das Portal an den IAM-Service weitergeleitet, um die Authentifizierung durchzuführen. Erst nach erfolgreicher Authentifizierung leitet das Portal den Anwender zusammen mit den Autorisierungsinformationen an die Geschäftsanwendung weiter. -
Service-Gateway:
Das Service-Gateway hat die Aufgabe, Anfragen von externen Anwendungen entgegenzunehmen und zusammen mit den Autorisierungsinformationen an den passenden Service der Geschäftsanwendung weiterzuleiten. Aktuell übernimmt das Service-Gateway auch die Authentifizierung von externen Anwendungen. Dazu leitet es die von der externen Anwendung erhaltenen Authentifizierungsdaten an den IAM-Service weiter. Nach erfolgreicher Authentifizierung leitet das Service-Gateway die Anfrage zusammen mit den Autorisierungsinformationen an die Geschäftsanwendung weiter. Zukünftig soll das Service-Gateway keine Authentifizierungsanfragen mehr verarbeiten. Stattdessen soll das Authentication-Gateway verwendet werden. -
Authentication-Gateway:
Das Authentication-Gateway übernimmt die Authentifizierung von externen Anwendungen. Dazu leitet es die von der externen Anwendung erhaltene Authentifizierungsanfrage an den IAM-Service weiter. Nach erfolgreicher Authentifizierung gibt das Authentication-Gateway die Autorisierungsinformationen an die externe Anwendung zurück. Die externe Anwendung sendet die erhaltenen Autorisierungsinformationen gemeinsam mit der fachlichen Anfrage über das Service-Gateway an die Geschäftsanwendung. -
Anwendungen innerhalb der Anwendungslandschaft:
Wenn Anwendungen andere Geschäfts- und Querschnittsanwendungen innerhalb der Systemlandschaft aufrufen, verwenden sie die Autorisierungsinformationen des ursprünglichen Aufrufers oder authentifizieren sich mit ihren eigenen Zugangsdaten direkt am IAM-Service und nutzen die erhaltenen Autorisierungsinformationen zum Aufruf. -
IAM-Service:
Der IAM-Service verarbeitet die Authentifizierungsanfragen und beantwortet sie mit zeitlich begrenzten Autorisierungsinformationen. Dazu greift er im Regelfall auf das Benutzerverzeichnis zu.
IAM steht für Identity and Access Management. |
Darüber hinaus finden Authentifizierung und Autorisierung nach den Vorgaben des Berechtigungskonzepts statt. Da das Berechtigungskonzept individuell für jede Systemlandschaft erstellt wird und sich im Einzelnen stark von Inhalt und Umfang her unterscheidet, ist es kein Bestandteil der IsyFact.
Eine detaillierte Beschreibung der erwähnten Zugriffskomponenten (Portal, Service-Gateway, Authentication-Gateway), des IAM-Service, der implementierten Authentifizierungsverfahren und der Autorisierungsinformationen (Access-Token) findet sich im Konzept Security.
4.1. Authentifizierung
Authentifikation: Verifikation der Identität eines Benutzers als Zugangskontrolle zu einem geschützten System. Dabei ist es erforderlich, eindeutige Eigenschaften (z.B. biometrische Daten) oder geheime Daten (z.B. Passwort) zur Überprüfung zu übergeben. |
Nach der erfolgreichen Authentifizierung eines Benutzers gibt der IAM-Service Autorisierungsinformationen zurück. Diese Autorisierungsinformationen dienen dann als Nachweis des Nutzungsrechts des aufgerufenen Dienstes (s. Autorisierung). Die tatsächliche Identität und Authentifizierungsinformationen des Benutzers spielen ab hier keine Rolle mehr und sind deshalb nicht Teil der Autorisierungsinformationen.
In der Regel erfolgt die Authentifizierung von Benutzern über eine zentrale Komponente der Systemlandschaft, in welche das IT-System eingebettet ist, dem IAM-Service. Die Authentifizierung darf auch lokal, d.h. vom IT-System selbst, durchgeführt werden, falls es beispielsweise nicht in eine Systemlandschaft eingebettet ist.
Für die zentrale Authentifizierung wird in der IsyFact ein OAuth 2.0 konformer IAM-Service verwendet.
4.2. Autorisierung
Autorisierung: Zustimmung oder Erlaubnis, spezieller die Einräumung von Rechten gegenüber interessierten Rechtssubjekten, gegebenenfalls als Nutzungsrecht gegenüber Dritten. |
Im aufgerufenen IT-System wird die Anfrage – je nach Schutzbedarf und Funktionalität – autorisiert. Zwingend wird das Vorhandensein sowie die Authentizität und Gültigkeit der mit der Anfrage mitgegebenen Autorisierungsinformationen geprüft. In IsyFact ist eine feingranulare Autorisierung vorgesehen: Im Benutzerverzeichnis sind zu einem Benutzer die ihm zugewiesenen Rollen in der Systemlandschaft verknüpft und Bestandteil der Autorisierungsinformationen aus dem IAM-Service. Anhand dieser Rollen aus den Autorisierungsinformationen weist das IT-System einem Aufruf anwendungsspezifische Rechte zu und prüft diese gegen die für die Nutzung des angefragten Service benötigten Rechte. Wie genau Rollen und Rechte spezifiziert werden, beschreibt das Konzept Security im Kapitel Rollen und Rechte.
5. Verwendung von Produkten
Bei der Umsetzung einer Architektur für eine Anwendung oder eine Anwendungslandschaft können an vielen Stellen fertige Produkte Dritter eingesetzt werden. Das beschleunigt die Entwicklung und reduziert die Kosten.
Bei der Produktentscheidung sind zwei Seiten zu berücksichtigen: Auf der einen Seite bietet die Konzentration auf projektübergreifend einheitliche Produkte die Möglichkeit, die Fähigkeiten der Mitarbeiter zu bündeln und diese übergreifend einzusetzen. Auf der anderen Seite besteht die Gefahr, durch einen zu engen Fokus die Möglichkeiten eines Projekts zu sehr zu beschränken. Eine Lösung kann dann auch Gefahr laufen, zu allgemein zu werden, was letztlich die Komplexität steigert und größeren Aufwand verursacht.
Die für die Umsetzung der Architektur verwendeten Produkte lassen sich in die Kategorien Basistechnologien, Systemsoftware und Bibliotheken für die Anwendungsentwicklung unterteilen.
Basistechnologien: Basistechnologien legen grundlegende technische Entscheidungen fest, wie z.B. die Programmiersprache und die verwendete Web-Technologie.
Systemsoftware: Die Systemsoftware legt die technische Ablaufumgebung für die Software fest und bietet grundlegende Services für eine IsyFact-Systemlandschaft an. Hierzu gehören z.B. das Betriebssystem, der Web-Server, der Application-Server, das IAM-System und die Datenbank.
Bibliotheken für die Anwendungsentwicklung: Die Anwendungsentwicklung wird durch den Einsatz von Frameworks und entsprechenden Bibliotheken vereinfacht und beschleunigt. Die IsyFact verwendet insbesondere Spring, Hibernate und Angular.
Eine detaillierte Liste der verbindlichen und empfohlenen Produkte ist im Produktkatalog zu finden.