XACML, Entitlement Management, Autorisierungsmanagement – so lauten neue Schlagworte für eine Entwicklung, die schon seit einiger Zeit läuft und ohnehin längst überfällig ist. Es geht darum, dass man Anwendungssicherheit von außen und zentral steuerbar macht.
Auch heute noch werden viele Anwendungen mit einem eigenen Benutzermanagement, eigener Authentifizierung und selbst verwalteten und gespeicherten Kennwörtern, fest vorgegebenen Rollen (falls überhaupt), eigenem Logging und auch fest codierten Regeln für die Autorisierung und für Business-Regeln entwickelt. Das Problem ist offensichtlich: Hart codierte Sicherheit ist aufwändig in der Pflege, sie ist komplex in der Verwaltung, weil sie pro Anwendung konfiguriert werden muss, und sie erfüllt kaum die heute gestellten Anforderungen an die Nachvollziehbarkeit.In einigen Bereichen gibt es durchaus auch Fortschritte. Immer mehr Anwendungen nutzen externe Verzeichnisdienste, beispielsweise über den Standard LDAP. Und immer mehr Anwendungen verlassen sich auch auf die Authentifizierung durch andere Systeme, beispielsweise durch eine Integration mit dem Active Directory oder durch die Unterstützung von Identity Federation-Standards wie SAML.
Ein ganz anderes Bild zeigt sich bei der Autorisierungssteuerung und beim Auditing. Hier gibt es nur selten eine Unterstützung externer Systeme, auch wenn XACML (eXtensible Authorization Control Markup Language) schon lange auf dem Markt ist und auch Microsoft mit Technologien wie dem Authorization Manager (der sich so nicht durchgesetzt hat) schon längere Zeit an Lösungsansätzen arbeitet. Interessanterweise sind solche Ansätze im Mainframe-Umfeld oft schon seit Jahrzehnten umgesetzt, aber eben nicht für heterogene Systemumgebungen.
Die Idee ist eigentlich einfach: Wenn eine Anwendung eine Autorisierungsentscheidung benötigt, stellt sie eine entsprechende Abfrage, also beispielsweise »Darf der Benutzer Max Mülller mit der ID 4711 die Schadensbearbeitung eines Haftpflichtschadens mit einer Schadenssummer von 55 000 Euro durchführen?« Natürlich lautet die Abfrage auf der Systemebene etwas anders – aber das Grundprinzip ist klar. Abhängig von den Rollen von Max Müller (Schadenssachbearbeiter Haftpflicht) und seinen Kompetenzen (Maximale Schadenssummer von 50 000 Euro) kann das Autorisierungssystem dann eine Antwort erstellen, die in diesem Fall »nein« lauten würde. Der Vorteil ist, dass man ohne Änderungen in der Anwendung die Regeln anpassen kann, also beispielsweise das Limit auf 75 000 Euro heraufsetzen kann.
Das setzt voraus, dass Anwendungen so entwickelt werden, dass sie auf Dienste für die Autorisierung zugreifen und dass Anfragen in standardisierter Weise beschrieben und zentral bearbeitet werden können. Hier gibt es seit geraumer Zeit die Produktkategorie der Entitlement Management-Systeme, die manchmal auch als Policy Server bezeichnet werden. Neben etablierten Anbietern wie CA, IBM oder Oracle gibt es auch eine Reihe von kleineren Unternehmen in diesem Bereich wie beispielsweise Axiomatics, Bitkoo oder Engiweb. Außerdem gibt es vergleichbare Funktionen von einigen Identity Provisioning-Anbietern wie Beta Systems oder iSM.
Ein solcher Ansatz, der viele Vorteile bietet, setzt einerseits eine verlässliche und stabile Infrastruktur voraus, um die Antworten ohne Laufzeitprobleme zu liefern, andererseits aber vor allem eine Umstellung der Anwendungsentwicklung. Letztlich bietet das Verfahren aber massive Vorteile mit Blick auf Entwicklungsaufwand (Schnittstellen nutzen statt Sicherheitslogik entwickeln), Software-Audits (Schnittstellen prüfen statt Code prüfen) und Änderungsfreundlichkeit von Anwendungen (Konfiguration von Regeln statt Codeänderungen). Inzwischen sind die am Markt verfügbaren Lösungen auch so reif, dass sich ein Blick auf die Angebote und die Entwicklung von Strategien und Konzepten für die Externalisierung von Sicherheit aus Anwendungen lohnt.