-
Gebiet der Erfindung
-
Die
Erfindung betrifft allgemein das Gebiet der Zugriffssteuerung auf
eine Informationsressource und insbesondere ein Zugriffssteuerungssystem,
eine Regelmaschinen-Anpasseinrichtung und eine regelbasierte Erzwingungsplattform,
welche für
die Zugriffssteuerung verwendbar sind. Ferner betrifft die Erfindung
ein Verfahren zum Ausführen
einer Zugriffssteuerung auf mindestens eine Informationsressource,
die mindestens einer Anwendung innerhalb eines Computernetzwerks
zugeordnet ist.
-
Beschreibung des Stands der
Technik
-
Im
Allgemeinen beruht die Zugriffssteuerung auf eine Informationsressource
auf einer Referenzüberwachungseinrichtung,
welche eine Zugriffsanforderung anhand eines statischen Satzes von
Zugriffsrechten, die einem Prinzip oder einer Regel zugeordnet sind,
beurteilt. Es können
jedoch auch Kontextinformationen berücksichtigt werden, um zu entscheiden,
ob ein Zugriff gewährt
werden sollte oder nicht. Dieser Kontext kann gegeben sein durch
die Schritte, die ein Benutzer bereits in einem Arbeitsablauf ausgeführt hat,
die Geschäftsobjekte,
auf die er in der Vergangenheit zugegriffen hat, jedoch auch einen abstrakteren
Kontext in der Art der Temperatur oder des Orts. Dies führt jedoch
zu einer Reihe von Problemen, die keine aktuellen Systeme zufrieden
stellend zu adressieren scheinen.
-
Auf
im Stand der Technik beschriebene Konzepte wurde hauptsächlich nur
in dem verschiedenen Kontext vereinbarungsbasierter verteilter Systeme oder
der Netzwerkverwaltung Bezug genommen. Im A. Kern und C. Walhorn "Rule support for
role-based access control",
präsentiert
auf dem ACM Symposium an Access Control Models and Technologies, Stockholm,
Schweden, 2005, ist die Verwendung der JESS-Regelmaschine zur Spezifikation
und Beurteilung von Randbedingungen im Kontext eines Zugriffsrechts-Verwaltungssystems
beschrieben. Der Ansatz ist jedoch auf statische Kontextinformationen in
der Art organisatorischer Einheiten eines Angestellten beschränkt. Der
Ansatz von Kern u. a. zeigt auch nicht, wie unabhängige Anwendungen
gleichzeitig verbunden werden können.
Ferner beruht der Ansatz auf der Verwendung einer sehr spezifischen Software
zum Verwalten der Randbedingungen.
-
J.
Chomicki und J. Lobo, "Monitors
for History-Based Policies",
Policies for Distributed Systems and Networks, Band 1995, 2001,
offenbart einen regelbasierten Ansatz, der zum Spezifizieren und
Beurteilen dynamischer Vereinbarungen verwendet wird. Die Veröffentlichung
konzentriert sich auf die Berechnung von Regeln, sie berücksichtigt
jedoch nicht die Gesamtarchitektur, die es ermöglichen würde, dass verschiedene Anwendungen
verbunden werden und Kontextinformationen konvertiert werden.
-
S.
Ceri und R. Ramakrishnan, "Rules
in data-based systems", ACM
Computing Surveys, Band 28, 1996, betrachtet Regeln in Datenbanksystemen. Diese
Veröffentlichung
konzentriert sich nur auf eine einzige homogene Datenbank und betrachtet
nur statische Regeln in der Art monetärer Randbedingungen.
-
K.
Knorr und H. Weidner, "Analyzing
Separation of Duties in Petri Net Workflows", Lecture Notes in Computer Science,
Band 2052, 2001, verwenden einen regelbasierten Ansatz zum Spezifizieren
der Teilung von Aufgabenregeln im Kontext von Arbeitsablaufsystemen.
Diese Veröffentlichung
bezieht sich auf Aspekte und stellt keine Informationen darüber bereit,
wie Randbedingungen im Kontext heterogener Anwendungen realistisch
erzwungen werden können.
-
In
Bezug auf existierende kommerzielle Systeme kann die BEA-Workflow-Solution-Suite
erwähnt werden.
Diese Lösung
stellt eine Regelspezifikationsfunktionalität bereit, jedoch nur in einer
proprietären
und einer systemabhängigen
Weise. Die Lösung scheint
keine explizite Funktionalität
bereitzustellen, um dynamische Kontextinformationen auf der Grundlage
heterogener und unabhängiger
Anwendungen zu behandeln. Die Regeln des Systems sind strikt prozedural
und sehen keine Auswahl in Bezug auf die verwendete Regelmaschine
vor.
-
Ein
weiteres kommerzielles System ist iLog. Dieses System stellt nur
eine generische Regelmaschine bereit, die von Anwendungsentwicklern
nach Wunsch zu verwenden ist.
-
WO01/41039 betrifft ein
Verfahren zum Definieren einer Sicherheitsvereinbarung, wobei für jeden
Sicherheitsmechanismus anwendungsspezifische Informationen als ein
Schlüssel
eingekapselt werden und zu einer semantischen Schicht exportiert werden.
Schlüssel
werden kombiniert, um Schlüsselketten
innerhalb der semantischen Schicht zu bilden. Eine Sicherheitsvereinbarung
wird durch die Bildung von Schlüsselketten
aus Schlüsseln
und das Zuordnen von Benutzern zu den Schlüsselketten definiert. Die Sicherheitsvereinbarung
wird übersetzt
und zu den Sicherheitsmechanismen exportiert. Die Sicherheitsvereinbarung
wird dann durch die Sicherheitsmechanismen erzwungen. In
US2005/0193196 ist eine
Vorrichtung zum Implementieren einer rollenbasierten Zugriffssteuerung
offenbart, wodurch Verwaltungsaufwendungen verringert werden, die
mit dem Verwalten des Zugriffs entsprechend Vereinbarungen und Rollen
verbunden sind.
-
Es
gibt bestimmte offene Fragen, die innerhalb des zitierten Stands
der Technik noch nicht zufrieden stellend beantwortet wurden. Keine
Antwort ist beispielsweise auf die Frage gegeben, wie verschiedene
Kontextdaten von vorhandenen oder externen Anwendungen gesammelt
und in einer gleichmäßigen Weise
dargestellt werden können.
Ferner ist offen, wie Zugriffsrandbedingungen auf der Grundlage
solcher Kontextdaten, unabhängig
von dem Zugriffssteuerungssystem einer spezifischen Zielanwendung,
spezifiziert und beurteilt werden können. Ferner ist noch zu beantworten,
wie solche Zugriffsrandbedingungs-Beurteilungsergebnisse schließlich einem
anwendungsspezifischen Sicherheitsrandbedingungs-Erzwingungspunkt
präsentiert werden
können,
der schließlich
dafür verantwortlich ist, über den
Zugriff auf eine bestimmte Informationsressource zu entscheiden.
-
Zusammenfassung der Erfindung
-
Auf
der Grundlage der vorstehend erwähnten
Fragen und einer Beurteilung des aktuellen Stands der Technik werden
ein Zugriffssteuerungssystem mit den Merkmalen von Anspruch 1, eine
Regelmaschinen-Anpasseinrichtung mit den Merkmalen von Anspruch
8, die auf die Zugriffssteuerung anwendbar ist, eine regelbasierte
Erzwingungsplattform mit den Merkmalen von Anspruch 10, die auf
die Zugriffssteuerung anwendbar ist, und ein Verfahren zum Ausführen einer
Zugriffssteuerung mit den Merkmalen von Anspruch 13 vorgeschlagen.
Ferner sind ein Computerprogrammprodukt mit den Merkmalen von Anspruch
15, ein Computerprogramm mit den Merkmalen von Anspruch 16 und ein
computerlesbares Medium mit den Merkmalen von Anspruch 17 vorgesehen.
Weitere Ausführungsformen
werden durch die jeweiligen abhängigen
Ansprüche
beschrieben.
-
Nach
Anspruch 1 der vorliegenden Patentanmeldung wird ein Zugriffssteuerungssystem
vorgeschlagen, das eine Zugriffssteuerung auf mindestens eine Informationsressource
bereitstellt, die mindestens einer Anwendung innerhalb eines Computernetzwerks
zugeordnet ist. Das Zugriffssteuerungssystem weist auf: eine Vielzahl
von Kontextquellen, die für
die mindestens eine Anwendung relevant sind und Kontextinformationen
bereitstellen, eine Randbedingungs-Spezifikationskonsole, die eine
Schnittstelle zum Spezifizieren anwendungsspezifischer Randbedingungen
auf der Grundlage der Kontextquellen bereitstellt, eine Regelmaschine,
die in der Lage ist, Tatsachen zu behandeln und Ableitungsregeln
auf diese Tatsachen anzuwenden, einen Erzwingungspunkt für anwendungsspezifische
Randbedingungen, der in der Lage ist, Zugriffsanforderungen zu empfangen
und daher Tatsachen abzufragen, und dafür verantwortlich ist, Zugriffs entscheidungen
in Bezug auf die Informationsressource auf der Grundlage dieser
Tatsachen und anwendungsspezifischer Randbedingungen zu treffen,
und eine Regelmaschinen-Anpasseinrichtung,
die als eine Verbindungskomponente zum Verbinden der Regelmaschine
mit den Kontextquellen der Randbedingungs-Spezifikationskonsole
bzw. dem Randbedingungs-Erzwingungspunkt und als ein Vermittler
bei der Kommunikation der Regelmaschine mit den Kontextquellen, der
Randbedingungs-Spezifikationskonsole bzw. dem Randbedingungs-Erzwingungspunkt
wirkt, um eine Zugriffssteuerung auf die mindestens eine Informationsressource
auf der Grundlage spezifizierter anwendungsspezifischer Randbedingungen
in Bezug auf von den Kontextquellen ausgehende Kontextinformationen
zu ermöglichen.
-
Es
ist beispielsweise möglich,
dass die Anwendung einer Aufgabenverwaltungsanwendung entspricht.
In einem solchen Fall könnte
es wünschenswert
sein, eine dynamische Trennung von Aufgaben- bzw. Pflichteigenschaften
in der Aufgabenverwaltungsanwendung zu erzwingen. Die Informationsressource,
die der Anwendung zugeordnet ist, wofür eine Zugriffssteuerung bereitzustellen
ist, ist in einem weiten Sinn zu verstehen. In dem erwähnten Beispiel
der Aufgabenverwaltungsanwendung kann die Informationsressource
als ein Pool von Aufgaben beschrieben werden, die verschiedenen
Arbeitsabläufen
zugewiesen werden können.
Ein Aspekt der vorliegenden Erfindung kann beispielsweise verwendet
werden, um es einem Benutzer auf der Grundlage der Geschichte der
Aufgaben, die er in der Vergangenheit ausgeführt hat, zu erlauben/zu verweigern,
eine gegebene Aufgabe auszuführen.
-
Jede
andere Anwendung, die zu verwalten ist, indem anwendungsrelevante
Kontextinformationen berücksichtigt
werden, oder welche von einer solchen Verwaltung profitiert, kann
zumindest einige Aspekte der vorliegenden Erfindung verwenden. Immer
dann, wenn Vereinbarungen innerhalb eines Organisationsbereichs
zu erzwingen sind, könnten
zumindest einige Aspekte der vorliegenden Erfindung verwendet werden.
Ein Brennpunkt der vorliegenden Erfindung kann in einer Erzwingung
von Randbedingungen bei einer Zielanwendung über den Randbedingungs-Erzwingungspunkt
gesehen werden.
-
Innerhalb
des Schutzumfangs der vorliegenden Beschreibung und der Ansprüche ist
eine Regelmaschine als ein System zu verstehen, das dabei hilft,
Koordinationsregeln, wie Geschäftsregeln,
zu verwalten. Die Regeln, denen ein Geschäft folgt, können beispielsweise von einer
Firmenvereinbarung, wie beispielsweise "Alle Kunden, die mehr als $100 auf einmal
kaufen, erhalten einen Discount von 10%" oder von anderen Quellen in der Art
einer Sicherheitsvereinbarung kommen. Die Regelmaschine kann unter
anderen Funktionen einige Regeln auf der Grundlage anderer Regeln
ableiten und einige dieser Regeln auf Informationstechnologieanwendungen beziehen,
die betroffen sind oder eine oder mehrere der Regeln erzwingen müssen. Eine
Tatsache ist jede Aussage, die einen aktuellen Zustand des Systems
beschreibt, beispielsweise "Der
Kunde John Smith hat einen iPod für 200 Euro gekauft". Für die vorliegende
Erfindung sind Tatsachen Kontextinformationen, die für die mindestens
eine Anwendung relevant sind, die irgendeinen Aspekt der vorliegenden Erfindung
verwendet. Tatsachen sind in der Tatsachenbasis der Regelmaschine
festzulegen, um Änderungen
des Zustands des Systems wiederzuspiegeln, und die Regelmaschine
reagiert auf diese Tatsachen durch Wirksammachen der Regeln, die
diesen Tatsachen entsprechen, falls überhaupt.
-
Durch
die Regelmaschine ist es möglich, Randbedingungen
programmatisch unter Verwendung der Regelmaschinensprache über die
Randbedingungs-Spezifikationskonsole zu spezifizieren und daher
Randbedingungen, wie beispielsweise "Ein Benutzer darf einen Scheck nicht
zur Bank übertragen,
falls er ihn ausgestellt und unterschrieben hat" zu spezifizieren.
-
Ein
anderer Aspekt der vorliegenden Erfindung sieht eine Regelmaschinen-Anpasseinrichtung vor,
die für
die Zugriffssteuerung auf mindestens eine Informationsressource,
die mindestens einer Anwendung innerhalb eines Computernetzwerks
zugeordnet ist, verwendbar ist. Die Regelmaschinen-Anpasseinrichtung
wirkt als Vermittler bei der Kommunikation zwischen einer Regelmaschine
und verschiedenen anwendungsspezifischen Kontextquellen bzw. einem
Erzwingungspunkt für
anwendungsspezifische Randbedingungs-Erzwingungspunkte. Die Regelmaschinen-Anpasseinrichtung
weist ferner folgende Komponenten auf:
- a. eine
Kontextwandlerkomponente, die einen Zugriff auf die Regelmaschinen-Anpasseinrichtung für die verschiedenen
Kontextquellen bereitstellt, welche Kontextinformationen bereitstellen,
und als ein Vermittler bei der Kommunikation der Regelmaschine mit
einer der Kontextquellen wirkt,
- b. eine Randbedingungs-Wandlerkomponente, die als ein Vermittler
bei der Kommunikation der Regelmaschine mit einer Randbedingungs-Spezifikationskonsole
wirkt, welche eine Schnittstelle bereitstellt, um anwendungsspezifische Randbedingungen
auf der Grundlage der Kontextquellen zu spezifizieren, um es der
Regelmaschine zu ermöglichen,
Randbedingungen zu erzwingen, wenn die Kontextquellen ihre jeweiligen
Kontextinformationen aktualisieren, und
- c. eine Anfragewandlerkomponente, die einen Zugriff auf die
Regelmaschinen-Anpasseinrichtung für den Randbedingungs-Erzwingungspunkt
bereitstellt und als Vermittler bei der Kommunikation der Regelmaschine
mit dem Randbedingungs-Erzwingungspunkt
wirkt, um zu ermöglichen,
dass der Randbedingungs-Erzwingungspunkt Zugriffsentscheidungen
auf der Grundlage anwendungsspezifischer Randbedingungen in Reaktion
auf eine bestimmte Anfrage vornimmt.
-
Gemäß einer
anderen Ausführungsform
ist eine regelbasierte Erzwingungsplattform vorgesehen, die für die Zugriffssteuerung
auf mindestens eine Informationsressource, die mindestens einer Anwendung
innerhalb eines Computernetzwerks zugeordnet ist, verwendbar ist.
Die Plattform weist auf: eine Regelmaschine, die in der Lage ist,
Tatsachen zu behandeln und Ableitungsregeln auf diese Tatsachen
anzuwenden, eine Randbedingungs-Spezifikationskonsole, die eine
Schnittstelle zum Spezifizieren anwendungsspezifischer Randbedingungen
auf der Grundlage vereinbarter anwendungsspezifischer Kontextquellen
bereitstellt, und eine Regelmaschinen-Anpasseinrichtung, die einen
Zugriffspunkt auf die Randbedingungs-Spezifikationskonsole, um in der
Lage zu sein, innerhalb der Randbedingungs-Spezifikationskonsole
spezifizierte Randbedingungen zur Regelmaschine weiterzuleiten,
so dass die Randbedingungen als ein Regelsatz in der Regelmaschine
gespeichert werden, gleichmäßige Zugriffspunkte
für anwendungsspezifische
Kontextquellen zum Zugriff auf die Plattform, um sie in die Lage
zu versetzen, mit der Regelmaschine zu kommunizieren, so dass von
den Kontextquellen bereitgestellte Kontextinformationen als Tatsachen
innerhalb der Regelmaschine ausgedrückt werden können, und
einen Zugriffspunkt für
einen Erzwingungspunkt für
anwendungsspezifische Randbedingungen zum Zugriff auf die Plattform,
um eine Zugriffssteuerung auf die mindestens eine Informationsressource auf
der Grundlage der anwendungsspezifischen Randbedingungen in Bezug
auf von den Kontextquellen stammende Kontextinformationen zu ermöglichen,
bereitstellt.
-
Gemäß einem
anderen Aspekt sieht die Erfindung ein Verfahren zum Ausführen einer
Zugriffssteuerung auf mindestens eine Informationsressource vor,
die mindestens einer Anwendung innerhalb des Computernetzwerks zugeordnet
ist. Das Verfahren weist folgende Schritte auf:
- a.
Identifizieren anwendungsrelevanter Kontextquellen zur Anwendungsentwicklungszeit,
- b. Spezifizieren von Randbedingungen durch eine Randbedingungs-Spezifikationskonsole
auf der Grundlage von Kontextinformationen, die zur Laufzeit durch
die identifizierten relevanten Kontextquellen bereitgestellt werden,
- c. Übersetzen
der spezifizierten Randbedingungen durch eine Regelmaschinen-Anpasseinrichtung
in Regeln, die von einer geeigneten Regelmaschine verständlich sind,
- d. Übersetzen
von Kontextinformationen, die von den identifizierten relevanten
Kontextquellen ausgehen, durch die Regelmaschinen-Anpasseinrichtung
in Tatsachen, die von der Regelmaschine interpretiert und mit den
jeweiligen Regeln geeignet korreliert werden können,
- e. Abfragen solcher Tatsachen bei Bedarf durch einen Erzwingungspunkt
für anwendungsspezifische
Randbedingungen von der Regelmaschine über die Regelmaschinen-Anpasseinrichtung,
um es dem Randbedingungs-Erzwingungspunkt zu ermöglichen, geeignete Erzwingungsentscheidungen
zu treffen.
-
Implementationen
der Erfindung ermöglichen
das Harmonisieren heterogenen Kontexts vorhandener Anwendungen und
stellen einen gemeinsamen Weg zu seiner Darstellung bereit, um Zugriffsentscheidungen
zu beurteilen. Ferner kann eine zentralisierte, jedoch anwendungsunabhängige Spezifikation
von Zugriffsrandbedingungen ermöglicht werden.
Eine zentralisierte, jedoch anwendungsunabhängige Beurteilung von Systemkontext
und -randbedingungen unter Verwendung eines regelbasierten Ansatzes
ist möglich.
Ferner werden die Beurteilungsergebnisse in ein Format konvertiert,
das einen anwendungsspezifischen Sicherheitsrandbedingungs-Erzwingungspunkt
zur Entscheidung über eine
Zugriffsanforderung ermöglicht.
-
Innerhalb
des Schutzumfangs der vorliegenden Beschreibung definiert eine Informationsressource
eine Ressource, die einer Anwendung zugeordnet ist, welche eine
Implementation der Erfindung verwenden möchte, für die eine Zugriffssteuerung
sinnvoll ist.
-
Gemäß einer
möglichen
Ausführungsform des
beanspruchten Zugriffssteuerungssystems ist die Regelmaschinen- Anpasseinrichtung
in der Lage, Kontextinformationen von einer der Kontextquellen in Tatsachen
zu übersetzen,
die von der Regelmaschine interpretiert und mit Regeln von dieser
geeignet korreliert werden können.
-
Ferner
ist es möglich,
dass die Regelmaschinen-Anpasseinrichtung auch in der Lage ist,
von der Randbedingungs-Spezifikationskonsole
weitergeleitete Randbedingungen in Regeln zu übersetzen, die von der Regelmaschine
interpretiert und geeignet auf Tatsachen angewendet werden können.
-
Die
Regelmaschinen-Anpasseinrichtung kann als eine Komponente des Zugriffssteuerungssystems
angesehen werden, welche eine gemeinsame Abstraktionsschicht über der
Regelmaschine und einen gemeinsamen Weg für alle Kontextquellentypen,
um in Kontakt mit der Regelmaschine zu treten, bereitstellt. Die
Regelmaschinen-Anpasseinrichtung ist für das Übersetzen von Kontextinformationen
der Kontextquellen sowie von der Randbedingungs-Spezifikationskonsole
spezifizierter Randbedingungen für
Tatsachen und Regeln in eine von der Regelmaschine interpretierbare
Sprache verantwortlich.
-
Gemäß einer
weiteren Ausführungsform
des Zugriffssteuerungssystems ist die Regelmaschinen-Anpasseinrichtung
in der Lage, Anfragen zu vom Randbedingungs-Erzwingungspunkt abgefragten Tatsachen
in eine Darstellung zu übersetzen,
die von der Regelmaschine interpretierbar ist, und auch Antworten
auf solche von der Regelmaschine bereitgestellte übersetzte
Anfragen in eine Darstellung zu übersetzen,
die dementsprechend von dem Randbedingungs-Erzwingungspunkt interpretierbar ist.
-
Die
Regelmaschinen-Anpasseinrichtung kann gleichmäßige Kommunikationsschnittstellen
für die
Vielzahl von Kontextquellen, die Randbedingungs-Spezifikationskonsole,
den Randbedingungs-Erzwingungspunkt bzw. die Regelmaschine bereitstellen,
um dementsprechend auf die Regelmaschinen-Anpasseinrichtung zuzugreifen.
-
Gemäß einer
weiteren Ausführungsform
des Zugriffssteuerungssystems ist die Regelmaschine eine ab Lager
lieferbare Komponente, insbesondere JESS, die eine Tatsachenbasis
zum Speichern von Tatsachen, welche von den Kontextquellen stammende
Kontextinformationen darstellen, und eine Regelbasis zum Speichern
von Regeln, welche Randbedingungen darstellen, die von der Randbedingungs-Spezifikationskonsole
spezifiziert und weitergeleitet werden, aufweist. Im Allgemeinen
braucht die zu verwendende Regelmaschine nicht für die Zugriffssteuerung spezifiziert
zu werden, sondern muss nur in der Lage sein, Tatsachen zu behandeln
und Ableitungsregeln auf diese Tatsachen anzuwenden. Innerhalb des
Zugriffssteuerungssystems gemäß einer
Ausführungsform
der vorliegenden Erfindung wird eine solche Regelmaschine in einer
solchen Weise verwendet, dass von den verschiedenen Kontextquellen
ausgehende Kontextinformationen als Tatsachen innerhalb der Tatsachenbasis
der Regelmaschine dargestellt werden. Zusätzlich werden durch die Randbedingungs-Spezifikationskonsole spezifizierte
Sicherheitsrandbedingungen schließlich als Regeln innerhalb
der Regelmaschine ausgedrückt.
Aus diesen Gründen
ist die innerhalb des vorgeschlagenen Zugriffssteuerungssystems
verwendete Regelmaschinen-Anpasseinrichtung für das Übersetzen solcher Kontextinformationen
sowie Randbedingungen für
Tatsachen und Regeln in die von der Regelmaschine interpretierte
Sprache verantwortlich. Die Sprache der Regelmaschine ist eine Computerprogrammiersprache,
die zu verwenden ist, um zu beschreiben, was die Regelmaschine tun
sollte. Insbesondere ist sie die Programmiersprache, in der Regeln
so auszudrücken
sind, dass die Regelmaschine sie verstehen und erzwingen kann. Jede
Regelmaschine kommt mit ihrer eigenen Regelsprache. Im Fall von
JESS könnte
beispielsweise eine als "Alle Kunden,
die mehr als $100 auf einmal kaufen, empfangen einen Discount von
10%" ausgedrückte Regel in
der englischen Sprache als "(Kunde-Auftrag(Auftrag-Nummer
?n)(Gesamt-Preis ?p:>100))=>(festlegen(anwenden-Discount
(Auftrag-Nummer ?n) (Prozentsatz 10)))" in der Regelmaschinensprache von JESS übersetzt
werden.
-
Die
Regelmaschinen-Anpasseinrichtung kann vollständig anwendungsunabhängig sein
und eine gemeinsame Abstraktionsschicht oberhalb der Regelmaschine
und einen gemeinsamen Weg für alle
relevanten Komponenten, die für
eine bestimmte Anwendung spezifisch sind, zum Zugriff auf die Regelmaschinen-Anpasseinrichtung
darstellen.
-
Die
Komponenten, welche die regelbasierte Erzwingungsplattform bilden,
die von einer Ausführungsform
der vorliegenden Erfindung bereitgestellt wird, sind im Allgemeinen
auch anwendungsunabhängig.
Dies bedeutet, dass jede Anwendung, welche die vorgeschlagene Erzwingungsplattform
verwendet, diese Komponenten als solche verwendet. Abgesehen von
der Regelmaschine, die eine ab Lager lieferbare Komponente sein
kann, welche in der Lage ist, Tatsachen zu behandeln und Ableitungsregeln
auf diese Tatsachen anzuwenden, weist die Erzwingungsplattform eine
Randbedingungs-Spezifikationskonsole und eine Regel maschinen-Anpasseinrichtung
auf. Die Regelmaschinen-Anpasseinrichtung
kann vom selben Typ sein, wie vorstehend beschrieben wurde. Sie
kann dementsprechend aus drei Teilkomponenten bestehen, nämlich einer
Kontextwandlerkomponente, einer Randbedingungs-Wandlerkomponente
und einer Anfragewandlerkomponente.
-
Die
Kontextwandlerkomponente stellt einen Zugriffspunkt zu der regelbasierten
Erzwingungsplattform für
die verschiedenen anwendungsspezifischen Kontextquellen dar. Überdies
ist dieser Zugriffspunkt gleichmäßig, so
dass alle Kontextquellen die gleiche Kommunikations-Anwendungsprogrammschnittstelle
(API) für
den Zugriff auf die regelbasierte Erzwingungsplattform und das Aktualisieren ihrer
jeweiligen Kontextinformationen verwenden. Die Kontextwandlerkomponente
stellt diese API bereit. Zusätzlich
ist die Kontextwandlerkomponente für das Übersetzen von Aufrufen dieser
API von einer der Kontextquellen in eine Darstellung, die von der Regelmaschine
interpretiert werden kann, verantwortlich. Dies bedeutet, dass die
Kontextwandlerkomponente für
das Übersetzen
von Kontextinformationen, die von einer der Kontextquellen ausgehen,
in Tatsachen, die von der Regelmaschine interpretiert und geeignet
mit jeweiligen Regeln korreliert werden können, verantwortlich ist. Die
Regelmaschine hat eine spezifische Tatsachenfestlegungssprache,
in die die Kontextinformationen übersetzt
werden müssen.
Die Tatsachenfestlegungssprache ist eine Teilmenge der Regelmaschinensprache,
welche zuvor erklärt
wurde. Die Tatsachenfestlegungssprache wird verwendet, um Tatsachen
in der Tatsachenbasis der Regelmaschine festzulegen. Im Fall von
JESS sind Ausdrücke
der Tatsachenfestlegungssprache von der Form "(festlegen (<Tatsache-Name> (<Tatsache-Parameter1-Name> <Tatsache- Parameter1-Wert>)...).
-
Die
Randbedingungs-Wandlerkomponente arbeitet mit der Randbedingungs-Spezifikationskonsole
zusammen. Ihre Rolle besteht darin, durch die Randbedingungs-Spezifikationskonsole
spezifizierte Randbedingungen zur Regelmaschine weiterzuleiten,
so dass diese Randbedingungen von der Regelmaschine erzwungen werden
können,
wenn die Kontextquellen ihre jeweiligen Kontextinformationen aktualisieren.
-
Die
Anfragewandlerkomponente bildet eine Verbindung zwischen dem Erzwingungspunkt
für anwendungsspezifische
Randbedingungen und der Regelmaschine. Die Anfragewandlerkomponente
stellt eine API für
den Erzwingungspunkt für
anwendungsspezifische Randbedingungen bereit, um nach bestimmten
Typen von Tatsachen zu fragen. Diese Typen von Tatsachen entsprechen
Tatsachen, die für die
bestimmte mindestens eine Anwendung sinnvoll sind, welche die regelbasierte
Erzwingungsplattform verwendet, um geeignete Randbedingungen zu
erzwingen. Die Anfragewandlerkomponente ist für das Übersetzen dieser Anfragen in
eine Darstellung, die von der Regelmaschine verständlich ist,
verantwortlich. Dies bedeutet, dass diese Anfragen in die Anfragesprache
der Regelmaschine übersetzt
werden müssen.
Die Anfragesprache ist eine andere Teilmenge der Regelmaschinensprache.
Die Anfragesprache wird verwendet, um Tatsachen von der Tatsachenbasis
der Maschine abzufragen. Im Fall von JESS sind Anfrageausdrücke von
der Form "(ausführen-Anfrage <Anfrage-Name> <Anfrage-Parameter1-Wert>...). Zusätzlich ist
die Anfragewandlerkomponente auch für das Übersetzen von Antworten auf
solche übersetzten
Anfragen, die von der Regelmaschine zurückkommen, in eine Datenstruktur,
die vom Erzwingungspunkt für
anwendungsspezifische Randbedingungen verständlich ist, verantwortlich.
-
Abgesehen
von der Regelmaschinen-Anpasseinrichtung weist die regelbasierte
Erzwingungsplattform auch eine Randbedingungs-Spezifikationskonsole
auf. Die Randbedingungs-Spezifikationskonsole
ist eine Komponente, die es einem Anwendungsentwickler insbesondere
ermöglicht,
dass jemand, der für
das Ausdrücken
von Sicherheitsrandbedingungen verantwortlich ist, geeignete Randbedingungen
auf der Grundlage vereinbarter Kontextquellen spezifiziert. Diese
Randbedingungs-Spezifikationskonsole stellt eine Schnittstelle bereit,
um diese Randbedingungen in der Regelsprache der Regelmaschine zu
spezifizieren. Dann leitet die Randbedingungs-Spezifikationskonsole
diese Randbedingungen zur Regelmaschinen-Anpasseinrichtung weiter,
so dass die Randbedingungen als ein Regelsatz in der Regelmaschine
gespeichert werden.
-
Die
Komponenten der mindestens einer Anwendung, die die von einer Implementation
der vorliegenden Erfindung bereitgestellte regelbasierte Erzwingungsplattform
verwenden möchte,
oder die Teil des Zugriffssteuerungssystems gemäß einer weiteren Ausführungsform
der vorliegenden Erfindung ist, liegen über der regelbasierten Erzwingungsplattform und
verwenden diese Plattform zum Spezifizieren und Erzwingen anwendungsspezifischer
Randbedingungen, wie beispielsweise Sicherheitsrandbedingungen.
Diese anwendungsspezifischen Komponenten müssen durch die mindestens eine
Anwendung bereitgestellt werden, welche die regelbasierte Plattform
verwendet, um mit ihr zu kommunizieren. Diese anwendungsspezifischen
Komponenten gehören zwei
Typen an.
-
Einerseits
gibt es Kontextquellen, die anwendungsspezifische Komponenten sind,
welche der regelbasierten Erzwingungsplattform Kontextinformationen
bereitstellen. Auf welchem Typ von Kontextinformationen die Randbedingungen
basiert werden sollten, ist anwendungsspezifisch und muss von einem
Entwickler der mindestens einen Anwendung entschieden werden. Jede
Kontextquellenkomponente muss in einer solchen Weise programmiert werden,
dass sie mit der Kontextwandlerkomponente als Teil der Regelmaschinen-Anpasseinrichtung kommunizieren
kann, die wiederum Teil der regelbasierten Erzwingungsplattform
sein kann, die von einem Aspekt der vorliegenden Erfindung vorgesehen ist.
Eine solche Kommunikation kann in gleichmäßiger Weise unter Verwendung
einer geeigneten Kommunikations-API verwirklicht werden.
-
Ein
Randbedingungs-Erzwingungspunkt ist auch eine anwendungsspezifische
Komponente, die dafür
verantwortlich ist, auf der Grundlage der anwendungsspezifischen
Randbedingungen, die während
der Entwicklung der mindestens einen Anwendung spezifiziert wurden,
geeignete Zugriffsentscheidungen, wie beispielsweise Sicherheitsentscheidungen,
zu treffen, wie beispielsweise Zugriff auf eine Ressource zu gewähren oder
zu verweigern. Um solche Entscheidungen zu treffen, kommuniziert
der Randbedingungs-Erzwingungspunkt
mit einer Anfragewandlerkomponente der Regelmaschinen-Anpasseinrichtung.
Der Randbedingungs-Erzwingungspunkt
delegiert die Entscheidung über
Anfragen an die Anfragewandlerkomponente der Regelmaschinen-Anpasseinrichtung,
die in der regelbasierten Plattform enthalten ist, an die regelbasierte
Erzwingungsplattform. Diese Kommunikation mit der Anfragewandlerkomponente
wird in gleichmäßiger Weise unter
Verwendung einer geeigneten Kommunikations-API erreicht.
-
Zusammenfassend
wird nachfolgend eine Gesamtarchitektur des durch eine Implementation der
vorliegenden Erfindung bereitgestellten Zugriffssteuerungssystems,
die wahrscheinlich eine regelbasierte Erzwingungsplattform gemäß einer
Ausführungsform
der vorliegenden Erfindung und/oder eine Regelmaschinen-Anpasseinrichtung
gemäß einer anderen
Ausführungsform
der vorliegenden Erfindung aufweist, beschrieben.
-
Zur
Entwicklungszeit, wobei es sich um die Zeit handelt, zu der die
mindestens eine Anwendung entwickelt wird, werden die für die mindestens
eine Anwendung relevanten Kontextquellen von Systementwicklern identifiziert
und relevante Randbedingungen von ihnen vereinbart, verbindet ein
Sicherheitsadministrator zu der Randbedingungs-Spezifikationskonsole und spezifiziert
Sicherheitsrandbedingungen auf der Grundlage von Kontextinformationen,
die zur Laufzeit von den identifizierten relevanten Kontextquellen
bereitgestellt werden. Diese Randbedingungen werden von der Regelmaschinen-Anpasseinrichtung
in Regeln übersetzt,
die von der zugrunde liegenden Regelmaschine verständlich sind.
-
Zur
Einrichtungszeit, wobei es sich um die Zeit handelt, zu der ein
Systemadministrator die mindestens eine Anwendung auf dem Produktionsserver einrichtet,
spezifiziert ein Systemadministrator beispielsweise durch eine geeignete
Konfigurationsdatei, welche Kontextquellen mit der Regelmaschinen-Anpasseinrichtung
zu verbinden sind. Diese Liste relevanter Quellen wurde während der
Entwicklungszeit von den entsprechenden Anwendungsentwicklern festgelegt.
-
Zur
Laufzeit, wobei es sich um die Zeit handelt, zu der sich der Kontext
entwickelt und das System Sicherheitsrandbedingungen auf der Grundlage dieser
Kontextinformationen erzwingt, übersetzt
die Regelmaschinen-Anpasseinrichtung
Kontextinformationen, die von verschiedenen relevanten Kontextquellen
ausgehen, in Tatsachen, die für
die Regelmaschine verständlich
sind, so dass Tatsachen, welche aktuelle Kontextinformationen darstellen,
in der Tatsachenbasis der Regelmaschine gespeichert werden. Das
Hinzufügen
neuer Tatsachen, welche Änderungen
von Kontextinformationen darstellen, löst Regeln aus, die zur Entwicklungszeit
spezifiziert wurden, wie vorstehend erklärt wurde. Diese Regeln erzeugen
wiederum neue Tatsachen, welche Informationen darstellen, die für das Erzwingen
der Randbedingungen benötigt
werden. Der Erzwingungspunkt für
anwendungsspezifische Randbedingungen fragt über die Regelmaschinen-Anpasseinrichtung solche
Tatsachen an, um Erzwingungsentscheidungen zu treffen.
-
Gemäß einem
anderen Aspekt sieht die Erfindung ein Computerprogrammprodukt mit
einem computerlesbaren Medium und einem auf dem computerlesbaren
Medium gespeicherten Computerprogramm mit einem Programmcode vor,
der geeignet ist, um ein Verfahren gemäß der vorliegenden Erfindung
auszuführen,
wenn das Computerprogramm auf einem Computer ausgeführt wird.
-
Gemäß einem
anderen Aspekt betrifft die vorliegende Erfindung ein Computerprogramm
mit einem Programmcode, der für
das Ausführen
eines Verfahrens gemäß der vorliegenden
Erfindung geeignet ist, wenn das Computerprogramm auf einem Computer
ausgeführt
wird.
-
Das
computerlesbare Medium mit einem darauf gespeicherten Computerprogramm
ist von einer anderen Ausführungsform
der vorliegenden Erfindung vorgesehen, wobei das Computerprogramm einen
Programmcode aufweist, der dafür
geeignet ist, ein Verfahren gemäß der vorliegenden
Erfindung auszuführen,
wenn das Computerprogramm auf einem Computer ausgeführt wird.
-
Weitere
Merkmale und Ausführungsformen der
Erfindung werden anhand der Beschreibung und der anliegenden Zeichnung
verständlich
werden.
-
Aus
Gründen
der Klarheit bezieht sich die vorliegende Erörterung auf ein abstraktes
Beispiel eines Zugriffssteuerungssystems. Das Verfahren und das
System, die von Ausführungsformen
der vorliegenden Erfindung vorgesehen sind, können jedoch mit einer Vielzahl
von Typen von Netzwerksystemen, einschließlich Netzwerken und Kommunikationssystemen,
die von dem in der folgenden Zeichnung dargestellten spezifischen
Beispiel verschieden sind, arbeiten.
-
Es
sei bemerkt, dass die Erfindung, wenngleich sie in Bezug auf ein
spezifisches System beschrieben wird, in einer Vielzahl von Kommunikationssystemen
in der Art hoch entwickelter Kabelfernsehsysteme, hoch entwickelter
Telefonnetze oder anderer Kommunikationssysteme, die von dem System und
dem Verfahren gemäß Implementationen
der vorliegenden Erfindung profitieren würden, Anwendungen hat. Es ist
beabsichtigt, dass das in der Beschreibung und den Ansprüchen verwendete
System jegliche Informations- und Kommunikationssysteme abdeckt,
es sei denn, dass der Kontext etwas anderes erfordert.
-
Die
Erfindung ist in der Zeichnung als Beispiel schematisch dargestellt
und wird in Bezug auf die Zeichnung detailliert erklärt. Es sei
bemerkt, dass die Beschreibung den Schutzumfang der vorliegenden
Erfindung in keiner Weise einschränken soll und lediglich eine
Erläuterung
einer bevorzugten Ausführungsform
der Erfindung ist.
-
Kurzbeschreibung der Zeichnung
-
Es
zeigen:
-
1 eine
schematische Architektur einer möglichen
Ausführungsform
des Zugriffssteuerungssystems gemäß einem Aspekt der vorliegenden
Erfindung,
-
2 schematisch
eine Architektur einer weiteren Ausführungsform des Zugriffssteuerungssystems
gemäß einem
Aspekt der vorliegenden Erfindung,
-
3 ein
Sequenzdiagramm für
eine mögliche
Randbedingungsspezifikation innerhalb einer anderen Ausführungsform
des Zugriffssteuerungssystems gemäß einem Aspekt der vorliegenden
Erfindung,
-
4 ein
weiteres Sequenzdiagramm für eine
innerhalb einer weiteren Ausführungsform
des Zugriffssteuerungssystems gemäß einem Aspekt der vorliegenden
Erfindung ausgeführte
mögliche
Kontextaktualisierung und
-
5 ein
Sequenzdiagramm für
eine innerhalb einer anderen Ausführungsform des Zugriffssteuerungssystems
gemäß einem
Aspekt der vorliegenden Erfindung verwirklichte mögliche Randbedingungserzwingung.
-
Detaillierte Beschreibung
der Zeichnung
-
1 zeigt
eine mögliche
Gesamtarchitektur eines Zugriffssteuerungssystems 100.
Im Allgemeinen kann das Zugriffssteuerungssystem 100 in
zwei Untersysteme zerlegt werden. Eines der Untersysteme entspricht
einer regelbasierten Erzwingungsplattform 200, und das
zweite Untersystem weist anwendungsspezifische Komponenten auf,
die einer Anwendung zugeordnet sind, welche beabsichtigt, die regelbasierte
Erzwingungsplattform 200 zum Ausführen einer Zugriffssteuerung
auf mindestens eine der Anwendung zugeordnete Informationsressource
zu verwenden. Die anwendungsspezifischen Komponenten des anwendungsspezifischen
Untersystems 300 befinden sich alle über der regelbasierten Erzwingungsplattform 200 und
beabsichtigen die Verwendung der Plattform 200 zum Spezifizieren
und Erzwingen von anwendungsspezifischen Randbedingungen, insbesondere
Sicherheitsrandbedingungen. Die anwendungsspezifischen Komponenten
werden im Allgemeinen von der Anwendung bereitgestellt, welche die
regelbasierte Erzwingungsplattform 200 verwenden möchte, um
damit zu kommunizieren. Diese Komponenten können in zwei Typen unterteilt werden.
Die Anwendung, welche die regelbasierte Erzwingungsplattform 200 verwenden
möchte,
weist eine Vielzahl von Kontextquellen 301, nämlich eine Kontextquelle 301_1,
eine Kontextquelle 301_2, ..., eine Kontextquelle 301_N,
auf. Die Kontextquellen 301 stellen Kontextinformationen
für die
regelbasierte Erzwingungsplattform 200 bereit. Welcher
Typ von Kontextinformationen zu spezifizierenden Randbedingungen
zugrunde gelegt werden sollte, ist anwendungsspezifisch und muss
von einem Entwickler der entsprechenden Anwendung entschieden werden. Jede
Kontextquelle 301 muss in einer solchen Weise programmiert
werden, dass sie mit der regelbasierten Erzwingungsplattform 200 kommunizieren
kann. Dies kann in gleichmäßiger Weise
unter Verwendung einer geeigneten Kommunikations-API 302 erreicht werden.
Eine weitere anwendungsspezifische Komponente ist durch einen Randbedingungs-Erzwingungspunkt 303 repräsentiert.
Der Randbedingungs-Erzwingungspunkt 303 ist eine anwendungsspezifische
Komponente, die verantwortlich ist, um geeignete Zugriffsentscheidungen,
insbesondere Sicherheitsentscheidungen, beispielsweise zum Gewähren oder
Verweigern von Zugriffen auf eine Informationsressource, die der
Anwendung zugeordnet ist, zu treffen. Diese Entscheidungen sollten
auf der Grundlage von anwendungsspezifischen Randbedingungen getroffen
werden, die während
des Entwurfs der entsprechenden Anwendung spezifiziert werden müssen. Um
solche Entscheidungen zu treffen, kommuniziert der Randbedingungs-Erzwingungspunkt 303 über eine
Schnittstelle 304 mit der regelbasierten Erzwingungsplattform 200.
-
Die
regelbasierte Erzwingungsplattform 200 besteht aus mehreren
Komponenten, die im Allgemeinen anwendungsunabhängig sind.
-
Eine
der anwendungsunabhängigen
Komponenten ist eine Regelmaschine 201. Die Regelmaschine 201 kann
beispielsweise als eine ab Lager lieferbare Komponente, wie beispielsweise
JESS, gewählt
werden, die in der Lage ist, Tatsachen zu behandeln und Ableitungsregeln
auf diese Tatsachen anzuwenden. Die Regelmaschine 201 wird
in einer solchen Weise verwendet, dass von irgendeiner der Kontextquellen 301 bereitgestellte
Kontextinformationen als Tatsachen innerhalb der Tatsachenbasis
der Regelmaschine dargestellt werden. Eine Tatsache ist, wie bereits
zuvor erklärt
wurde, eine Aussage, welche einen aktuellen Zustand des Systems
beschreibt, beispielsweise "Der
Kunde John Smith hat einen iPod für 200 Euro gekauft". Für die vorliegende Erfindung
sind Tatsachen Kontextinformationen, die für die mindestens eine Anwendung
relevant sind, die irgendeinen Aspekt der vorliegenden Erfindung
verwendet. Tatsachen sind in der Tatsachenbasis der Regelmaschine
festzulegen, um Änderungen
des Zustands des Systems wiederzuspiegeln, und die Regelmaschine
reagiert auf diese Tatsachen durch Wirksammachen der Regeln, die
diesen Tatsachen entsprechen, falls überhaupt.
-
Ferner
sollten auch anwendungsspezifische Zugriffsrandbedingungen, wie
beispielsweise Sicherheitsrandbedingungen, schließlich als
Regeln innerhalb der Regelmaschine ausgedrückt werden. Die Regeln, die
ein Geschäft
befolgt, können
beispielsweise von einer Sicherheitsvereinbarung, wie beispielsweise "Alle Angestellten,
die keine spezifische Berechtigung haben, dürfen nicht in den Sicherheitsbereich
eintreten" oder
von anderen Quellen in der Art einer Firmenvereinbarung kommen.
Demgemäß kann die
Regelmaschine 201 standardmäßig ohne Konzentration auf
die entsprechende Anwendung, welche die regelbasierte Erzwingungsplattform 200 verwendet,
arbeiten.
-
Abgesehen
von der Regelmaschine 201 stellt die regelbasierte Erzwingungsplattform
eine Regelmaschinen-Anpasseinrichtung 210 bereit.
Die Regelmaschinen-Anpasseinrichtung 210 bildet
eine Komponente der regelbasierten Erzwingungsplattform 200.
Sie stellt eine gemeinsame Abstraktionsschicht über der Regelmaschine 201 und
einen gemeinsamen Weg für
alle Kontextquellentypen 301 zum Zugriff auf die regelbasierte
Erzwingungsplattform 200 bereit.
-
Die
Regelmaschinen-Anpasseinrichtung 210 kann aus den folgenden
drei Teilkomponenten gebildet werden. Die Regelmaschinen-Anpasseinrichtung 210 weist
eine Kontextwandlerkomponente 211 auf, die einen Zugriffspunkt
zu der regelbasierten Erzwingungsplattform 200 für die verschiedenen
Kontextquellen 301 bereitstellt. Dies bedeutet, dass die
Kontextquellen 301 alle über die gleiche Kommunikations-API 302 mit
der regelbasierten Erzwingungsplattform 200, insbesondere
mit der Kontextwandlerkomponente 211 der Regelmaschinen-Anpasseinrichtung 210,
verbunden werden können.
Durch diese Kommunikations-API 302 können die
Kontextquellen 301 auf die regelbasierte Erzwingungsplattform 200 zugreifen
und ihre jeweiligen Kontextinformationen aktualisieren. Die Kontextwandlerkomponente 211 stellt
diese API 302 bereit.
-
Zusätzlich ist
eine Kontextwandlerkomponente 211 für das Übersetzen jedes Aufrufs dieser API 302 von
einer der Kontextquellen 301 in eine Darstellung, die von
der Regelmaschine 201 interpretiert werden kann, verantwortlich.
Dies bedeutet, dass die Kontextwandlerkomponente 211 einen
solchen Aufruf in eine Tatsachenfestlegungssprache der Regelmaschine übersetzt.
In einem Fall, in dem eine Kontextquelle 301 ein Aufgabenverwalter
ist und ein Kontextinformationsbestandteil "Benutzer Alice hat Aufgabe Nummer 3
ausgeführt" ist, ruft die Kontextquelle 301 die
API 302 auf und stellt als Parameter dieses Aufrufs eine
Datenstruktur bereit, welche die Zeichenkette von "Benutzer" auf die Zeichenkette "Alice" und die Zeichenkette "Aufgabe-Nummer" auf die Nummer "3" abbildet. Die Zeichenkette "Benutzer-hat-Aufgabe-ausgeführt" wird auch als ein
anderer Parameter übergeben.
Der Kontextwandler 211 übersetzt
dann diesen Aufruf in eine Kontrollaussage in der Festlegungssprache
der Regelmaschine, wobei dies im Fall von JESS als "(festlegen (Benutzer-hat-Aufgabe-ausgeführt (Benutzer
Alice) (Aufgabe-Nummer 3))" übersetzt
werden würde.
Die von einer der Kontextquellen 301 ausgehenden übersetzten
Aufrufe können
demgemäß innerhalb
der Regelmaschine 201 als Tatsachen dargestellt werden,
die von der Regelmaschine 201 behandelt werden können.
-
Die
Regelmaschinen-Anpasseinrichtung 210 weist ferner eine
Randbedingungs-Wandlerkomponente 212 auf. Die Randbedingungs-Wandlerkomponente 212 arbeitet
mit einer weiteren Komponente der regelbasierten Erzwingungsplattform 200,
nämlich
einer Randbedingungs-Spezifikationskonsole 214, zusammen.
Die Randbedingungs-Spezifikationskonsole 214 ist im Allgemeinen
von der Regelmaschinen-Anpasseinrichtung 210 getrennt,
kann jedoch auch Teil der Regelmaschinen-Anpasseinrichtung 210 sein.
Die Rolle der Randbedingungs-Wandlerkomponente 212 besteht
darin, von einem Anwendungsentwickler ausgedrückte Randbedingungen zur Regelmaschine 201 weiterzuleiten,
so dass diese Randbedingungen von der Regelmaschine 201 erzwungen
werden können,
wenn die Kontextquellen 301 ihre jeweiligen Kontextinformationen
aktualisieren.
-
Die
Randbedingungs-Spezifikationskonsole 214 ist eine Komponente,
die es einem Anwendungsentwickler, insbesondere demjenigen, der
für das Ausdrücken von
anwendungs spezifischen Randbedingungen, im Speziellen Sicherheitsrandbedingungen,
verantwortlich ist, ermöglicht,
Randbedingungen auf der Grundlage vereinbarter Kontextquellen 301 zu
spezifizieren. Diese Randbedingungs-Spezifikationskonsole 214 stellt
eine Schnittstelle bereit, um diese Randbedingungen in der Regelsprache
der Regelmaschine zu spezifizieren. Die Randbedingungs-Spezifikationskonsole 214 stellt
bereits die Randbedingungen in der Regelmaschinensprache bereit.
Im Fall von JESS könnte
beispielsweise eine als "Alle
Kunden, die mehr als $100 auf einmal kaufen, empfangen einen Discount
von 10%" ausgedrückte Regel
in der englischen Sprache als "(Kunde-Auftrag(Auftrag-Nummer
?n) (gesamt-Preis ?p:>100))=>(festlegen(anwenden-Discount
(Auftrag-Nummer ?n) (Prozentsatz 10)))" in der Regelmaschinensprache von JESS übersetzt
werden. Dann leitet die Randbedingungs-Spezifikationskonsole 214 diese
von einem Anwendungsentwickler spezifizierten Randbedingungen zur
Regelmaschinen-Anpasseinrichtung 210 weiter, so dass die
Randbedingungen als ein Satz von Regeln, die behandelt, nämlich auf
entsprechende Tatsachen angewendet werden können, in der Regelmaschine 201 gespeichert
werden.
-
Die
Regelmaschinen-Anpasseinrichtung 210 weist ferner eine
dritte Komponente, nämlich
eine Anfragewandlerkomponente 213, auf. Die Anfragewandlerkomponente 213 stellt
eine Verbindung zwischen dem Randbedingungs-Erzwingungspunkt 303 und
der Regelmaschine 201 her. Der Anfragewandler 213 stellt
eine Kommunikations-API für
den Randbedingungs-Erzwingungspunkt 303 zum
Anfragen über bestimmte
Typen von Tatsachen bereit. Im Allgemeinen sollten dies Tatsachen
sein, die für
die entsprechende Anwendung sinnvoll sind, welche die regelbasierte
Erzwingungsplattform 200 verwendet, um geeignete anwendungsspezifische
Randbedingungen zu erzwingen.
-
Der
Anfragewandler 213 ist ferner dafür verantwortlich, diese Anfragen
in eine Darstellung zu übersetzen,
die für
die Regelmaschine 201 verständlich ist. Es ist beispielsweise
möglich,
dass der Randbedingungs-Erzwingungspunkt 303 eine Sicherheitskomponente
einer Auftragsverwaltungsanwendung ist. Demgemäß möchte der Randbedingungs-Erzwingungspunkt 303 wissen,
ob ein bestimmter Benutzer eine spezifische Aufgabe ausführen darf,
wobei er beispielsweise wissen muss, ob "Alice Aufgabe 4 ausführen darf". Um dies zu bestimmen,
ruft der Randbedingungs-Erzwingungspunkt 303 die
API 304 auf und stellt als Parameter dieses Aufrufs eine
Listendatenstruktur bereit, welche die Zeichenkette "Alice" und die Zahl "4" enthält. Die Zeichenkette "darf-ausführen" wird auch als ein
anderer Parameter übergeben.
Der Anfragewandler 213 übersetzt
diesen Aufruf dann in eine Anfrageaussage in der Anfragesprache
der Regelmaschine, wobei er im Fall von JESS als "(ausführen-Anfrage
darf-ausführen
Alice 4)" übersetzt
werden würde.
Dies bedeutet, dass diese Anfragen in die Anfragesprache der Regelmaschine übersetzt
werden sollten.
-
Zusätzlich ist
die Anfragewandlerkomponente 213 dafür verantwortlich, Antworten
auf solche übersetzten
Anfragen, die von der Regelmaschine 201 zurückkommen,
in eine Datenstruktur zu übersetzen,
die für
den Randbedingungs-Erzwingungspunkt 303 verständlich ist.
In dem vorhergehenden Beispiel wäre
diese Datenstruktur einfach ein einziger Boolescher Wert, welcher
angibt, ob Alice Auftrag 4 ausführen darf oder nicht. In einem
anderen Beispiel, wobei der Randbedingungs-Erzwingungspunkt 303 alle
Randbedingungen kennen muss, die für Alice nicht verboten sind,
wäre die
vom Anfragewandler 213 zurückgegebene Datenstruktur eine
Liste, welche die Kennnummern jener Aufgaben, die für Alice nicht
verboten sind, enthält.
-
2 zeigt
eine spezifischere Architektur einer weiteren Ausführungsform
eines Zugriffssteuerungssystems. Die in 2 dargestellte
Architektur kann zum Erzwingen einer dynamischen Trennung von Aufgaben-
bzw. Pflichteigenschaften in einer Arbeitsablauf-Verwaltungsanwendung
verwendet werden. Die Arbeitsablauf-Verwaltungsanwendung ist in 2 durch
verschiedene anwendungsspezifische Komponenten, nämlich die
Arbeitsablaufmaschine 401_1, eine Benutzerverwaltungsmaschine 401_2, einen
Arbeitsablaufmodellierer 401_3 und einen Sicherheitsaufgabenmanager 403,
dargestellt. Die Arbeitsablaufmaschine 401_1, die Benutzerverwaltungsmaschine 401_2 und
der Arbeitsablaufmodellierer 401_3 entsprechen anwendungsspezifischen Kontextquellen 401,
welche jeweilige Kontextinformationen zur Laufzeit bereitstellen.
-
Die
regelbasierte Erzwingungsplattform 500 hat im Wesentlichen
den gleichen Aufbau wie die regelbasierte Erzwingungsplattform 200 aus 1.
Die regelbasierte Erzwingungsplattform 500 enthält auch eine
Randbedingungs-Spezifikationskonsole 514, eine
Regelmaschinen-Anpasseinrichtung 510 und eine Regelmaschine 501.
Die Regelmaschinen-Anpasseinrichtung 510 weist eine Kontextwandlerkomponente 511,
eine Randbedingungs-Wandlerkomponente 512 und eine Anfragewandlerkomponente 513 auf.
Alle Komponenten der regelbasierten Erzwingungsplattform 500 haben
jeweils die gleichen Funktionen wie die entsprechenden Komponenten
der regelbasierten Erzwingungsplattform 200 aus 1. Die
Kontextwandlerkomponente 511 stellt eine gleichmäßige Kommunikations-API 402 bereit.
Die Anfragewandlerkomponente 513 stellt eine gleichmäßige Kommunikations-API 404 bereit.
In dem in 2 dargestellten Beispiel sind
die relevanten Kontextquellen durch die Arbeitsablaufmaschine 401_1, die
Benutzerverwaltungsmaschine 401_2 und den Arbeitsablaufmodellierer 401_3 dargestellt.
Die Benutzerverwaltungsmaschine 401_2 stellt Kontextinformationen über Benutzer,
von denen angenommen wird, dass sie die Arbeitsablaufanwendung 400 verwenden,
sowie über
ihre Rolle innerhalb der Gesamtorganisation bereit. Der Arbeitsablaufmodellierer 401_3 stellt
Kontextinformationen über
die Art, in der Arbeitsabläufe
als ein Aufgabensatz modelliert werden, sowie darüber, welcher
Rolle innerhalb der Organisation jede Aufgabe zugewiesen wird, bereit.
Die Arbeitsablaufmaschine 401_1 stellt Kontextinformationen
darüber
bereit, welcher Benutzer welche Aufgabe in welcher Arbeitsablaufinstanz
ausgeführt
hat.
-
In
dem in 2 dargestellten Beispiel verwendet ein Sicherheitsadministrator
des Arbeitsablauf-Verwaltungssystems die Randbedingungs-Spezifikationskonsole 514,
um die dynamische Trennung von Aufgaben- bzw. Pflichtrandbedingungen
in Bezug auf Aufgaben, Modelle und Instanzen, die von den vorstehend
beschriebenen Kontextquellen kommen, zu spezifizieren. Diese Randbedingungen
sind beispielsweise von der Form "Aufgabe T1 und Aufgabe T2 sollten in
jeder Arbeitsablaufinstanz von einem anderen Benutzer ausgeführt werden".
-
Ferner
wirkt in diesem Beispiel der Sicherheits aufgabenmanager 403 als
der Randbedingungs-Erzwingungspunkt. Dieser Sicherheitsaufgabenmanager 403 fragt
an der Regelmaschinen-Anpasseinrichtung 510 Tatsachen in
der Form von "Aufgabe
T ist für
Benutzer U in der Arbeitsablaufinstanz I verboten" an.
-
Eine
solche Einrichtung ermöglicht
das Erfassen und Beurteilen von Trennungseigenschaften in der Art
von: "Ein Angestellter
darf keinen Kreditvertrag unterzeichnen, falls er an den früheren Schritten zur
Vorbereitung des Vertrags beteiligt war".
-
3 zeigt
ein Ablaufdiagramm für
eine Randbedingungsspezifikation durch ein Zugriffssteuerungssystem
gemäß einem
Aspekt der vorliegenden Erfindung. Ein Administrator 31 definiert
oder identifiziert Kontextquellen 32, die für die zu
entwickelnde Anwendung relevant sind (Schritt 1). Die identifizierten
relevanten Kontextquellen 32 stellen einen bestimmten Typ
von Kontextinformationen bereit, auf die die Spezifikation der anwendungsspezifischen
Randbedingungen zu basieren ist (Schritt 2). Der Administrator
verbindet zur Entwicklungszeit mit einer Randbedingungs-Spezifikationskonsole 33,
um anwendungsspezifische Randbedingungen auf der Grundlage der Kontextinformationen
zu spezifizieren, die zur Laufzeit von den identifizierten relevanten Kontextquellen 32 bereitgestellt
werden (Schritt 3). Diese Randbedingungen werden durch
die Randbedingungs-Spezifikationskonsole 33 zu einer Randbedingungs-Wandlerkomponente 34 weitergeleitet,
die eine Komponente einer Regelmaschinen-Anpasseinrichtung ist (Schritt 4).
Die Randbedingungen werden dann von der Randbedingungs-Wandlerkomponente 34 in
Regeln übersetzt,
die für
eine zugrunde liegende Regelmaschine 35 verständlich sind
(Schritt 5). Diese übersetzten
Randbedingungen werden als ein Regelsatz in der Regelmaschine 35 gespeichert (Schritt 6).
-
4 zeigt
ein Ablaufdiagramm für
eine Kontextaktualisierung. Eine Kontextquelle 41 als Teil einer
Anwendung, welche beabsichtigt, eine regelbasierte Erzwingungsplattform
gemäß einer
Implementation der vorliegenden Erfindung zu verwenden, aktualisiert
ihre Kontextinformationen, welche einer Änderung in ihren Kontextinformationen
entsprechen (Schritt 1). Die Kontextquelle 41 leitet
die Kontextinformationsaktualisierung über einen Zugriffspunkt, der
vom Kontextwandler 42 bereitgestellt wird, zu einer Kontextwandlerkomponente 42 weiter,
welche Teil einer Regelmaschinen-Anpasseinrichtung ist (Schritt 2).
Dieser Zugriffspunkt ist gleichmäßig, so dass
alle Kontextquellen die gleiche Kommunikations-API verwenden können, um
auf die Kontextwandlerkomponente 42 zuzugreifen und ihre
jeweiligen Kontextinformationen zu aktualisieren. Die Kontextwandlerkomponente 42 ist
für das Übersetzen von
Aufrufen dieser API von irgendeiner Kontextquelle in eine Darstellung
verantwortlich, die von einer zugrunde liegenden Regelmaschine 43 interpretiert werden
kann. Dies bedeutet, dass die Kontextwandlerkomponente 42 die
von der Kontextquelle 41 ausgehende Kontextinformationsaktualisierung
in Tatsachen, die von der Regelmaschine 43 verständlich sind, übersetzen
muss (Schritt 3), und daher Tatsachen, welche aktuelle
Kontextinformationen darstellen, in der Tatsachenbasis der Regelmaschinen
gespeichert werden (Schritt 4). Das Hinzufügen neuer Tatsachen,
welche Änderungen
an Kontextinformationen darstellen, löst Regeln aus, die zur Entwicklungszeit
spezifiziert wurden. Diese Regeln erzeugen wiederum neue Tatsachen,
welche Informationen darstellen, die für das Erzwingen jeweiliger
Randbedingungen benötigt
werden.
-
5 zeigt
ein Ablaufdiagramm für
eine Randbedingungserzwingung durch das Beispiel eines Arbeitsablaufssystems.
Ein Angestellter 51 beabsichtigt, eine bestimmte Aufgabe
auszuführen.
Daher stellt er sich bei einem Manager 52 für sichere Aufgaben
vor (Schritt 1). Der Manager 52 für sichere Aufgaben
kommuniziert mit einer Anfragewandlerkomponente 53, welche
Teil einer jeweiligen Regelmaschinen-Anpasseinrichtung ist (Schritt 2).
Diese Kommunikation mit einer Anfragewandlerkomponente 53 wird
in gleichmäßiger Weise
unter Verwendung einer geeigneten Kommunikations-API erreicht. Die Anfragewandlerkomponente 53 bildet
eine Verbindung zwischen dem Manager 52 für sichere
Aufgaben und einer Regelmaschine 54. Sie stellt dem Manager 52 für sichere
Aufgaben die API für
das Anfragen zu bestimmten Tatsachentypen, in dem hier dargestellten
Fall in Form einer Frage "Darf
der Angestellte 51 die Aufgabe ausführen" bereit. Die Anfragewandlerkomponente 53 übersetzt
die von dem Manager 52 für sichere Aufgaben ausgehende
Anfrage in eine Darstellung, die für die Regelmaschine 54 verständlich ist
(Schritt 3). Die konvertierte Anfrage wird zur Regelmaschine 54 weitergeleitet
(Schritt 4), welche die übersetzte Anfrage beantwortet,
wobei die Antwort von der Regelmaschine 54 zur Anfragewandlerkomponente 53 zurückkehrt
(Schritt 5). Die Anfragewandlerkomponente 53 übersetzt
nun die Antwort in eine Datenstruktur, die für den Manager 52 für sichere
Aufgaben verständlich
ist. Die übersetzte Antwort
enthält
eine Erwiderung darauf, ob der Angestellte 51 die spezifische
Aufgabe ausführen
darf (Schritt 6). Der Manager 52 für sichere
Aufgaben trifft nun eine geeignete Sicherheitsentscheidung, die
im vorliegenden Fall darin besteht, es dem Angestellten zu erlauben,
die fragliche Aufgabe auszuführen,
oder ihm dies zu verbieten, und benachrichtigt den Angestellten
dementsprechend (Schritt 7).