1. Technisches Gebiet1. Technical area
Die vorliegende Erfindung betrifft Systeme, Verfahren und Anordnungen, die zum Absichern von Ressourcen, insbesondere in hochskalierbaren Szenarien, mit Computernetzwerken verwendet werden können. Dabei wurde die Erfindung, insbesondere unter Betrachtung des Internets und darin vorkommender Plattformen, gemacht.The present invention relates to systems, methods, and arrangements that can be used to secure resources, particularly in highly scalable scenarios, with computer networks. In this case, the invention was made, in particular with consideration of the Internet and platforms occurring therein.
2. Stand der Technik2. State of the art
Ein Beispiel für ein modernes Sicherheitssystem ist Spring Security. Diese verfügt über Mittel, die es ermöglichen, ein Java Programm über Annotationen abzusichern. Dabei können in Spring Security Zugriffskontrolllisten für einzelne Objekte, die von Klassen erzeugt wurden, hinterlegt werden. Das System verfügt dazu über eine zentrale Zugriffskontrolllistenablage (ACL Ablage), in der die Zugriffskontrolllisten in einer Datenbank abgelegt werden. Diese werden dann beim Zugriff auf Ressourcen genutzt, um den Zugriff auf Erlaubnis zu prüfen. Dabei können die einzelnen Zugriffskontrolllisten auf weitere Zugriffskontrolllisten in der zentralen Ablage verweisen, von denen sie die Inhalte erben. Aufgrund dessen werden dann bei einer Zugriffsüberprüfung die Zugriffskontrolllisten, von denen Rechte geerbt wurden, mit einbezogen. Ein Problem von Spring Security ist dabei, dass es nur eine interne Ablagestelle besitzt und keine weiteren Systeme oder Zugriffslistenarten benutzen kann. Da im Normalfall in einer Systemlandschaft verschiedene Technologien eingesetzt werden, ist somit Spring Security isoliert von den anderen Systemen zu betrachten, da diese nicht zusammen arbeiten. Ein weiteres Problem ist, dass bei Zugriffsentscheidungen, bei denen Zugriffskontrolllisten, die von anderen Zugriffskontrolllisten Rechte erben, auch immer die Zugriffskontrolllisten, von denen Rechte ererbt wurden, geladen und mit ausgewertet werden müssen. Diese und weitere Einschränkungen machen ein solches System unflexibel und schwer skalierbar.An example of a modern security system is Spring Security. It has resources that make it possible to secure a Java program via annotations. In Spring Security, access control lists for individual objects created by classes can be stored. The system has a central access control list (ACL) filing system in which the access control lists are stored in a database. These are then used when accessing resources to check access to permission. The individual access control lists can refer to further access control lists in the central repository, from which they inherit the contents. Because of this, an access check will then include the access control lists inheriting rights. One problem with Spring Security is that it has only one internal depot and can not use any other systems or access list types. Since different technologies are normally used in a system landscape, Spring Security can be considered isolated from the other systems, since they do not work together. Another problem is that access decisions that inherit rights from other access control lists must always load and evaluate the access control lists from which rights were inherited. These and other limitations make such a system inflexible and difficult to scale.
Apache Shiro ( http://cwiki.apache.org/confluence/display/SHIRO/Index ) ist ein Sicherheitssystem für verschiedene Programmierplattformen, unterstützt aber keine Integration von weiteren Sicherheitssystemen und deren Zugriffskontrolllisten, die zum Beispiel Rechte voneinander erben.Apache Shiro ( http://cwiki.apache.org/confluence/display/SHIRO/Index ) is a security system for various programming platforms, but does not support the integration of other security systems and their access control lists, which, for example, inherit rights from each other.
Weitere Sicherheitssysteme sind dabei als ähnlich oder weniger mächtig zu Spring Security zu sehen.Other security systems are considered similar or less powerful than Spring Security.
Ein Beispiel einer Sprache für Zugriffskontrolllisten ist XACL. Diese löst aber auch nicht das Problem, heterogene Systeme mit verschiedenen Zugriffskontrolllisten durch ein System zu verwalten zu können.An example of an access control list language is XACL. However, this does not solve the problem of being able to manage heterogeneous systems with different access control lists through one system.
Dieser Erfindung liegt daher das technische Problem zu Grunde, es zu ermöglichen, Anordnungen, Verfahren und Systeme bereit zu stellen, die es ermöglichen Daten, die zur Zugriffskontrolle genutzt werden können, aus verschiedenen Systemen nutzen, wie auch verteilen zu können. Dabei stellt sich die Herausforderung, dass die verschiedenen Systeme anderen Spezifikationen folgen können und eigentlich nicht kompatibel sind.This invention is therefore based on the technical problem of making it possible to provide arrangements, methods and systems that make it possible to use data that can be used for access control from different systems, as well as to distribute them. The challenge is that the different systems can follow different specifications and are actually incompatible.
Weiterhin sollen zusätzlich zu dieser Funktionalität noch weitere Funktionen durch die Erfindung eine gute Skalierbarkeit ermöglichen. Ferner soll die Erfindung auch in akuten und zukünftigen Anwendungsszenarien, insbesondere im hochdynamischen Internetumfeld eingesetzt werden können.Furthermore, in addition to this functionality, further functions by the invention allow a good scalability. Furthermore, the invention should also be able to be used in acute and future application scenarios, in particular in the highly dynamic Internet environment.
3. Zusammenfassung der Erfindung3. Summary of the invention
Die vorliegende Erfindung 100 löst die oben beschriebenen Probleme. In einer Ausführungsform nach Patentanspruch 1 weist die Erfindung 100 auf:
- a. Zumindest ein Mittel zur Integration, das es ermöglicht, auf zumindest ein oder mehrere Mittel zuzugreifen, die genutzt werden, um Zugriffsentscheidungen über den Zugriff auf zumindest eine Ressource 111 zu beeinflussen;
- b. Zumindest ein Mittel zur Aggregation, das es ermöglicht, aggregierte Zugriffsrechte zu berechnen, wobei bei der Berechnung, zumindest ein Mittel zur Zugriffsentscheidung verwendet wird.
The present invention 100 solves the problems described above. In an embodiment according to claim 1, the invention 100 on: - a. At least one means of integration that makes it possible to access at least one or more resources used to make access decisions about access to at least one resource 111 to influence;
- b. At least one means of aggregation, which makes it possible to calculate aggregate access rights, wherein at least one means of access decision is used in the calculation.
Somit stellt die vorliegende Erfindung 100 ein System, Verfahren und eine Anordnung bereit, die es ermöglicht, verschiedenste Systeme 110, die auch Sicherheitsfunktionen enthalten können oder Verfahren zur Absicherung, miteinander zu integrieren und kombinieren, indem Aggregate von Rechten, über die Systemgrenzen eines Systems 110 hinweg, berechnet werden können. Unter Zugriffsrecht können dabei Erlaubnisse oder Verweigerungen zum Durchführen von Operationen verstanden werden. Beispielsweise können solche Rechte die Erlaubnisse zu lesen, schreiben, ändern, löschen oder auch administrieren sein. Dabei sind aber auch weitere komplexere Erlaubnisse oder Verweigerungen, wie autorisieren, genehmigen, ausführen, z. B. von Services oder Funktionen, ausführen mit Beschränkungen, ausführen mit beschränkter Ergebnismenge, abhängig von der Benutzerrolle und jeder weiteren Funktion denkbar, die in Programmen, insbesondere in betriebswirtschaftlichen, vorkommt.Thus, the present invention provides 100 a system, method and arrangement that allows a variety of systems 110 which may also include security features or methods of hedging, integrating and combining with each other, by aggregates of rights, beyond the system boundaries of a system 110 away, can be calculated. In this case, access rights can be understood as authorizations or refusals to carry out operations. For example, such rights may be the permissions to read, write, modify, delete or administer. But there are also more complex permissions or denials, such as authorize, approve, execute, z. Of services or functions, execute with constraints, execute with limited result set, depending on the user role and any other function that occurs in programs, especially in business management.
Die Mittel, die zu Zugriffsentscheidungen genutzt werden 112, können verschiedenste Ressourcen 111 darstellen. Beispielsweise können solche Mittel 112 Zugriffskontrolllisten oder Teile derer sein. Oder auch komplette Sicherheitssysteme, andere Systeme 110 oder einzelne Teile derer. Auch können die verschiedenen Ausführungen der Erfindung 100 oder Teile derer selbst wiederum solche Mittel darstellen, um diese beispielsweise zu skalieren.The means used for access decisions 112 , can use a variety of resources 111 represent. For example, such means 112 Access control lists or parts thereof. Or complete security systems, other systems 110 or individual parts of them. Also, the various embodiments of the invention 100 or parts of them themselves represent such means, for example, to scale them.
Aggregieren bedeutet dabei das Zusammenfassen von Rechten für eine spezielle Ressource 111. Eine Ressource 111 kann dabei zum Beispiel eine Datei oder jede andere Form eines Dokumentes oder einer Datenbasis sein, z. B. auch ein Platzhalter, an dessen Stelle es dem Klienten 130 erlaubt ist, Informationen zu speichern.Aggregate means pooling rights for a specific resource 111 , A resource 111 may be, for example, a file or any other form of document or database, e.g. B. also a placeholder, in place of the client 130 is allowed to store information.
Solche Dokumente können zum Beispiel in einer Dokumentenbasis, auch als Datenbasis bezeichnet, in der die Dokumente abgelegt werden, vorkommen. Ein Beispiel für eine Dokumentenbasis ist ein Dateisystem. Jedoch kann eine Dokumentenbasis auch aktiv sein, beispielsweise kann die Datenbasis/Dokumentenbasis ein Webserver sein oder auch mehrere Webserver, wie das Internet. Dabei bezieht sich der Begriff Datenbasis auch auf mehrere Systeme 110 oder auch über Computernetzwerke gekoppelte Systeme. Der Begriff Dokument ist demnach ein Sammelbegriff für alle möglichen Ausgaben einer Datenbasis oder auch eine Zusammenstellung von durch einen Benutzer erzeugte Daten. Ein Dokument kann z. B. dynamisch von einer Datenbasis generiert werden, weshalb eine Datenbasis im Rahmen der vorliegenden Erfindung 100 als Quelle oder Kombination von Quellen oder Quellsystemen 110 anzusehen ist, von welchen Daten angefordert, geschrieben und/oder geändert werden können. Ein Dokument ist demnach eine logische Einheit, eine Partition, Komponente und/oder Unterteilung und trifft daher auch auf Teile von Dokumenten zu. Ausführungsformen der vorliegenden Erfindung 100 können dabei die Strukturinformationen der Datenbasis nutzen, um Zugriffe auf die Datenbasis oder darin vorkommende Dokumente zu verbessern und/oder zu beschleunigen. Als Datenbasis und somit als Dokumente können beispielsweise folgende Daten und zugehörige Systeme 110 oder Systeme 110 allein dienen: Hypertextdokumente, Word Dokumente, E-Mails, Webserver, Programmcode, wie Klassen oder Objekte oder auch andere Konstrukte, die bei der Programmierung oder daraus erzeugtem kompilierten Quelltext vorkommen, API-Aufrufe oder Rückgabewerte, Zugriffe auf Programmteile, Business Objekte, wie z. B. Belege, oder Stammdaten, Application Server, SAP Systeme, Data Warehouses, Textdokumente, Bilder, Audiodateien, Social Networks, Videos, Blogs, Twitter, Social Networks, mobile Geräte, wie beispielsweise Handys, Peer-to-Peer-Netzwerke, Eingabegeräte, Dateisysteme, Datenbanken, Suchmaschinen, Server, Router, Maschinen, Sensoren, Testsysteme, Debugger, Menschen und/oder Automobile. Sofern die vorliegende Erfindung 100 in einem Computernetzwerk 50 eingesetzt wird, kann dieses Netzwerk und dessen Teilnehmer die Rolle der Datenbasis einnehmen, im Internet z. B. das Internetnetzwerk selbst, Peer-to-Peer-Netzwerke, Webserver, Internetseiten, Klienten, mobile Klienten 130 (z. B. Mobiltelefone, Notebooks, PDAs, etc.) und weitere Akteure. Eine Internetseite kennzeichnet dabei ein Dokument, das über das Internet erreichbar ist, und kann verschiedene Inhalte umfassen, die dort auftreten, wie z. B. für Hypertextdokumente, Videos, Bilder und weitere Dokumente, die Hyperlinks beinhalten können. Der Begriff Internetseite kann auch für mehrere Dokumente stehen, z. B. alle oder ein Teil der Seiten unter einer bestimmten Domain. Somit ist der Begriff Internetseite auch ein Sammelbegriff für das, was allgemein Website oder Webseite genannt wird, d. h. ein Sammelbegriff für einen gesamten Internetauftritt, z. B. ein Auftritt eines Unternehmens, einer Organisation, einer Privatperson, eines Vereins, einer Interessensgruppe oder zu einem bestimmten Zweck, z. B. Verkauf, Handel, Information, Diskussion, Austausch, Vergnügen, Suche, Vermittlung etc. Eine solche Internetseite kann über verschiedene Protokolle übertragen werden, z. B. TCP/IP, HTTP, HTTPS, FTP, POP3, SMTP und andere Protokolle, die zur Kommunikation in Computernetzwerken 50 eingesetzt werden.Such documents may, for example, occur in a document base, also referred to as a database, in which the documents are stored. An example of a document base is a file system. However, a document base may also be active, for example, the database / document base may be a web server or even multiple web servers, such as the Internet. The term database also refers to several systems 110 or also via computer networks coupled systems. The term document is therefore a collective term for all possible outputs of a database or even a collection of data generated by a user. A document can, for. B. dynamically generated from a database, which is why a database in the context of the present invention 100 as source or combination of sources or source systems 110 which data can be requested, written and / or changed. A document is thus a logical unit, a partition, component and / or subdivision, and therefore also applies to parts of documents. Embodiments of the present invention 100 In doing so, they can use the structural information of the database to improve and / or accelerate access to the database or existing documents. For example, the following data and associated systems can serve as database and thus as documents 110 or systems 110 Serve alone: Hypertext documents, Word documents, e-mails, web servers, program code, such as classes or objects or other constructs that occur during programming or compiled source code generated from it, API calls or return values, accesses to program parts, business objects, such as z. Eg documents, or master data, application servers, SAP systems, data warehouses, text documents, images, audio files, social networks, videos, blogs, Twitter, social networks, mobile devices such as cell phones, peer-to-peer networks, input devices , File systems, databases, search engines, servers, routers, machines, sensors, test systems, debuggers, people and / or automobiles. Unless the present invention 100 in a computer network 50 is used, this network and its participants can take the role of the database, on the Internet z. For example, the Internet network itself, peer-to-peer networks, web servers, websites, clients, mobile clients 130 (eg mobile phones, notebooks, PDAs, etc.) and other actors. A web page identifies a document that is accessible via the Internet, and may include various content that occurs there, such. For hypertext documents, videos, images and other documents that may contain hyperlinks. The term website can also stand for several documents, eg. For example, all or part of the pages under a particular domain. Thus, the term website is also a collective term for what is commonly called website or website, ie a collective term for an entire website, eg. B. an appearance of a company, an organization, a private person, an association, an interest group or for a specific purpose, eg. B. sale, trade, information, discussion, exchange, pleasure, search, mediation etc. Such an Internet site can be transmitted via various protocols, eg. TCP / IP, HTTP, HTTPS, FTP, POP3, SMTP and other protocols used for communication in computer networks 50 be used.
Indem Ressourcen 111 Klassen oder auch Objekte aus Programmen sein können, ist es somit möglich, Zugriffsrechte mit diesen zu assoziieren. Rechte können dabei Rollen oder Zugriffsrechte sein, die spezifizieren, welche Operationen mit oder auf der Ressource 111 durchgeführt werden. Dies ist sehr vorteilhaft, da somit Rollen auch mit Objektinstanzen verknüpft werden und vererbt werden können. Somit ist es dadurch möglich, Role Based Access Control auf Objekt und nicht nur auf Klassenebene durchzuführen (Instance Role Based Access Control-IBAC).By resources 111 Classes or even objects from programs, it is thus possible to associate access rights with them. Rights can be roles or access rights that specify what operations are performed on or with the resource 111 be performed. This is very advantageous because roles can be linked to object instances and inherited. This makes it possible to implement Role Based Access Control on object and not just on the class level (Instance Role Based Access Control - IBAC).
Dieses IBAC macht es möglich, Zugriffsentscheidungen auf bestimmte Ressourcen 111 aufgrund von Hierarchien von Rechten oder Rollen, die nur für eine spezielle Ressource 111 oder Ressourcenhierarchie gelten und in dieser mit zumindest einem Klienten 130 verknüpft sind, zu treffen.This IBAC makes it possible to make access decisions to specific resources 111 due to hierarchies of rights or roles specific to a specific resource 111 or resource hierarchy apply and in this with at least one client 130 are linked to meet.
Hierbei können die Rechte, die Aufgrund von Aggregationen bestimmt wurden, gespeichert werden. Dadurch ist es möglich, die aggregierten Rechte bei einer Zugriffsentscheidung zu nutzen. Die Aggregatbildung selbst kann über Regeln oder auch über Programme stattfinden. Dabei ist es auch möglich, dass zur weiteren Beschleunigung der Aggregatbildung Warteschlangen mit Nachrichten verwendet werden, um die Parallelverarbeitung noch weiter zu erhöhen.Here, the rights that were determined on the basis of aggregations can be stored. This makes it possible to use the aggregated rights in an access decision. Aggregate formation itself can take place via rules or programs. It is also possible that queues with messages are used to further accelerate aggregate formation to further increase parallelism.
Dies ist gegenüber dem Stand der Technik ein großer Vorteil, da somit erstmals Beziehungen, wie zum Beispiel Vererbung, von Zugriffskontrolllisten über verschiedene Systeme 110 hinweg möglich sind. Dies wird realisierbar, weil verschiedenste Integrationseinheiten und Mittel zum Zugriff kombiniert werden können. Dabei können durch die Erfindung 100 die ererbten Rechte durch zumindest eine Aggregationseinheit 102 berechnet werden und durch die Integrationseinheit 101 gespeichert werden. So können beispielsweise schon vorhandene Systeme 110 oder Datenbasen, wie z. B. Image Server oder Video Streaming Server genutzt werden, und die einzelnen Ressourcen, wie Bilder, Videos, Verzeichnisse oder andere Dokumente können Rechte aus einem anderen System, wie zum Beispiel der Programmlogik erben.This is a great advantage over the prior art, since thus for the first time relationships, such as inheritance, of Access control lists on different systems 110 away are possible. This can be realized because a variety of integration units and access means can be combined. It can by the invention 100 the inherited rights through at least one aggregation unit 102 be calculated and by the integration unit 101 get saved. For example, already existing systems 110 or databases, such as. For example, Image Server or Video Streaming Server, and each resource, such as images, videos, directories, or other documents may inherit rights from another system, such as program logic.
Besonders vorteilhaft ist beim Bilden der Aggregate auch die Tatsache, dass nicht zwingend nur eine Aggregationseinheit 102 vorhanden ist, sondern es von diesen mehrere geben kann. Dies ermöglicht es, dass eine verteilbare Verarbeitung stattfinden kann und somit eine hohe Skalierbarkeit gewährleistet ist.Particularly advantageous in forming the aggregates is the fact that not necessarily only one aggregation unit 102 exists, but there may be more of these. This enables distributable processing to take place, thus ensuring high scalability.
Zudem kann die Erfindung 100, wie in 1b zu sehen, natürlich auch direkt mit einem oder mehreren Systemen 110 zusammen wirken. Beispielsweise kann diese Teil eines Systems 110 oder ein System 110 kann auch ein Teil dieser sein. Dies ermöglicht eine nahtlose Integration mit weiteren Systemen 110. Dadurch könnte die Erfindung 100 selbst wiederum z. B. als Sicherheitssystem dienen, das in Kombination mit weiteren Erfindungen 100 oder Systemen 110 eingesetzt wird. Dies ermöglicht, dass die Erfindung 100 nicht zwingend nur als ein System 110 umgesetzt werden kann. Vielmehr kann sie als eine Vielzahl von Systemen 110, die miteinander z. B. durch die Integrationseinheit 101 und Aggregationseinheit 102 kommunizieren, realisiert werden. Dadurch ergibt sich eine besonders vorteilhafte Verteilbarkeit, wie zum Beispiel in einem Computernetzwerk 50 über mehrere Server.In addition, the invention 100 , as in 1b of course, also directly with one or more systems 110 work together. For example, this part of a system 110 or a system 110 can also be a part of this. This allows seamless integration with other systems 110 , This could be the invention 100 itself in turn z. B. serve as a security system, in combination with other inventions 100 or systems 110 is used. This allows the invention 100 not necessarily just as a system 110 can be implemented. Rather, it can be considered a variety of systems 110 that z. B. by the integration unit 101 and aggregation unit 102 communicate, be realized. This results in a particularly advantageous distributability, such as in a computer network 50 over several servers.
In einem weiteren Aspekt der Erfindung 100 können die Systeme, die Mittel zur Zugriffsentscheidung 112 beinhalten, von der Erfindung 100 über zumindest ein Computernetzwerk, wie zum Beispiel das Internet, angesprochen werden. Dies ermöglicht es, dass die Erfindung 100 besonders bevorzugt in heterogenen verteilten Systemlandschaften eingesetzt werden kann.In a further aspect of the invention 100 can the systems, the means of access decision 112 include, from the invention 100 be addressed via at least one computer network, such as the Internet. This allows the invention 100 particularly preferably can be used in heterogeneous distributed system landscapes.
Ferner kann die Erfindung über zumindest einen Erbschaftsbaum verfügen. Ein solcher macht es möglich, die Vererbungsstruktur bzw. Vererbungsstrukturen abzubilden. Dies kann zum Beispiel beim Berechnen der Aggregate genutzt werden, um zu bestimmen, welche „Zugriffsentscheidungsmittel 112” bei der Aggregatbildung berücksichtigt werden müssen. Besonders vorteilhaft ist ein solcher Erbschaftsbaum dabei, dass somit Vererbung auch über verschiedene Systeme 110 hinweg, die selbst keine Vererbung unterstützen, abgebildet werden kann. Beispielsweise kann somit durch Aggregate in fremde nicht erbschaftsfähige Systeme 110 auch eine Erbschaftsfunktion hinzugefügt werden. Ein weiterer Vorteil des Erbschaftbaumes ist die Möglichkeit, dass auch mehrere eingesetzt werden können wie in 2a gezeigt. Dort ist zu sehen wie verschiedene Systeme 110–200, 210, 220 verschiedene Erbschaftsbäume besitzen und von Knoten in einem Erbschaftsbaum auf Knoten in weiteren verwiesen wird. Dies ermöglicht es besonders die Aggregation in Kombination mit Erbschaftsbäumen zu skalieren. Ein weiterer Vorteil von solchen Bäumen ist, dass die in den Bäumen vorhandene Information bei der Berechnung von Aggregaten verwendet werden kann. Beispielsweise um Abhängigkeiten zu erkennen und Ablaufpläne für die Aggregatbildung zu erzeugen.Furthermore, the invention may have at least one inheritance tree. This makes it possible to map the inheritance structure or inheritance structures. This can be used, for example, in calculating the aggregates to determine which "access decision means 112 "Must be considered in the formation of aggregates. Such inheritance tree is particularly advantageous in that thus inheritance also on different systems 110 that can not be inherited, can be mapped. Thus, for example, by aggregates into foreign non-inheritable systems 110 also be added to an inheritance function. Another advantage of the inheritance tree is the possibility that several can be used as in 2a shown. There you can see different systems 110 - 200 . 210 . 220 have different inheritance trees and are referenced from nodes in an inheritance tree to nodes in others. This makes it possible in particular to scale the aggregation in combination with inheritance trees. Another advantage of such trees is that the information available in the trees can be used in the calculation of aggregates. For example, to detect dependencies and generate aggregate schedules.
In einer weiteren Ausführung können in Programmen Mittel definiert werden, die bei der Zugriffsentscheidung berücksichtigt werden. Solche Mittel können zum Beispiel Annotationen oder auch Aspekte sein. Somit können beispielsweise Ausdrücke angegeben werden, welche Rollen oder Erlaubnisse welche Zugriffe auf zumindest eine Ressource 111 haben. Beispielsweise können somit Methoden einer Klasse oder die Klasse selbst über Annotationen zugriffsbeschränkt werden. Durch die Fähigkeit Aggregate zu bilden ist es zudem möglich, „virtuelle Ressourcen” im Programmquelltext zu definieren. Beispielsweise Bilder, die auf einem Image Server zu finden sind. Dabei können solche Bilder als „normale Objekte im Objektorientierten Sinne” im Programmquelltext vorkommen. Das physische Bild auf dem Image Server erbt die Rechte vom virtuellen Objekt. Dadurch ist es möglich, dass bei der Aggregatbildung die Rechte im Image Server somit vom „virtuellen Objekt” geerbt werden. Bei einer solchen Aggregatbildung ist es zudem möglich, zudem weitere Mittel, die im Programmquelltext definiert wurden, wie beispielsweise Inhalte von Annotationen oder Aspekten zu berücksichtigen.In another embodiment, means may be defined in programs that are taken into account in the access decision. Such means may be, for example, annotations or aspects. Thus, for example, expressions can be given which roles or permissions which accesses to at least one resource 111 to have. Thus, for example, methods of a class or the class itself can be restricted by means of annotations. Due to the ability to form aggregates, it is also possible to define "virtual resources" in the program source text. For example, images that can be found on an image server. In the process, such images can occur as "normal objects in the object-oriented sense" in the program source text. The physical image on the Image Server inherits the rights of the virtual object. This makes it possible for the rights in the image server to be inherited from the "virtual object" during aggregate formation. With such an aggregate formation, it is also possible to consider further means defined in the program source text, such as contents of annotations or aspects.
Eine, besonders bevorzugt im dynamischen Internetumfeld, wie Web.2.0, eingesetzte Variante der Erfindung 100, besitzt die Fähigkeit, dass dynamisch Integrationsmittel eingebunden oder entfernt werden können. Dies ermöglicht eine besonders flexible Anpassung ohne die Notwendigkeit die Erfindung 100 selbst anpassen zu müssen, sofern ein neues System 110 eingebunden werden soll, da somit erst zur Laufzeit die benötigten Integrationsmittel geladen werden können.A, particularly preferred in the dynamic Internet environment, such as Web.2.0, used variant of the invention 100 , has the ability to dynamically integrate or remove integrators. This allows a particularly flexible adaptation without the need of the invention 100 to adapt yourself if a new system 110 should be included, since thus only at runtime, the required integration means can be loaded.
Ferner kann die Erfindung 100 über Mittel verfügen, dass Aktualisierungen von „Mitteln zur Zugriffskontrolle” erkannt werden. Dies kann dazu genutzt werden, dass beispielsweise ein Prozess zur Aggregatbildung für Objekte, die vom betroffenen Objekt erben, durchgeführt oder aktualisiert wird. Diese Fähigkeit ermöglicht es somit besonders dynamisch und flexibel Mittel zur Zugriffsentscheidung 112 zu aktualisieren, da somit auch Aktualisierungen in fremden Systemen 110 erkannt werden können.Furthermore, the invention 100 have means that updates are detected by "access control means". This can be used to, for example, a process for aggregating objects that are affected by the affected Object inherit, performed or updated. This capability thus makes it particularly dynamic and flexible means for access decision 112 update, as well as updates in foreign systems 110 can be recognized.
Eine weitere Fähigkeit, die sich durch die Fähigkeiten der Erfindung 100 ergibt ist die Möglichkeit, dass auf Ressourcen 111 nicht über ein zentrales Sicherheitssystem zugegriffen werden muss, wie dies heutzutage zum Beispiel bei Spring Security der Fall ist. Vielmehr kann ein Klient 130 direkt auf Ressourcen 111 zugreifen, die in einem System 110 vorhanden sind, das die Mittel zur Zugriffsentscheidung 112 auswerten kann, wie es zum Beispiel in 1e–g gezeigt wird. Dabei können die Mittel zur Zugriffsentscheidung 112 zum Beispiel durch die Erfindung 100 aktualisiert werden. Dieser direkte Zugriff erspart einen Umweg der Datenpakete aus den eigentlichen Systemen 110 über die Erfindung 100 oder ein anderes Sicherheitssystem.Another skill, characterized by the capabilities of the invention 100 results is the possibility of being on resources 111 does not need to be accessed via a centralized security system, as is the case today with Spring Security, for example. Rather, a client can 130 directly on resources 111 access that in a system 110 that are the means of access decision 112 can evaluate, as for example in 1e -G is shown. In this case, the means for access decision 112 for example, by the invention 100 to be updated. This direct access saves a detour of the data packets from the actual systems 110 about the invention 100 or another security system.
Eine bevorzugte Variante der Erfindung 100 kann zudem über kryptographische Mittel verfügen oder diese nutzen. Diese können zum Beispiel dazu genutzt werden, um dem Klienten 130 ein Geheimnis mitzuteilen, das dazu dient, verschiedene Zugriffe auf zumindest eine Ressource 111 auszuführen. Dabei könnte ein solcher Zugriff auch zeitlich begrenzt werden. Dies kann dazu genutzt werden, somit auch weitere Fremdsysteme 110 einzusetzen. Beispielsweise könnte sich der Klient 130 somit über OpenID bei der Erfindung 100 authentifizieren und von der Erfindung 100 ein Geheimnis, mit dem er auf die benötigten Ressourcen 111 zugreifen kann, erhalten.A preferred variant of the invention 100 may also have or use cryptographic means. These can be used, for example, to help the client 130 to share a secret that serves various accesses to at least one resource 111 perform. This access could also be limited in time. This can be used, and thus also other third-party systems 110 use. For example, the client could 130 thus about OpenID in the invention 100 authenticate and of the invention 100 a secret with which he can access the resources needed 111 can get access.
Somit könnte beispielsweise eine Anwendung erstellt werden, die zumindest eine bestehende Sicherheitsinfrastruktur, wie z. B. die der Amazon Webservices ACL Infrastruktur ( http://aws.amazon.com/ ), der Google App Engine Infrastruktur ( http://code.google.com/intl/de-DE/appengine/ ) oder ähnliches, nutzt. Durch diese oder eine Ähnliche könnte zumindest ein direkter Ressourcenzugriff durch den Klienten 130 ermöglicht werden, indem z. B. die kryptographischen Mittel der Plattform dazu verwendet werden, zumindest einem Klienten 130 ein Geheimnis mitzuteilen, durch das direkt auf zumindest eine Ressource 111 zugegriffen werden kann. Dabei könnte auch die Wirksamkeit des Geheimnisses temporär beschränkt oder/und an verschiedene Zugriffsoperationen gekoppelt werden.Thus, for example, an application could be created that at least one existing security infrastructure, such. For example, Amazon Web Services ACL Infrastructure ( http://aws.amazon.com/ ), the Google App Engine Infrastructure ( http://code.google.com/intl/de-DE/appengine/ ) or similar uses. By this or a similar could at least a direct resource access by the client 130 be enabled by z. B. the cryptographic means of the platform can be used to at least one client 130 Sharing a secret by pointing directly to at least one resource 111 can be accessed. The effectiveness of the secret could also be temporarily limited or / and coupled to various access operations.
Des Weiteren könnte durch die Erfindung 100 eine Vererbungsstruktur für die Ressourcen 111 und/oder die zugehörigen Mittel, die zur Zugriffskontrolle, wie ACLs heutzutage bei Amazon, realisiert werden. Dies würde es dann im Zusammenspiel mit Aggregaten ermöglichen, die Plattform um eine Vererbungsmöglichkeit durch die Erfindung 100 zu erweitern. Um dies weiter zu verbessern, könnten einzelne Teile oder die komplette Erfindung 100 somit auch als Teil einer solchen Plattform realisiert werden, und andere Teile könnten beispielsweise als API oder auch als Bibliothek oder eine Kombination aus API und Bibliothek Entwicklern oder Benutzern der Plattform zur Verfügung gestellt werden. Dies würde es ermöglichen, dass Programme, die für eine solche Plattform entwickelt werden, schon ein fertiges hochskalierbares Sicherheitssystem, das es ermöglicht, Vererbung durchzuführen, benutzen könnten.Furthermore, could by the invention 100 an inheritance structure for the resources 111 and / or the associated means of access control, such as ACLs on Amazon today. This would then make it possible in conjunction with aggregates, the platform to an inheritance option by the invention 100 to expand. To further enhance this, individual parts or the complete invention could 100 thus also be realized as part of such a platform, and other parts could be made available to developers or users of the platform, for example, as an API or as a library or a combination of API and library. This would allow programs developed for such a platform to use a ready-made highly scalable security system that allows inheritance to be performed.
In einem solchen Szenario, in dem die Erfindung 100 in einer solchen oder ähnlichen Cloud Computing Infrastruktur eingesetzt wird, ist es zudem möglich, dass zur Verbesserung weitere Services, die eine solche Plattform anbietet, genutzt werden können. Beispielsweise könnte die Aggregation massiv durch viele Instanzen parallelisiert werden.In such a scenario where the invention 100 is used in such or similar cloud computing infrastructure, it is also possible that to improve other services that offers such a platform can be used. For example, aggregation could be massively parallelized by many instances.
Ferner können Informationen über den Klienten, sogenannte Klienteninformationen, bei der Zugriffsentscheidung genutzt werden. Klienteninformationen oder auch als Benutzerinformationen bezeichenbar sind dabei Informationen, die auf einen oder mehrere Benutzer/Klienten 130 oder auch auf eines oder mehrere Geräte, Anordnungen oder Verfahren bezogen sind. Klienteninformationen sind hierbei z. B. Daten über oder von Benutzern oder Apparaten, Anordnungen und Verfahren selbst. Dies können beispielsweise passive Daten, die zum Beispiel im Profil des Benutzers stehen, wie z. B. Heimatort, Gruppenmitgliedschaften, Freunde oder auch Daten, die zum Beispiel durch Analysen aufgedeckt wurden, sein. Andere Arten von Benutzerdaten können aktive Daten sein. Aktiv kann bedeuten, dass diese Daten erst zur Laufzeit existieren und sich besonders häufig ändern. Beispielsweise die aktuellen Koordinaten des Benutzers, wie z. B. GPS Koordinaten oder Zugangspunkt, dessen IP, Statusmeldung, Verbindungsgeschwindigkeit, Clienttyp. Aufgrund der Eigenschaften von Klienteninformationen ist oftmals weitere Information aus einer solchen Information ableitbar. Zum Beispiel im Standortumkreis aufgrund des Zugangspunktes, der GPS Koordinaten oder/und einer IP-Adresse. Solche ableitbare Information wird wiederum selbst auch als Klienteninformation bezeichnet.Furthermore, information about the client, so-called client information, can be used in the access decision. Client information or even user information is identifiable information that is based on one or more users / clients 130 or are related to one or more devices, arrangements or methods. Client information here are z. For example, data about or from users or devices, arrangements and procedures themselves. This may include, for example, passive data that may be in the user's profile, such as a user's profile. As hometown, group memberships, friends or even data that have been revealed, for example, by analysis. Other types of user data may be active data. Active can mean that these data only exist at runtime and change very frequently. For example, the current coordinates of the user, such. GPS coordinates or access point, its IP, status message, connection speed, client type. Due to the characteristics of client information, further information is often derivable from such information. For example, in the location perimeter based on the access point, the GPS coordinates or / and an IP address. Such derivable information is itself also referred to as client information.
Beispielsweise kann somit ein Klient 130 aufgrund seiner derzeitigen Position andere Geheimnisse mitgeteilt bekommen, wie wenn er sich an einer anderen Position befindet. Des Weiteren können somit die Klienteninformationen, auch zusammen mit weiteren Klienteninformationen oder anderen Daten zusammen, beachtet werden. Diese Fähigkeit, Klienteninformationen bei der Zugriffsentscheidung zu beachten, macht somit vielfältige neuartige Anwendungsfälle für Absicherungen möglich, und es können somit neuartige Zugriffsentscheidungen getroffen werden. Beispielsweise ist es somit möglich, den Zugriff von Klienten 130 auf Informationen von anderen Klienten 130, die sich in deren Nähe aufhalten zu beschränken.For example, thus a client 130 due to his current position, he will be informed of other secrets, as if he is in a different position. Furthermore, thus the client information, together with other client information or other data together, can be considered. This ability to pay attention to client information in the access decision thus allows for a variety of novel use cases for backups, and thus new access decisions can be made. For example, it is thus possible, the Access from clients 130 on information from other clients 130 Restrict to their proximity.
Eine weitere Variante der Erfindung 100 unterstützt eine oder mehrere Rollen oder eine oder mehrere Hierarchien von Zugriffsrechten. Solche können zum Beispiel ausdrücken, welche Rechte oder Rollen andere Rechte oder Rollen beinhalten. Somit können zum Beispiel auch Rollen und Rechte einfacher vergeben und konfiguriert werden, da es nicht mehr nötig ist, alle Rechte und Rollen zu spezifizieren. Besonders vorteilhaft ist diese Variante im Zusammenspiel mit dem Assoziieren von Rechten auf bestimmte Ressourcen 111. Hierbei ist es Zugriffsentscheidungen auf bestimmte Ressourcen 111 aufgrund von Hierarchien und Rechten oder Rollen, die nur für eine spezielle Ressource 111 oder Ressourcenhierarchie, mit einem Klienten 130 verknüpft sind zu treffen. Dies unterscheidet die Beispielsweise stark von Spring Security wo solche Hierarchien nicht direkt für Ressourcen 111 definierbar sind.Another variant of the invention 100 supports one or more roles or one or more hierarchies of access rights. For example, they may express which rights or roles contain other rights or roles. Thus, for example, roles and rights can be assigned and configured more easily, since it is no longer necessary to specify all rights and roles. This variant is particularly advantageous in conjunction with associating rights with certain resources 111 , Here it is access decisions to certain resources 111 due to hierarchies and rights or roles specific to a specific resource 111 or resource hierarchy, with a client 130 are linked to meet. This differs from the example of Spring Security where such hierarchies are not directly related to resources 111 are definable.
Die vorliegende Erfindung 100 betrifft ferner ein Verfahren zum Absichern von Ressourcen, wobei das Verfahren die folgenden Schritte aufweist: a. Zugriff auf ein oder mehrere Mittel, die genutzt werden, um Zugriffsentscheidungen über den Zugriff auf zumindest eine Ressource 111 zu beeinflussen; und b. Berechnung zumindest eines Aggregates, wobei bei der Berechnung zumindest ein Mittel zur Zugriffsentscheidung verwendet wird. Weitere vorteilhafte Ausführungsformen des erfindungsgemäßen Verfahrens finden sich in den weiteren abhängigen Ansprüchen.The present invention 100 further relates to a method of securing resources, the method comprising the steps of: a. Access one or more resources used to make access decisions about accessing at least one resource 111 to influence; and b. Calculation of at least one aggregate, wherein at least one means of access decision is used in the calculation. Further advantageous embodiments of the method according to the invention can be found in the further dependent claims.
Zuletzt stellt die vorliegende Erfindung 100 ein Computerprogramm bereit, das Instruktionen aufweist, um jedes hierin beschriebene Verfahren auszuführen.Finally, the present invention provides 100 a computer program having instructions to execute each method described herein.
4. Kurze Beschreibung der Zeichnungen4. Brief description of the drawings
1a–e: Anordnungen, Systeme und Interaktionen nach Ausführungsformen der vorlegenden Erfindung; 1a E: arrangements, systems and interactions according to embodiments of the present invention;
2a–c: Erbschaftsmöglichkeiten nach Ausführungsformen der vorliegenden Erfindung; 2a -C: inheritance possibilities according to embodiments of the present invention;
3a–d: Verfahren und Visualisierungen zur Aggregatbildung nach Ausführungsformen der vorliegenden Erfindung; 3a -D: Aggregation method and visualizations according to embodiments of the present invention;
4: Eine Integrationseinheit und Anordnung nach einer Ausführungsform der vorliegenden Erfindung; 4 An integration unit and arrangement according to an embodiment of the present invention;
5: Verfahren und exemplarische Darstellung der Transformation zwischen verschiedenen Mitteln, die zur Zugriffsentscheidung genutzt werden, nach einer Ausführungsform der vorliegenden Erfindung; 5 Method and exemplary representation of the transformation between different means used for access decision, according to an embodiment of the present invention;
5. Detaillierte Beschreibung von bevorzugten Ausführungsformen5. Detailed description of preferred embodiments
Sicherheitssysteme/System Bestandteile:Security Systems / System components:
Grundlegend ist es bei Systemen 110 so, dass Mittel zur Zugriffsentscheidung 112 die Entscheidung über die Erlaubnis oder auch die teilweise Erlaubnis eines Zugriffs treffen und diesen somit Autorisieren. Diese könnten auch Mittel Zugriffskontrolle genannt werden. Dabei werden Mittel genutzt oder/und auch ausgewertet, die von den Mitteln zur Zugriffsentscheidung 112 zu den Fällen der Entscheidung in Betracht gezogen werden. Zur Vereinfachung werden in diesem Dokument diese zwei Arten von Mitteln, als Zugriffsentscheider 114 und Entscheidermittel 113, bezeichnet. Wobei Entscheidermittel 113, wie auch Zugriffsentscheider 114, jeweils auch für eine Mehrzahl von Zugriffsentscheidern 114, wie auch von Entscheidermitteln 113 stehen können. Dabei ist der Zugriffsentscheider 114 das Mittel, das zumindest eine Zugriffsentscheidung fällt. Dieser kann auch als „Mittel zur Zugriffsentscheidung 112” bezeichnet werden. Die Entscheidermittel 113 sind die Mittel, aufgrund derer die Entscheidung getroffen wird, wie zum Beispiel Ressourcen, wie Dokumente. Diese können auch als „Mittel”, die zu Zugriffsentscheidungen genutzt werden” bezeichnet werden. Zugriffsentscheidungen können dabei auch eine Mehrzahl von Zugriffsentscheidungen bedeuten, zum Beispiel, indem mehrere kleinere Zugriffsentscheidungen zu einer großen Zugriffsentscheidung führen können. Da oftmals die Grenze zwischen diesen verschiedenen Mitteln nicht deutlich gezogen werden kann und in Sicherheitssystemen 110 eine Vermischung zwischen Entscheidermitteln 113, Zugriffsentscheider 114 und Zugriffsentscheidungen besteht, können diese generalisiert als Mittel zur Zugriffsentscheidung 112 bezeichnet und sämtliches Vorkommen der zuvor erwähnten Begriffe in diesem Dokument könnte durch „Mittel zur Zugriffsentscheidung 112” ersetzt werden. Der Grund, warum jedoch trotzdem die Worte Entscheidermittel 113, Zugriffsentscheidung und Zugriffsentscheider 114 teilweise genutzt werden ist dabei, dass diese Unterteilung eine einfachere Verständlichkeit der Erfindung 100 fördert. Deshalb werden im weiteren Verlauf, wenn es die Verständlichkeit fördert, die Begriffe Zugriffsentscheider 114 und Entscheidermittel 113 anstatt Mittel zur Zugriffsentscheidung 112 verwendet.It is fundamental in systems 110 such that means of access decision 112 make the decision about the permission or the partial permission of an access and thus authorize this. These could also be called means access control. In doing so, funds are used or / and also evaluated by means of access decision 112 be taken into account in the cases of the decision. For simplicity, this document uses these two types of resources as access decision-makers 114 and decision maker 113 , designated. Where the decision maker 113 as well as access decision makers 114 , in each case also for a plurality of access decision makers 114 as well as decision-makers 113 can stand. Here is the access decision maker 114 the means that makes at least one access decision. This can also be used as a "means of access decision 112 Be designated. The decision-making means 113 are the means by which the decision is made, such as resources, such as documents. These can also be referred to as "resources" used for access decisions. Access decisions can also mean a plurality of access decisions, for example, in that multiple smaller access decisions can result in a large access decision. Often the border between these different means can not be clearly drawn and in security systems 110 a mixture between decision-making agents 113 , Access decision maker 114 and access decisions, these can be generalized as a means of access decision 112 and all occurrences of the aforementioned terms in this document could be identified by "means of access decision 112 " be replaced. The reason why, nevertheless, the words decider 113 , Access decision and access decision maker 114 is partially used is that this subdivision easier understanding of the invention 100 promotes. Therefore, in the further course, if it promotes comprehensibility, the terms access decision makers 114 and decision maker 113 rather than means of access decision 112 used.
Fig. 1aFig. 1a
1a zeigt eine Ausführungsform der vorliegenden Erfindung 100. Dabei ist zu sehen, dass die Erfindung 100 über Mittel verfügt, wie zum Beispiel eine oder mehrere Integrationseinheiten 101, die es ermöglichten, dass die Erfindung 100 zusammen mit weiteren Sicherheitssystemen 110 oder Erfindungen 100 eingesetzt wird. Zusätzlich ist zu sehen, dass die Erfindung 100 auch über eines oder mehrere Mittel, die zum Bilden von zumindest einem Aggregat, auch im Zusammenspiel mit weiteren Bestandteilen der Erfindung, genutzt werden können, wie z. B. eine Aggregationseinheit 102, verfügen kann. Eine oder mehrere solcher Mittel zur Aggregation, wie zum Beispiel Aggregationseinheiten 102, können mit Mitteln zur Integration, wie zum Beispiel zumindest einer Integrationseinheit 101 zusammen wirken. Dieses Zusammenwirken kann zum Beispiel beim Erzeugen von Aggregaten von Entscheidermitteln 113 stattfinden. Beispielsweise können durch Integrationseinheiten 101 Aggregationseinheiten 102 Informationen über Aktualisierungen mitgeteilt werden oder Aggregationseinheiten 102 können Integrationseinheiten 101 nutzen, um auf Entscheidermittel 113 zuzugreifen. Ein solcher Zugriff kann zum Beispiel das Lesen, Schreiben, Aktualisieren oder auch die Analyse von Mitteln, die zur Zugriffskontrolle verwendet werden, sein. 1a shows an embodiment of the present invention 100 , It can be seen that the invention 100 has means such as Example one or more integration units 101 that made it possible for the invention 100 together with other security systems 110 or inventions 100 is used. In addition, it can be seen that the invention 100 also via one or more means that can be used to form at least one aggregate, also in interaction with other components of the invention, such. B. an aggregation unit 102 , can have. One or more such aggregation means, such as aggregation units 102 , with means for integration, such as at least one integration unit 101 work together. This cooperation can, for example, be used when generating aggregates of decision makers 113 occur. For example, through integration units 101 aggregation units 102 Information about updates will be communicated or aggregation units 102 can integrate units 101 use it to decide 113 access. Such access may be, for example, reading, writing, updating or even analyzing means used for access control.
In der 1a ist ferner zu sehen, dass ein oder mehrere Klienten 130 direkt auf die einzelnen Teile der Erfindung 100 zugreifen können, und somit sämtliche Funktionen, die durch diese Erfindung 100 offenbart wurden, direkt durch einen Klienten 130 nutzbar sind.In the 1a It can also be seen that one or more clients 130 directly to the individual parts of the invention 100 access, and thus all functions, by this invention 100 revealed directly by a client 130 are usable.
Klienten:clients:
Klienten 130 sind dabei z. B. Menschen oder Menschengruppen, die technische Geräte nutzen, um mit Maschinen, Verfahren, anderen Klienten, Anordnungen oder auch über Computernetzwerken zu kommunizieren. Klienten 130 müssen nicht zwangsläufig Menschen sein. Vielmehr können Klienten 130 zum Beispiel Maschinen, Apparate und Verfahren, also auch Benutzergruppen sein.clients 130 are z. For example, people or groups of people who use technical devices to communicate with machines, processes, other clients, devices or even over computer networks. clients 130 do not necessarily have to be humans. Rather, clients can 130 For example, machines, apparatus and procedures, so be user groups.
Oftmals sind mit Klienten 130 auch Informationen, auch mit den technischen Geräten, die sie nutzen, assoziierbar. Weil ein Klient 130 einen Benutzer oder Benutzergruppen darstellen kann, der oder die zumindest ein technisches Gerät nutzen oder die Klienten 130 selbst eine oder mehrere Maschinen sind, wird daher im weiteren Verlauf nicht zwischen Benutzer (Menschen) und Klient unterschieden und das Wort Klient 130 auch zusätzlich als Äquivalent für Benutzer gebraucht und umgekehrt.Often with clients 130 also information, even with the technical devices that use them, associable. Because a client 130 may represent a user or groups of users using at least one technical device or the clients 130 Even if one or more machines are themselves, there will be no differentiation between user (human) and client and the word client 130 also used as an equivalent for users and vice versa.
Aggregate:Aggregate:
Aggregate sind dabei Entscheidermittel 113, die aus bereits vorhandenen Entscheidermitteln 113 oder auch Ressourcen, wie z. B. weiteren Dokumenten berechnet wurden. Zum Beispiel können Aggregate von Mitteln zur Zugriffsentscheidung als die Summe von erlaubten Rechten für Klienten 130 abzüglich der Verweigerungen für Klienten 130 gesehen werden. Dabei können als weitere Ressourcen 111 z. B. Rahmenbedingungen, wie zum Beispiel hierarchische Berechtigungen oder auch hierarchische Rollen oder weitere Mittel, die zur Zugriffsentscheidung bei deren Erzeugung oder Aktualisierung beachtet werden. Dabei können z. B. sämtliche, in diesem Dokument besprochene, Merkmale die bei der Aggregatbildung oder Schritte dieser darstellen, berücksichtigt werden, dazu dienen, Aggregate von „normalen” Entscheidermitteln 113 abzugrenzen. Zum Beispiel kann ein Aggregat gegebenenfalls für zumindest ein Zielsystem in ein passendes Format transformiert sein, wobei beim Erzeugen des Aggregates und der gegebenenfalls anfallenden Transformation in passendes Format für das Zielsystem auch weitere Rahmenbedingen, wie zum Beispiel Regeln, Computerprogramme, Systeme 110 oder Informationen über Klienten 130 in verschiedenen Systemen 110, verwendet werden können. Besonders bevorzugt können solche Aggregate Optimierungen für verschiedenste Anwendungsfälle im Vergleich zu den Entscheidermitteln 113 oder Ressourcen, aus denen sie erzeugt wurden, beinhalten. Im Gegensatz zu einem normalen Mittel, das zu Zugriffsentscheidungen genutzt wird, kann ein Aggregat auch zusätzlich oder alternativ durch weitere Merkmale gekennzeichnet sein. Zum Beispiel kann damit eine schnellere Zugriffsentscheidung bei zumindest einem Zugriff, im Gegensatz zu zumindest einer Zugriffsentscheidung aufgrund zumindest eines zuvor vorhandenen Entscheidermittels 113, das zur Erzeugung des Aggregates berücksichtigt wurde, möglich sein. Oder/und es werden weniger oder keine Ressourcen 111 von zumindest einem Zugriffsentscheider 114, im Gegensatz zu zumindest einer Zugriffsentscheidung, aufgrund zumindest eines zuvor vorhandenen Entscheidermittels 113, das zur Erzeugung des Aggregates berücksichtigt wurde, benötigt. Wobei solche Ressourcen, beispielsweise Speicher oder Prozessorlast sein können, aber auch Dokumente oder Regeln, die bei der Zugriffsentscheidung zur Entscheidung der Zugriffsfrage genutzt werden. Oder/und es ist kein Auswerten von weniger Regeln oder Computerprogrammen, im Gegensatz zu zumindest einer Zugriffsentscheidung, aufgrund zumindest eines zuvor vorhandenen Entscheidermittels 113, das zur Erzeugung des Aggregates berücksichtigt wurde, möglich. Des weiteren können Aggregate auch, z. B. zumindest eine optimierte Form dahingehend welche Zugriffe besonders oft durchgeführt werden, beispielsweise bei der Nutzung von Klientinformationen, im Vergleich mit zumindest einer Zugriffsentscheidung, aufgrund zumindest eines zuvor vorhandenen Entscheidermittels 113, das zur Erzeugung des Aggregates berücksichtigt wurde, darstellen. Eine weitere Möglichkeit ist, dass Aggregate es ermöglichen, an oder in Ressourcen, wie zum Beispiel Webservern, Zugriffsentscheidungen zu treffen, an denen diese bisher nicht möglich waren. In Kombination oder auch als Alternative können Aggregate auch Transformationen und somit zum Beispiel eine Repräsentation von Entscheidermitteln 113, die sich zumindest in einem Ausdruck von zumindest einem zuvor vorhandenen Entscheidermittel 113, das zur Erzeugung des Aggregates berücksichtigt wurde, unterschieden. Ein solcher Ausdruck kann zum Beispiel sein, dass anstatt eines Benutzernamens eine BenutzerID im Aggregat angegeben ist.Aggregates are decision-making agents 113 from existing decision-makers 113 or resources such. B. other documents were calculated. For example, aggregates of access decision means may be the sum of allowed rights for clients 130 minus the denials for clients 130 be seen. It can be considered as additional resources 111 z. As framework conditions, such as hierarchical permissions or hierarchical roles or other means that are considered for access decision in their generation or updating. This z. For example, all of the features discussed in this document that are presented in aggregate formation or steps thereof may be considered to serve aggregates of "normal" arbitration means 113 delineate. For example, an aggregate may optionally be transformed into a suitable format for at least one target system, whereby further framework conditions, such as rules, computer programs, systems, are also generated when the aggregate is generated and the transformation, if appropriate, into the appropriate format for the target system 110 or information about clients 130 in different systems 110 , can be used. Such aggregates can particularly preferably be optimizations for a very wide variety of applications in comparison to the decision-making means 113 or resources from which they were generated. In contrast to a normal means, which is used for access decisions, an aggregate can additionally or alternatively be characterized by further features. For example, this can result in a faster access decision with at least one access, in contrast to at least one access decision based on at least one previously existing decision maker 113 that was taken into account for generating the aggregate. Or / and there will be less or no resources 111 of at least one access decision maker 114 , in contrast to at least one access decision, due to at least one previously existing decision maker 113 needed to produce the aggregate. Where such resources, such as memory or processor load can be, but also documents or rules that are used in the access decision to decide the access question. Or / and it is not an evaluation of fewer rules or computer programs, in contrast to at least one access decision, due to at least one previously existing decision maker 113 that was considered for generating the aggregate possible. Furthermore, aggregates can also, for. B. at least one optimized form in which accesses are particularly often performed, for example, in the use of client information, in comparison with at least one access decision, due to at least one previously existing decision maker 113 that was taken into account for generating the aggregate. Another possibility is that aggregates make it possible to work on or in resources such as Take Web servers, for example, to make access decisions that were previously not possible. In combination or alternatively, aggregates can also be transformations and thus, for example, a representation of decision-making agents 113 , at least in an expression of at least one previously existing decision maker 113 , which was considered for the generation of the aggregate, distinguished. Such an expression may be, for example, that instead of a user name, a userID is specified in the aggregate.
Sicherheitssysteme/SystemeSecurity Systems / Systems
Als die zuvor beschriebenen Sicherheitssysteme 110 oder auch oftmals Systeme 110 genannt, sind hierbei alle Apparate, Verfahren und Anordnungen zu verstehen die irgendwelche Mittel nutzen, um Zugriffsentscheidungen über den Zugriff auf zumindest eine Ressource 111 zu fällen oder selbst das Mittel oder einen Teil des Mittels darstellen, das bei einem Zugriff ausgewertet wird. Weil oftmals viele Systeme 110 Zugriffskontrolllisten bei Zugriffen auswerten können diese auch als Sicherheitssysteme 110 im Sinne der Erfindung 100 gesehen werden. Somit ist als Sicherheitssystem jedes System 110 zu sehen, das Sicherheitsfunktionen unterstützt. Dabei sind somit beispielsweise auch Programme, die Sicherheitsfunktionen oder auch die Erfindung 100 selbst als Sicherheitssystem zu sehen. Die Bezeichnung Sicherheitssystem ist somit vielmehr als logische Bezeichnung für zugriffskontrollfähige Systeme 110 oder Einheiten, die für die Sicherheit zuständig sind, wie zum Beispiel Zugriffskontrolllisten zu verstehen. Beispielswiese Webserver, wie Apache oder IIS, Windows Server, ERP-Systeme, Business Intelligence Systeme und viele andere.As the security systems described above 110 or often systems 110 These are all apparatus, methods and arrangements that use any means to access decisions about access to at least one resource 111 or even represent the means or part of the mean that is evaluated upon access. Because often many systems 110 Access control lists for accesses can also evaluate these as security systems 110 in the sense of the invention 100 be seen. Thus, every system is a security system 110 to see that supports security features. Thus, for example, programs, the security functions or even the invention 100 to see yourself as a security system. The term security system is thus rather a logical name for access-controlled systems 110 or units responsible for security, such as access control lists. Examples include Web servers such as Apache or IIS, Windows Server, ERP systems, Business Intelligence systems and many others.
Es ist nicht zwingend vorgegeben, so dass rein die Integrationseinheiten auf die Sicherheitssysteme 110 zugreifen können. Beispielsweise ist es denkbar, dass auch die Aggregationseinheiten selbst auf die Sicherheitssysteme 110 zugreifen können. Der Grund dafür ist, dass beispielsweise durch die Integrationseinheiten 101 Aktualisierungen aufgedeckt werden könnten und aufgrund deshalb Aggregationsverfahren in Aggregationseinheiten 102 begonnen werden, und diese keinen direkten Zugriff auf die Integratoren besitzen und direkt die Resultate der Aggregationsverfahren schreiben.It is not mandatory, so that purely the integration units on the security systems 110 can access. For example, it is conceivable that even the aggregation units themselves on the security systems 110 can access. The reason is that, for example, through the integration units 101 Updates could be uncovered and therefore due to aggregation procedures in aggregation units 102 and they do not have direct access to the integrators and directly write the results of the aggregation procedures.
Eine weitere Fähigkeit über die die Erfindung 100 verfügen kann sind Mittel zur Zugriffsentscheidung 112. Also Zugriffsentscheider 114 und Entscheidungsmittel. Diese können alle in dieser Erfindung 100 beschriebenen Entscheidungsmittel auswerten und über Zugriffe entscheiden. Beispielsweise könnten solche Mittel nach dem Vorbild von Spring Security oder Apache Shiro erstellt, oder dortige bereits bestehende Mittel könnten dahingehend modifiziert werden um die erweiterten neuartigen Funktionen dieser Erfindung 100 mit derzeit existierenden zu kombinieren. Eine weitere Möglichkeit ist es, dieses andere bereits bestehende Sicherheitssystem dahingehend weiterzuentwickeln, dass sie die Funktionen dieser Erfindung 100 in einem oder mehreren Apparaten, Verfahren oder Anordnungen unterstützen. Somit ist diese Erfindung, wie auch die Weiterentwicklung für jedes Sicherheitssystem zu sehen und kann dabei über, für besonders solche Fälle spezialisierte, Mittel verfügen, um eine optimale Integration zu erreichen.Another skill about the invention 100 may be means of access decision 112 , So access decision makers 114 and decision-making. These can all be in this invention 100 evaluate decision-making means and decide on accesses. For example, such resources could be modeled on Spring Security or Apache Shiro, or existing resources could be modified to include the advanced novel features of this invention 100 to combine with existing ones. Another possibility is to further develop this other existing security system to perform the functions of this invention 100 in one or more apparatus, methods or arrangements. Thus, this invention as well as the advancement is to be seen for each security system and may have means specialized for such cases to achieve optimal integration.
Es gilt aber zu beachten, dass diese Erfindung 100 sich nicht nur für die Java Plattform oder die Java Enterprise Plattform umsetzen lässt. Vielmehr kann die Erfindung 100 auf den verschiedensten Plattformen realisiert werden. Beispielsweise auf der Dotnet Plattform oder auch in C++. Auch ist es denkbar, dass die Erfindung 100 als eine Kombination von verschiedenen Technologien umgesetzt wird.However, it should be noted that this invention 100 can not be implemented only for the Java platform or the Java Enterprise platform. Rather, the invention 100 be realized on a variety of platforms. For example, on the Dotnet platform or in C ++. It is also conceivable that the invention 100 implemented as a combination of different technologies.
Beispiele, Mittel zur Zugriffsentscheidung 112:Examples, means of access decision 112 :
Die Mittel die von Sicherheitssystemen 110 oder der Erfindung 100 selbst genutzt werden, um Zugriffsentscheidungen zu treffen, können dabei vielfältig sein. Solche Mittel können zum Beispiel Zugriffskontrolllisten (engl. ACL, Access Control List), die heutzutage besonders häufig, wie zum Beispiel von Security oder auch einem Apache Webserver eingesetzt werden, sein. Aber auch Programme oder Tabellen in Datenbanken oder Internetseiten oder sämtliche Dokumente können solche Mittel sein. Ein weiteres Beispiel für solche Mittel können auch Annotationen sein oder Sicherheitsaspekte der Aspekt orientierten Programmierung. Somit können beispielsweise im Programmquelltext Ausdrücke angegeben werden, welche Rollen oder Erlaubnisse, welche Zugriffe auf zumindest eine Ressource 111 haben. Es können auch, z. B. durch solche Ausdrücke, direkt oder indirekt durch Systemlogik weitere Mittel, wie zum Beispiel Zugriffskontrolllisten spezifiziert werden, die bei der Zugriffsentscheidung genutzt werden. Ein weiteres Beispiel für solche Mittel zur Zugriffsentscheidung 112 können Klientinformationen sein.The means of security systems 110 or the invention 100 even being used to make access decisions can be diverse. Such means may be, for example, Access Control Lists (ACL), which are particularly common nowadays, such as by Security or an Apache web server. But also programs or tables in databases or web pages or all documents can be such means. Another example of such means may also be annotations or security aspects of aspect oriented programming. Thus, for example, expressions can be given in the program source text which roles or permissions, which accesses to at least one resource 111 to have. It can also, for. B. by such terms, directly or indirectly by system logic other means, such as access control lists are specified, which are used in the access decision. Another example of such access decision means 112 can be client information.
Klientinformationen:Client information:
Aufgrund der vielfältigen Möglichkeiten, was oder wer ein Klient 130 sein kann, sind auch Klienteninformationen als Informationen über Benutzer zu verstehen, wie auch die Information über technische Geräte. Klienteninformationen sind dabei Informationen, die auf einen oder mehrere Benutzer oder auch auf einen oder mehrere Klienten 130, Geräte oder Verfahren bezogen sind. Klienteninformationen sind also hierbei Daten über oder von Benutzern oder Apparaten und Verfahren selbst. Dies können beispielsweise passive Daten, die zum Beispiel im Profil des Benutzers stehen, wie z. B. Heimatort, Gruppenmitgliedschaften, Freunde oder auch Daten, die zum Beispiel durch Analysen aufgedeckt wurden, sein. Andere Arten von Benutzerdaten können aktive Daten sein. Aktiv kann bedeuten, dass diese Daten erst zur Laufzeit existieren und sich besonders häufig ändern. Beispielsweise die aktuellen Koordinaten des Benutzers, dessen IP, Statusmeldung, Verbindungsgeschwindigkeit, Clienttyp. Aufgrund der Eigenschaften von bisher gezeigter Klienteninformation ist oftmals weitere Information aus einer solchen Information ableitbar. Zum Beispiel im Standortumkreis aufgrund einer IP-Adresse. Solche ableitbare Information wird wiederum selbst auch als Klienteninformation bezeichnet.Because of the manifold possibilities, what or who a client 130 can also be client information as information about users, as well as the information about technical devices. Client information is information that refers to one or more users or to one or more clients 130 , Devices or processes are related. Client information is thus data about or from users or devices and procedures themselves. This can For example, passive data, for example, in the profile of the user, such. As hometown, group memberships, friends or even data that have been revealed, for example, by analysis. Other types of user data may be active data. Active can mean that these data only exist at runtime and change very frequently. For example, the current coordinates of the user, their IP, status message, connection speed, client type. Due to the characteristics of previously shown client information, further information can often be derived from such information. For example, in the location perimeter due to an IP address. Such derivable information is itself also referred to as client information.
Dabei kann z. B. auch eine Kombination der verschiedenen Möglichkeiten der Mittel zur Zugriffsentscheidung 112 zu zumindest einer Zugriffsentscheidung verwendet werden. Beispielsweise eine Kombination aus Zugriffskontrolllisten und Annotationen und Aspekten, wie bei Spring Security. Diese Erfindung 100 ermöglicht es nun, diesen Umstand bei der Aggregatbildung bzw. Aggregation zu beachten.It can be z. For example, a combination of the various possibilities of the access decision means 112 be used for at least one access decision. For example, a combination of access control lists and annotations and aspects, as in Spring Security. This invention 100 now makes it possible to take this fact into account when aggregating or aggregating.
Somit ist es möglich, dass Informationen über Klienten, wie zum Beispiel dessen Standort in der Form von GPS Daten oder auch andere weiteren Daten aus dessen Profil, bei der Zugriffsentscheidung genutzt werden. Dies ermöglicht es z. B., dass die Erfindung 100 somit auch „Location based Access Control” unterstützen kann. Dabei können diese Daten mit weiteren Mitteln zur Zugriffsentscheidung kombiniert werden. Besonders vorteilhat hierbei ist, dass die Klienteninformationen als Mittel zur Zugriffsentscheidung 112 hierbei selbst in Aggregate einfließen können oder zusammen mit Aggregaten ausgewertet werden können. Für solche Szenarien kann die Erfindung 100 über weitere besonders hierfür spezialisierte Mittel verfügen. Beispielsweise können Aggregate dahingehend optimiert und gebildet werden, dass Zugriffsentscheidungen durch diese, besonders im Bezug auf Performanz, bei der Einbeziehung von Klienteninformationen, zum Beispiel zu den Aggregaten selbst, bei der eigentlichen Zugriffsentscheidung, getroffen werden können.Thus, it is possible that information about clients, such as its location in the form of GPS data or other other data from its profile, are used in the access decision. This allows z. B. that the invention 100 thus also "Location based Access Control" can support. This data can be combined with other means of access decision. Particularly advantageous here is that the client information as a means of access decision 112 In this case, they can even be incorporated into aggregates or evaluated together with aggregates. For such scenarios, the invention 100 have other specialized resources. For example, aggregates can be optimized and formed such that access decisions can be made by them, particularly in terms of performance, in the incorporation of client information, for example to the aggregates themselves, in the actual access decision.
Zugriffskontrolllisten können des Weiteren mit den verschiedensten Ressourcen 111 assoziiert werden. Beispielsweise mit Klassen, Objekten und jeder Art von Dokumenten. Dadurch können die Rechte auf Ebene der verschiedensten Ressourcen 111 zugeordnet werden. Beispielsweise ist es damit möglich Rollen, Objektinstanzen bei einem Programm in einer objektorientierten Programmiersprache, wie z. B. Java oder Visual Basic, zuzuweisen.Access Control Lists can also be used with a variety of resources 111 be associated. For example, with classes, objects, and any kind of documents. This allows the rights at the level of various resources 111 be assigned. For example, it is possible roles, object instances in a program in an object-oriented programming language such. Java or Visual Basic.
Ressourcen 111 oder Zugriffskontrolllisten können zusätzlich in einer bevorzugten Ausführung Beziehungen zueinander haben, wie zum Beispiel Erbschaft. Eine solche Erbschaft kann zum Beispiel bedeuten, dass die Rechte einer Zugriffskontrollliste die Rechte einer oder mehrerer anderer Zugriffskontrolllisten oder anderer Mittel einschließt. Beispielsweise kann ein Bild eines Verzeichnisses Rechte erben. Auch ist es denkbar, dass Hierarchien von Business Objekten, wie zum Beispiel Stammdaten oder Stammdatengruppen oder Belege oder/und andere Objekte in betriebswirtschaftlichen Systemen, wie z. B. in Erp Systemen oder Data Warehouses vorkommen und dadurch Rechte vererbt werden.resources 111 or ACLs may additionally, in a preferred embodiment, have relationships with one another, such as inheritance. Such inheritance may mean, for example, that the rights of an access control list include the rights of one or more other access control lists or other means. For example, an image of a directory may inherit rights. It is also conceivable that hierarchies of business objects, such as master data or master data groups or documents or / and other objects in business systems, such. B. Erp systems or data warehouses occur and rights are inherited.
Diese Beziehungen können zum Beispiel über die Angabe des Elternobjektes, zum Beispiel über deren Typ oder/und Identität definiert werden. Zum Beispiel über Klasse und ObjektID der Elternobjekte oder über die Identität der Eltern Entscheidermittel 113. Dies kann zum Beispiel in den Ressourcen 111 selbst oder auch in Entscheidermitteln 113 geschehen. Auch eine Kombination der Möglichkeit könnte in einer Variante der Erfindung 100 unterstützt werden. Aufgrund dessen, dass Entscheidermittel 113 mit Ressourcen 111 verknüpft sind, wird in dieser Offenbarung oftmals nur von der Erbschaft der Ressourcen 111 geschrieben, was jedoch auch immer die Erbschaft von Entscheidermitteln 113 einschließt und umgekehrt.These relationships can be defined, for example, by specifying the parent object, for example its type or / and identity. For example, about the class and objectID of the parent objects or about the identity of the parent decision maker 113 , This can be, for example, in the resources 111 yourself or in decision-making 113 happen. Also, a combination of the possibility could be in a variant of the invention 100 get supported. Because of that decision maker 113 with resources 111 Often, in this disclosure, only the inheritance of resources is linked 111 written, however, whatever the inheritance of decision-making 113 includes and vice versa.
Man beachte hierbei, dass diese Erbschafts- und andere Beziehungen auch zwischen Objektinstanzen bei der Programmierung sein können und nicht nur zwischen Klassen selbst oder Klassen und Objektinstanzen. Vielmehr ist es möglich, das jede Ressource 111 von jeder anderen Ressource 111 Rechte erbt, was die Erfindung 100 sehr flexibel und anpassungsfähig sein lässt.Note that these inheritance and other relationships can also be between object instances in programming, not just between classes themselves or classes and object instances. Rather, it is possible that every resource 111 from every other resource 111 Rights inherit what the invention 100 very flexible and adaptable.
Eine besonders bevorzugte Variante von Zugriffskontrolllisten unterstützt es, Verweigerungen und Erlaubnisse für Benutzer oder Benutzergruppen auf Daten und Funktionen zu definieren. Dabei können beispielsweise durch Verweigerungen Benutzer aus Gruppen ausgeschlossen werden.A particularly preferred variant of access control lists helps to define denials and permissions for users or user groups for data and functions. For example, by denying users from groups can be excluded.
Ferner können solche Zugriffskontrolllisten Regeln oder Programme enthalten, oder auf Regeln oder Programme verweisen, wie deren Auswertung bei zumindest einer Zugriffsentscheidung genutzt wird. Dabei können solche Regeln oder Programme auch weitere Ressourcen 111 mit einbeziehen, die bei der Zugriffsentscheidung beachtet werden sollen. Die Erfindung 100 kann dabei über zusätzlich spezialisierte Mittel verfügen, die es ermöglichen, Aggregate für Regeln oder Programme zu berechnen. Dies kann z. B. dazu genutzt werden, die Auswertungsgeschwindigkeit für Zugriffskontrolllisten zu erhöhen, oder Systemen, die selbst nicht die Möglichkeit unterstützen, Regeln in Kombination mit Zugriffskontrolllisten zu nutzen, das Zusammenspiel mit anderen Systemen 110 oder mit Regeln oder Programmen zu ermöglichen.Furthermore, such access control lists may contain rules or programs, or refer to rules or programs, as their evaluation is used in at least one access decision. In the process, such rules or programs may also contain other resources 111 include in the access decision. The invention 100 may have additional specialized means of calculating aggregates for rules or programs. This can be z. This can be used, for example, to increase the access control list evaluation speed, or for systems that themselves do not support the ability to use rules in combination with access control lists with other systems 110 or with rules or programs.
Zugriffskontrolllisten können des Weiteren auch nur Regeln oder Programme sein, wie eine andere Ressource 111 als Zugriffskontrolliste zu nutzen oder zu transformieren ist.Furthermore, ACLs can only be rules or programs like another resource 111 to use or transform as an access control list.
Dadurch ist es möglich, dass zum Beispiel Freundeslisten in Social Networks zur Auswertung einer Erlaubnis eines Zugriffs genutzt werden können. Im Gegensatz zu heute eingesetzten manuellen Abfragen, die solche Fälle abprüfen, ist es somit möglich, diese Fälle über ein Sicherheitssystem abzuhandeln und somit sozusagen „virtuelle” Zugriffskontrolllisten nutzen. Dies ermöglicht es, die Sicherheitsfunktion für solche Fälle aus dem eigentlichen Quelltext zu entfernen und dadurch übersichtlicheren Quelltext schreiben, bzw. erzeugen zu können. Dadurch sind zusätzlich weitere Probleme, die sich aus der Limitation zuvor ergaben, gelöst. Beispielsweise kann somit von einer „Freundesliste als Zugriffskontrollliste” in anderen Zugriffskontrolllisten problemlos geerbt werden.This makes it possible that, for example, friend lists in social networks can be used to evaluate a permission of an access. In contrast to today used manual queries that check such cases, it is thus possible to handle these cases via a security system and thus use so to speak "virtual" access control lists. This makes it possible to remove the security function for such cases from the actual source code and thus to be able to write or generate clearer source code. As a result, additional problems that resulted from the limitation previously solved in addition. For example, it is thus easy to inherit from a "friends list as an access control list" in other access control lists.
Beispiele für solche Regeln können auch Überprüfungen sein, welche Rechte ein Benutzer bei einem Zugriff verändern darf. Oder es können komplexe Überprüfungen vorgenommen werden, welche verschiedenen Rechte ein Benutzer besitzen muss. Auch können solche Regeln oder Programme dazu dienen, weitere Informationen wie die reinen Zugriffskontrolllisten bei der Zugriffsprüfung zu beachten.Examples of such rules may also include checks on what rights a user may change during an access. Or complex checks can be made as to what different rights a user must possess. Also, such rules or programs may be used to comply with other information such as the pure access control lists in the access check.
Oftmals besitzen Zugriffskontrolllisten auch verschiedene Formate. Beispielsweise werden in einer Zugriffskontrollliste die Rechte für einen Klienten 130 aufgrund einer Bitmaske definiert. An anderer Stelle werden nur reine Listen definiert. Oder, anstatt den Klienten 130 oder die Gruppe direkt in der Zugriffskontrollliste zu definieren, wird eine Stellvertreteridentifikation hinterlegt. Andere erlauben es LDAP oder OpenID Verweise zu hinterlegen. Aus diesem Grund kann die Erfindung 100 für solche oder ähnliche Fälle über hierfür spezialisierte Mittel verfügen, um mit den verschiedensten Zugriffskontrolllisten arbeiten zu können. Dabei können auch weitere Apparate oder Verfahren eingesetzt werden, die dann Teil der Erfindung 100 sind. Beispielsweise um auf OpenID Provider zugreifen oder auch um die Zugriffskontrolllisten aus den verschiedenen Formaten zusammen aggregieren und in andere Formate transformieren zu können.Often access control lists also have different formats. For example, in an access control list, the rights for a client become 130 defined on the basis of a bit mask. Elsewhere, only pure lists are defined. Or, instead of the client 130 or define the group directly in the access control list, a proxy identification is stored. Others allow LDAP or OpenID references to be deposited. For this reason, the invention 100 for such or similar cases have specialized means to work with the most diverse access control lists. In this case, other apparatus or methods can be used, which then forms part of the invention 100 are. For example, to access OpenID Provider or aggregate the access control lists from the various formats and transform them into other formats.
Besonders bevorzugt bietet die Erfindung 100 auch Mittel, denen es möglich ist, die Zugriffskontrolllisten einfach zu verwalten, zum Beispiel durch zumindest ein Modell einer Zugriffskontrollliste 500, um die heterogenen Zugriffskontrolllisten aus verschiedenen Systemen 110 einheitlich bearbeiten zu können. Wobei mit verwalten hierbei beispielsweise eine Schnittstelle zur einfachen Bearbeitung oder den einheitlichen Zugriff oder ähnliches gemeint ist. Als Beispiel kann hierbei 1c herangezogen werden. Dabei könnten in den verschiedenen Systemen 110 verschiedene Arten von Zugriffskontrolllisten zu finden sein, auf diese homogenisiert durch die Erfindung 100 zugegriffen wird.Particularly preferred is the invention 100 also means that it is possible to easily manage the access control lists, for example by at least one model of an access control list 500 to the heterogeneous access control lists from different systems 110 to edit uniformly. By managing this, for example, an interface for easy editing or the unified access or the like is meant. As an example, here 1c be used. It could be in the different systems 110 different types of access control lists can be found, homogenized by the invention 100 is accessed.
Eine Ausführung des Modells 500 oder auch von Zugriffskontrolllisten, die zusammen mit der Erfindung 100 eingesetzt werden können verfügt dabei auch über Rechte, die als nicht vererbbar markiert werden können. Bevorzugt ist des Weiteren auch eine Zugriffskontrollliste des Modells 500 danach aufgebaut, dass zu einer Gruppe oder einem Klienten 130 Rechte oder Rollen erlaubt und verweigert werden.An execution of the model 500 or also from access control lists, which together with the invention 100 can be used also has rights that can be marked as not inheritable. Furthermore, an access control list of the model is also preferred 500 then built that to a group or a client 130 Rights or roles are allowed and denied.
Eine besonders bevorzugte weitere Fähigkeit ist es, nicht nur Rechte in Zugriffskontrolllisten spezifizieren zu können, sondern darin auch Rollen definieren zu können. Dadurch lassen sich Rollen ressourcenspezifisch oder auch in einer Ressourcenhierarchie definieren. Somit wird „Role based Access Control” auch auf Objektebene und nicht nur auf Klassenebene bei der Programmierung möglich, wie zum Beispiel bei Spring Security.A particularly preferred further ability is not only to be able to specify rights in access control lists, but also to be able to define roles in them. This allows roles to be defined resource-specific or in a resource hierarchy. Thus, role-based access control is also possible at the object level and not just at the class level in programming, such as Spring Security.
Ferner könnten auch Hierarchien von Rechten oder Rollen in Zugriffskontrolllisten definiert werden. Diese können dann bei Zugriffsentscheidungen oder der Aggregation genutzt werden. Der große Vorteil ist dabei, dass somit die Komplexität bei der Vergabe von Rechten abnimmt.Furthermore, hierarchies of rights or roles in access control lists could also be defined. These can then be used for access decisions or aggregation. The big advantage here is that it reduces the complexity of assigning rights.
Bevorzugt verfügt die Erfindung 100 auch über die Fähigkeit, dass Informationen in einem oder mehreren Ausführungen der Erfindung 100 gespeichert werden können. Beispielsweise, wenn sich Informationen, zum Beispiel Erbinformationen, nicht in Sicherheitssystemen 110 speichern lassen. Zum Beispiel die Information, welche Ressource 111 von welchen Ressourcen 111 erbt. Aber es sind auch andere Fähigkeiten denkbar, über die z. B. das Modell 500 einer Zugriffskontrollliste verfügen kann. Solche Informationen können dann in der Erfindung 100 selbst gespeichert werden, oder diese verfügt zum Beispiel über Mittel die benötigten Informationen über Umwege im betreffenden System zu speichern. Beispielsweise könnte ein Aggregat berechnet werden, und die Zusatzinformationen könnten in den Kommentaren einer Zugriffskontrollliste gespeichert werden.Preferably, the invention features 100 also about the ability to receive information in one or more embodiments of the invention 100 can be stored. For example, if information, for example, genetic information, does not exist in security systems 110 save. For example the information, which resource 111 from which resources 111 inherits. But there are also other skills conceivable, on the z. For example, the model 500 an access control list. Such information may then be in the invention 100 itself, or it has, for example, means to store the required information about detours in the relevant system. For example, an aggregate could be calculated, and the additional information could be stored in the comments of an access control list.
1b zeigt die Erfindung 100 in einem größeren Umfeld. Hierbei ist zu sehen, dass die Erfindung 100 selbst ein Sicherheitssystem 110 beinhalten oder mit diesem direkt verbunden sein kann. Des Weiteren ist zu sehen, dass sie auch mit einer weiteren Instanz oder Variante der Erfindung 100 direkt verbunden sein kann. Beispielsweise kann durch diese Möglichkeiten eine höhere Skalierbarkeit ermöglicht werden. 1b shows the invention 100 in a larger environment. It can be seen that the invention 100 even a security system 110 include or be directly connected to it. Furthermore, it can be seen that they also have a further instance or variant of the invention 100 directly can be connected. For example, a higher scalability can be made possible by these possibilities.
Im Weiteren ist zu sehen, dass die Erfindung 100 mit weiteren Systemen 110 und Instanzen oder Varianten der Erfindung 100 über zumindest ein Computernetzwerk 50, wie zum Beispiel das Internet, verbunden sein kann. Dabei kann eine solche Verbindung eine statuslose oder auch statusbehaftete Verbindung sein.Furthermore, it can be seen that the invention 100 with other systems 110 and instances or variants of the invention 100 via at least one computer network 50 , such as the Internet, can be connected. In this case, such a connection can be a stateless or stateful connection.
Auch zeigt 1b, dass sämtliche Kommunikation der Erfindung 100 über zumindest ein Computernetzwerk 50 stattfinden kann. Es ist dabei aber auch möglich, dass eine Vielzahl vom Computernetzwerken 50 benutzt wird. Beispielsweise kann ein Klient 130 oder andere Teile auch über ein Drahtlosnetzwerk, wie Wlan oder Mobilfunknetzte mit der Erfindung 100 kommunizieren.Also shows 1b in that all communications of the invention 100 via at least one computer network 50 can take place. But it is also possible that a variety of computer networks 50 is used. For example, a client 130 or other parts also via a wireless network, such as wireless or Mobilfunknetzt with the invention 100 communicate.
Durch die Verteilung über ein Computernetzwerk 50 ist es auch möglich, dass die Erfindung 100 selbst oder Teile von ihr über ein Computernetzwerk 50 verbunden und verteilt sind. Beispielsweise müssen Aggregation und Integrationseinheiten nicht zwangsläufig in einem System realisiert werden.Through the distribution over a computer network 50 It is also possible that the invention 100 herself or parts of her over a computer network 50 connected and distributed. For example, aggregation and integration units do not necessarily have to be implemented in one system.
Die verschiedenen Systeme 110 in 1b zeigen weiterhin, dass eine Vielzahl von verschiedenen Verfahren und Systemen 110 mit einer Vielzahl von Instanzen der Erfindung 100 oder einer Vielzahl derer Komponenten zusammenspielen kann. Dies ermöglicht eine besonders gute Verteilbarkeit der Erfindung, z. B. in großen Clusterumgebungen.The different systems 110 in 1b continue to show that a variety of different methods and systems 110 with a variety of instances of the invention 100 or a variety of components can play together. This allows a particularly good dispersibility of the invention, for. In large cluster environments.
Der Klient, der auch an das Computernetzwerk 50 angeschlossen ist, zeigt dabei, dass dieser direkt über das Netzwerk auf die Systeme 110, wie auch auf die Erfindung 100 zugreifen kann. Dabei ist dieser Klient aber als Stellvertreter für eine Vielzahl von Klienten 130 zu sehen.The client who is also connected to the computer network 50 connected, showing that this directly through the network to the systems 110 as well as to the invention 100 can access. However, this client is a substitute for a large number of clients 130 to see.
Man beachte, dass die Erfindung 100 nicht zwangsläufig in einem Computernetzwerk 50 eingesetzt werden muss. Vielmehr kann diese auch in einer Vielzahl von Computernetzwerken eingesetzt werden. Beispielsweise auch in Peer-to-Peer-Netzwerken. Oder es ist möglich, dass der Klient über ein Mobilfunknetz mit dem Internet verbunden ist.Note that the invention 100 not necessarily in a computer network 50 must be used. Rather, it can also be used in a variety of computer networks. For example, in peer-to-peer networks. Or it is possible that the client is connected to the Internet via a mobile network.
1c zeigt dabei, wie die Erfindung 100 als Vermittler zur Kommunikation mit einer Vielzahl von Systemen 110 eingesetzt werden kann. Dies hat den Vorteil, dass durch die Erfindung 100 homogenisiert auf die verschiedenen Systeme 110 zugegriffen werden kann. Dabei ist es auch möglich, dass auf eine Instanz der Erfindung 100 zugegriffen wird, und diese mit weiteren Instanzen kommuniziert, um es z. B. Klienten 130 zu ermöglichen, Einstellungen zentral vornehmen zu können, und diese dann verteilt werden. Dabei kann der Klient 130 auch durch die einzelnen Bestandteile der Erfindung 100 auf verschiedene Systeme 110 zugreifen oder diese können bei einem Zugriff genutzt werden. Beispielsweise können Entscheidermittel 113 durch die Erfindung, z. B. auch unter Zuhilfenahme eines Modells 500 oder/und Integratoren angesprochen und manipuliert werden. 1c shows how the invention 100 as an intermediary to communicate with a variety of systems 110 can be used. This has the advantage that by the invention 100 homogenized to the different systems 110 can be accessed. It is also possible that an instance of the invention 100 is accessed, and communicates with other instances to z. B. clients 130 to allow settings to be made centrally and then distributed. In doing so, the client can 130 also by the individual components of the invention 100 on different systems 110 access or these can be used in an access. For example, decision makers 113 by the invention, for. B. also with the help of a model 500 and / or integrators are addressed and manipulated.
Auch ist es möglich, dass durch das Ansprechen der einzelnen Systeme 110 in der oder den Erfindungen, Erbschaftsinformationen hinterlegt werden. Beispielsweise kann durch einen Zugriff spezifiziert werden, welche Ressourcen 111 Rechte von welchen Ressourcen 111 erben. Dabei ist es auch möglich, dass die Erbschaftsstruktur, über Zugriffe auf eine oder mehrere Erfindungen oder Systeme 110 geändert wird.Also, it is possible that by addressing the individual systems 110 in the invention or inventions, inheritance information is deposited. For example, an access can specify which resources 111 Rights of which resources 111 inherit. It is also possible that the inheritance structure, through access to one or more inventions or systems 110 will be changed.
Man beachte dabei, das ein Klient 130 in 1c nicht zwingend ein Benutzer sein muss. Vielmehr kann ein solcher Klient 130, wie beschrieben, auch ein System oder eine Erfindung 100 sein, wie dies durch die verschiedenen Bezeichner 100/110/130 angedeutet ist. 1d stellt dies noch einmal deutlicher dar. Dabei wird das Ganze zweistufig dargestellt. Ein Klient 100/110/130 kommuniziert dabei mit einem System oder einer Erfindung 100/110, das oder die wiederum mit einer Erfindung 100 kommunizieren kann. Dabei kann durch eine solche Kommunikation oder eine direkte Kommunikation mit einem Klienten 130 z. B. eine Aktion 150, wie zum Beispiel ein Verfahren ausgelöst werden.Note that this is a client 130 in 1c does not necessarily have to be a user. Rather, such a client 130 as described also a system or invention 100 be like this by the different identifiers 100 / 110 / 130 is indicated. 1d illustrates this even more clearly. The whole thing is shown in two stages. A client 100 / 110 / 130 communicates with a system or an invention 100 / 110 that or in turn with an invention 100 can communicate. It can be through such communication or direct communication with a client 130 z. For example, an action 150 how a procedure is triggered, for example.
Beispielsweise kann eine solche Aktion 150 ein Verfahren der Aggregatbildung sein. Für das Auslösen von Aktionen 150 können dabei hierfür besonders spezialisierte Mittel eingesetzt werden. Beispielsweise könnten regelmäßig Entscheidermittel 113 auf Aktualisierungen überprüft werden und dadurch die entsprechende Aggregatbildung ausgelöst werden. Dies könnte zum Beispiel in einem oder mehreren Integratoren oder in hierfür speziell ausgebildeten Mittel geschehen. Es könnte auch möglich sein, dass ein Klient 130, einer Erfindung 100 oder dem System einer Erfindung 100 mitteilt, dass Entscheidermittel 113 aktualisiert werden. Beispielsweise über spezielle dafür ausgebildete Mittel für diesen Fall, wie eine Erweiterung der mit der Erfindung 100 zusammen eingesetzten Systeme.For example, such an action 150 a process of aggregate formation. For triggering actions 150 For this purpose, particularly specialized means can be used. For example, decision makers could be regular 113 Check for updates and trigger the appropriate aggregate build. This could be done, for example, in one or more integrators or in specially designed means. It could also be possible for a client 130 , an invention 100 or the system of an invention 100 notifies that decision maker 113 to be updated. For example, by means specially designed for this case, such as an extension of the invention 100 together used systems.
Durch diese Fähigkeiten können somit zusammenfassend gesagt, z. B. mehrere Erfindungen hintereinander geschaltet werden. Des Weiteren wurde erläutert wie passiv, wie z. B. durch Mitteilungen und aktiv, z. B. durch regelmäßiges Prüfen von Entscheidermitteln 113, Aktualisierungen von Entscheidermitteln 113 erkannt werden können, und dies zu Aktionen 150, wie z. B. Aggregatbildungen führen kann.By these abilities can thus be said in summary, z. B. several inventions are connected in series. Furthermore, it was explained how passive, such. B. by messages and active, z. B. by regular testing of decision makers 113 , Updates of decision-making 113 can be recognized, and this to actions 150 , such as B. Aggregate formations can lead.
Somit kann die Erfindung 100 über Mittel verfügen, dass Aktualisierungen von Entscheidermitteln 113 erkannt werden. Dies kann dazu genutzt werden, dass beispielsweise ein Prozess zur Aggregatbildung, für Objekte die Rechte erben, automatisiert durchgeführt wird. Thus, the invention 100 Have funds that have updates from decision makers 113 be recognized. This can be used to automate, for example, a process for aggregate formation, for objects that inherit rights.
1e zeigt einen weiteren Systemaufbau mit Klienten 130 und Erfindungen 100 und Systemen 110. Dabei können Klienten 130 wie zuvor auch Systeme 110 oder auch Erfindungen 100 sein. Der Klient 130 kann dabei direkt auf eine Ressource 111 zugreifen, die in einer Erfindung 100 oder einem herkömmlichen Sicherheitssystem zu finden ist 110/100. Beim Zugriff werden dabei Mittel zur Zugriffsentscheidung ausgewertet und zumindest eine Zugriffsentscheidung zu fällen. Der Klient kann dabei auch über die Erfindung 100 auf die Ressource 111 zugreifen. Eine weitere Möglichkeit ist, dass der Klient Mittel zum Zugriff auf die Ressource 111 der Erfindung 100 übermittelt bekommt, durch die er Zugriff auf die Ressource 111 erlangen kann. Beispielsweise können diese Mittel zum authentifizieren sein, durch die er sich beim System 100/110, das die Ressource 111 verwaltet, authentifizieren kann, oder durch die er Zugriff erlangen kann. 1e shows another system structure with clients 130 and inventions 100 and systems 110 , At the same time, clients can 130 as before, systems 110 or inventions 100 be. The client 130 can do this directly on a resource 111 access that in an invention 100 or a conventional security system 110 / 100 , When accessing means for access decision are evaluated and to make at least one access decision. The client can also talk about the invention 100 to the resource 111 access. Another possibility is that the client has resources to access the resource 111 the invention 100 gets transmitted through which he has access to the resource 111 can obtain. For example, these means may be to authenticate by which he is at the system 100 / 110 that the resource 111 managed, authenticated, or through which he can gain access.
Die Erfindung 100 kann des Weiteren über kryptographische Mittel verfügen. Diese können beispielsweise in solchen Szenarien eingesetzt werden. Dabei kann dem Klienten 130 beispielsweise ein Geheimnis übermittelt werden, durch das er Zugriff erlangen kann.The invention 100 may also have cryptographic means. These can be used, for example, in such scenarios. In doing so, the client can 130 For example, a secret can be transmitted through which he can gain access.
Auch ist es möglich, dass sich der Klient 130 bei einer oder mehreren Erfindungen authentifiziert oder autorisiert, und diese dann den einzelnen Systemen 110 oder Erfindungen mitteilen, welcher Klient auf welche Ressource 111 Zugriff hat.It is also possible that the client 130 authenticated or authorized in one or more inventions, and these then the individual systems 110 or inventions telling which client to which resource 111 Has access.
Bei solchen Szenarien können des weiteren Zeitfenster gesetzt werden, wie lange ein Klient Zugriff auf eine Ressource 111 hat. Beispielsweise, indem Geheimnisse eine Gültigkeitsdauer erhalten und diese beispielsweise den einzelnen Systemen 110 oder Erfindungen mitgeteilt wird.In such scenarios, further time windows can be set, how long a client can access a resource 111 Has. For example, by secrets get a period of validity and this, for example, the individual systems 110 or inventions is communicated.
Somit ist es möglich, dass auf Ressourcen 111 nicht über ein zentrales Sicherheitssystem zugegriffen werden muss, sondern direkt auf Ressourcen 111 in weiteren Systemen 110 durch verschiedenste Mittel zugegriffen werden kann.Thus, it is possible that on resources 111 does not need to be accessed through a central security system, but directly to resources 111 in other systems 110 can be accessed by a variety of means.
Diese Fähigkeiten ermöglichen es zum Beispiel, dass Dateiuploads nicht über einen Dateistream über einen Server/System 110 zur Sicherheitskontrolle gesendet werden müssen. Vielmehr ist es somit möglich, dass Klienten 130 direkt Zugriff auf Ressourcen 111 erlangen und somit direkt Ressourcen 111 vom Klienten 130 in ein System übertragen werden können.These capabilities allow, for example, file uploads not via a file stream through a server / system 110 to be sent to security control. Rather, it is thus possible for clients 130 direct access to resources 111 gain and thus directly resources 111 from the client 130 can be transferred to a system.
Diese Fähigkeit ermöglicht es, die Erfindung 100 besonders komfortabel mit Cloud Computing Diensten, wie zum Beispiel den Amazon Webservices, der Google App Engine oder Ähnlichen und zugehörigen weiteren Diensten einzusetzen. Beispielsweise können somit durch die Mittel, Geheimnisse für Klienten 130 zeitbegrenzt für den Zugriff zu berechnen, für sie direkte Uploads angeboten werden. Desweiteren können alle weiteren Fähigkeiten der Erfindung 100 in einem solchen Cloud oder Grid Computing Umfeld genutzt werden. Dadurch können somit die Sicherheitsmechanismen, die dort schon existieren, verwendet und durch die Erfindung 100 ergänzt werden. Beispielsweise können somit Zugriffskontrolllisten durch Vererbung ergänzt werden.This ability enables the invention 100 particularly convenient to use with cloud computing services, such as the Amazon Web Services, the Google App Engine or similar and related services. Thus, for example, the means can provide secrets to clients 130 time-limited for access to calculate, for them direct uploads are offered. Furthermore, all other capabilities of the invention 100 be used in such a cloud or grid computing environment. Thus, the security mechanisms that already exist there can thus be used and by the invention 100 be supplemented. For example, access control lists can thus be supplemented by inheritance.
Besonders vorteilhaft ist auch die Fähigkeit der Erfindung, mit Identitätsprovidern 140, zum Beispiel Ldap-Authentifizierung (beschrieben in: http://www.microsoft.com/germany/technet/itsolutions/network/grundlagen/tec_comp_2_2_3.mspx ) oder ähnlichen Apparaten, Techniken, Verfahren, Protokollen oder einer Kombination derer, zusammenarbeiten zu können, wie beispielsweise OpenID ( http://openid.net/ ), Kerberos ( http://de.wikipedia.org/wiki/Kerberos_(Informatik) , http://www.hznet.de/security/kerbeinf.pdf ) oder andere Authentifizierungsmittel. Identitätsprovider sind somit Mittel, die zumindest einen Benutzer authentifizieren können. Insbesondere in großen verteilten Szenarien ist diese Fähigkeit vorteilhaft. 1f zeigt hierzu exemplarisch ein solches Szenario. Dabei ist zu sehen, wie ein Klient 130 mit dem Identitätsprovider 140 kommuniziert, beispielsweise zur Authentifizierung, wobei diese auch über die Erfindung 100 oder in Kombination mit dieser und dem System 100/110 mit der Ressource 111 geschehen kann. Diese und ähnliche Vorgänge sind dabei aus dem Stand der Technik bekannt. Wesentlich für dieses Szenario ist dabei, dass die Erfindung 100 und das System 100/110 mit der Ressource 111, einen Identitätsprovider 140 nutzen kann.Also particularly advantageous is the ability of the invention with identity providers 140 , for example Ldap authentication (described in: http://www.microsoft.com/germany/technet/itsolutions/network/grundlagen/tec_comp_2_2_3.mspx ) or similar devices, techniques, procedures, protocols, or a combination of them, such as OpenID ( http://openid.net/ ), Kerberos ( http://de.wikipedia.org/wiki/Kerberos_(Informatik) . http://www.hznet.de/security/kerbeinf.pdf ) or other authentication means. Identity providers are thus means that can authenticate at least one user. Especially in large distributed scenarios, this capability is beneficial. 1f shows an example of such a scenario. It shows how a client 130 with the identity provider 140 communicates, for example, for authentication, this also about the invention 100 or in combination with this and the system 100 / 110 with the resource 111 can happen. These and similar processes are known from the prior art. Essential for this scenario is that the invention 100 and the system 100 / 110 with the resource 111 , an identity provider 140 can use.
Man beachte zudem, dass ein Identitätsprovider selbst wiederum ein System 110 sein kann.Also note that an identity provider is itself a system 110 can be.
Beispielsweise kann die Erfindung 100 Aggregate für das System 100/110 berechnen, in denen Verweise auf einen Identitätsprovider 140 gesetzt werden. Dies ermöglicht es zum Beispiel, dass der Klient 130 sich direkt durch den Identitätsprovider 140 authentifizieren kann, und die Erfindung 100 selbst bei dem konkreten Zugriff nicht gebraucht wird.For example, the invention 100 Aggregates for the system 100 / 110 calculate references to an identity provider 140 be set. This allows, for example, that the client 130 directly through the identity provider 140 can authenticate, and the invention 100 even with the concrete access is not needed.
Eine weitere Fähigkeit über die die Erfindung 100 in einer Ausführung verfügen kann ist zudem das Integrieren von verschiedenen Identitätsprovidern 140 oder ähnlichen Authentifizierungsmitteln. Dabei kann diese über die Fähigkeit verfügen, Klienten 130 eines Identitätsproviders 140 Klienten 130 in einem anderen Identitätsprovider 140 zuzuordnen. Solche Zuordnungen können zum Beispiel durch Regeln oder einfache oder komplexe Mappings, die z. B. in einer Speichereinheit, auf die die Erfindung 100 zugreifen kann oder die in diese integriert ist, definiert werden. Dadurch können beispielsweise bei der Aggregatbildung nicht nur systemübergreifend Aggregate und Vererbungen ermöglicht werden, sondern es können dabei weitere Rahmenfaktoren beachtet werden und dass verschiedene Systeme 110 auch oftmals Klienten 130 verschieden bezeichnen können. Somit können letztendlich auch Ressourcen 111 in Systemen 110 mit verschiedenen Systemen 110 durch die Erfindung 100 Beziehungen wie z. B. Erbschaft haben.Another skill about the invention 100 In one embodiment, integrating with different identity providers is also possible 140 or similar authentication means. It may have the ability to do so, clients 130 an identity provider 140 clients 130 in another identity provider 140 assigned. Such assignments can be made, for example, by rules or simple or complex mappings, e.g. B. in a memory unit to which the invention 100 can be defined or integrated into it. In this way, for example, not only can aggregates and inheritances be made possible across aggregates in aggregate formation, but other framework factors can be taken into account and different systems can be considered 110 also often clients 130 can designate differently. Thus, resources can ultimately 111 in systems 110 with different systems 110 by the invention 100 Relationships such as B. inheritance.
Diese Fähigkeiten, durch die Erfindung 100 eine höhere Skalierbarkeit erreichen zu können, kann besonders bevorzugt im Bezug auf moderne Internetplattformen wie z. B. Social Networks eingesetzt werden. Beispielsweise hat http://www.studivz.net/ das http://www.wer-kennt-wen.de/ und http://www.facebook.com/ das Problem, sofern die Adresse eines Bildes im Netzwerk bekannt ist, dass jeder durch die direkte URL das Bild abrufen kann und keine Sicherheitsfunktionen mehr das Bild schützen, da nur der Zugriff durch die Plattform die Sicherheitsüberprüfung durchführt und nicht die Bild-ausliefernde Komponente. Dies wird von vielen Benutzern als Sicherheitslücke gesehen. Durch die Erfindung 100 wäre ein solches Problem lösbar. Dabei könnten direkt Entscheidermittel 113 zum Bild hinzu gespeichert werden. Zum Beispiel als Zugriffskontrolliste für den Webserver der das Bilder ausliefert.These skills, through the invention 100 To achieve a higher scalability, can be particularly preferred in relation to modern Internet platforms such. B. Social networks are used. For example http://www.studivz.net/ the http://www.wer-kennt-wen.de/ and http://www.facebook.com/ the problem, if the address of an image in the network is known, that anyone can retrieve the image through the direct URL and no security features protect the image, since only access by the platform performs the security check and not the image delivery component. This is seen by many users as a security hole. By the invention 100 such a problem would be solvable. It could directly decision makers 113 to be saved to the image. For example, as an access control list for the web server that delivers the images.
Beispielhaft ist dies in 1g aufgezeigt. Dabei wurde ein allgemeines System 110 durch ein Social Network 160 dargestellt, um das Szenario besser zu visualisieren. Dabei wurde bewusst ein zweites System 110 hinzugefügt, das zumindest z. B. den Bildserver 110 des Social Networks darstellt und somit symbolisieren soll, dass auf diesen auch ohne das Social Network 160 zugegriffen werden kann. Die Erfindung 100 erzeugt dabei aus den Daten im Social Network 160 Entscheidermittel 113 und speichert diese in dem Bilderserver 110. Dies kann beispielsweise dadurch passieren, dass auf Datenbanken oder ähnliches des Social Networks 160 zugegriffen wird und daraus Zugriffskontrolllisten erstellt werden. Dabei können in diesen auch Benutzer/Klienten 130 spezifiziert werden, die auf verschiedene Bilder Zugriff haben. Dabei könnten zum Beispiel Verweise von Bildern zu den Benutzerdaten/Klienteninformationen/Benutzeridentitäten hinterlegt werden.This is exemplified in 1g demonstrated. It became a general system 110 through a social network 160 presented to better visualize the scenario. It was deliberately a second system 110 added that at least z. The image server 110 represents the social network and thus symbolize that on this even without the social network 160 can be accessed. The invention 100 generates from the data in the social network 160 decision means 113 and store them in the image server 110 , This can happen, for example, by databases or the like of the social network 160 is accessed and used to create access control lists. In this case, users / clients can also be involved 130 be specified, which have access to different images. In this case, for example, references of images to the user data / client information / user identities could be deposited.
Der Klient 130 kann nun auf das Social Network 160 und den Bilderserver 110 zugreifen. Dabei kann dann der Bilderserver 110 die Zugriffskontrolle des Zugriffsentscheiders unter Nutzung der Entscheidermittel 113, die durch die Erfindung 100 erzeugt oder aktualisiert wurden, durchführen. Dabei können zuvor oder im Weiteren in diesem Dokument spezifizierte Mittel genutzt werden. Beispielsweise könnte der Klient 130 vom Social Network 160 ein Geheimnis erhalten. Oder der Klient 130 könnte sich gegenüber dem Social Network 160 authentifizieren, womit dieses die Rolle eines Identitätsproviders 140 einnimmt. Auch ist es denkbar, andere Identitätsprovider 140 zu nutzen. Zum Beispiel könnten ähnliche Verfahren oder Apparate, wie ein Apache Websever eingesetzt werden, für den Module verfügbar sind, um gegen verschiedenste Quellen Authentifizierungen durchzuführen oder auch auf verschiedenste Quellen zu verweisen.The client 130 can now access the social network 160 and the image server 110 access. It can then be the image server 110 the access control of the access decision using the decision-making means 113 that through the invention 100 created or updated. In this case, means previously or subsequently specified in this document can be used. For example, the client might 130 from the social network 160 to get a secret. Or the client 130 could face the social network 160 authenticate what this role is for an identity provider 140 occupies. It is also conceivable, other identity providers 140 to use. For example, similar methods or devices could be used, such as an Apache Web server, for which modules are available to authenticate against a variety of sources or to refer to a variety of sources.
Generell sind hierbei durch die Aggregate viele Möglichkeiten denkbar, wie dieser direkte Zugriff durchgeführt werden könnte. Im Wesentlichen besitzt die Idee, und ein somit zugehöriges Verfahren oder Apparate durch die Erfindung 100 zu nutzen und Bilder oder ähnliches von modernen Web Plattformen, insbesondere Social Networks 160 abzusichern, die folgenden Schritte. Diese oder Teile derer können natürlich mit allen weiteren Merkmalen der Erfindung kombiniert werden.
- a. Zugriff auf die Daten zumindest einer Webplattform 160 und bestimmen der Daten, die für zumindest eine Zugriffsentscheidung auf zumindest eine Ressource 111 innerhalb der Webplattform 160 genutzt werden;
- b. berechnen und Speichern von Mitteln 113, die zu zumindest einer Zugriffsentscheidung genutzt werden, wobei diese Zugriffsentscheidung unter der Nutzung von Mitteln 114 des ressourcenausliefernden Systems 110 stattfindet.
In general, many possibilities are conceivable here through the aggregates, how this direct access could be carried out. In essence, the idea, and associated method or apparatus, is possessed by the invention 100 to use and images or similar of modern web platforms, especially social networks 160 to hedge the following steps. Of course, these or parts thereof may be combined with all other features of the invention. - a. Access to the data of at least one web platform 160 and determining the data for at least one access decision to at least one resource 111 within the web platform 160 be used;
- b. calculate and save funds 113 which are used for at least one access decision, this access decision using resources 114 of the resource delivery system 110 takes place.
Somit stellt diese Ausführung der Erfindung 100 eine Möglichkeit dar die Systeme, die Ressourcen 111 wie Bilder oder ähnliches ausliefern, zusätzlich zu der Zugriffsentscheidungen zu Nutzen. Dies ermöglicht es somit, diese Ressourcen 111 besser abzusichern und stellt dabei besser dar, wobei die Erfindung 100 in einem Anwendungsfall eingesetzt werden kann.Thus, this embodiment of the invention 100 one possibility is the systems, the resources 111 like images or the like, in addition to the access decisions to use. This thus allows these resources 111 better secure and is doing better, the invention 100 can be used in an application.
Die Erfindung 100 kann zudem über die Eigenschaft verfügen, dass ihr zur Laufzeit neue Funktionnen hinzugefügt werden. Beispielsweise durch das Nachladen von Quelltext oder kompilierten Programmen. Dies ermöglicht es, die Erfindung 100 besonders flexibel anzupassen.The invention 100 can also have the property of being added to new functions at run time. For example, by reloading source code or compiled programs. This allows the invention 100 particularly flexible to adapt.
In 2a ist ein Beispiel für die Erbschaft von Entscheidermitteln 113 oder auch von Ressourcen 111 aufgezeigt. Dabei kennzeichnen die Vierecke die einzelnen verschiedenen Systeme 110, benannt mit 200, 210 und 220, in denen die Ressource 111 oder auch die Entscheidermittel 113 vorkommen können. Die Kreise zeigen Anordnungen der Erbschaft zwischen Mitteln, die zur Zugriffsentscheidung genutzt werden, die zum Beispiel dadurch zu Stande kommen, dass auf eine Ressource 111 eine oder mehrere ElternRessourcen 111 verweisen oder es in den Entscheidermitteln 113 selbst definiert ist, wovon geerbt wird. Es ist dabei zu sehen, dass 211 von 201 erbt und 212 und 222 von 211. Dabei ist die Erbschaft zwischen 211 und 201 systemübergreifend zwischen 210 und 200 und die Erbschaft zwischen 222 und 211 zwischen den Systemen 110 220 und 210. Ähnlich ist der Sachverhalt zwischen 202 und 221, 223 und 224.In 2a is an example of the legacy of decision-making 113 or even resources 111 demonstrated. The squares characterize the different systems 110 , named with 200 . 210 and 220 in which the resource 111 or the decision-making agents 113 can happen. The circles show orders of inheritance between means used for access decisions, for example, that come about by being on a resource 111 one or more parent resources 111 refer or it in the decision-making 113 is self defined, what is inherited from. It is possible to see that 211 from 201 inherits and 212 and 222 from 211 , Here is the inheritance between 211 and 201 between systems 210 and 200 and the inheritance between 222 and 211 between the systems 110 220 and 210 , The situation is similar between 202 and 221 . 223 and 224 ,
2b zeigt dabei ein weiteres Beispiel für eine Erbschaft. Hierbei wird von mehreren Elternobjekten geerbt. Dabei kann eine Mehrfachvererbung beliebig viele Vorfahren besitzen, von denen Rechte ererbt werden. Dieses Beispiel der Mehrfachverberung wird in 2c in einem größeren Rahmen dargestellt. Dabei wird gezeigt, dass Mehrfachvererbung dabei auch über verschiedene Systeme 110 230, 240 und 250 hinweg geschehen kann. Dabei sind wie zuvor die Pfeilspitzen als Eltern-Kind-Zuordnung zu sehen. 2 B shows another example of an inheritance. This is inherited from multiple parent objects. Multiple inheritance can have any number of ancestors from whom rights are inherited. This example of multiple concealment is discussed in 2c presented in a larger frame. It is shown that multiple inheritance also involves different systems 110 230 . 240 and 250 can happen across. As before, the arrowheads are to be seen as a parent-child assignment.
Eine Variante der Erfindung 100 kann des Weiteren über Fähigkeiten verfügen, die es ermöglichen, Elemente im Erbschaftsbaum anders anzuordnen und die Vererbungsstruktur zu verändern oder auch die Vererbung für einzelne Elemente an als auch abzuschalten. An als auch abzuschalten bedeutet dabei, dass zum einen Elemente, die einen oder mehrere Vorfahren besitzen, zukünftig keine oder weniger Vorfahren besitzen und somit keine oder weniger Rechte erben oder zum anderen umgekehrt Elemente, die keine Vorfahren besitzen, einen oder mehrere Vorfahren zugeteilt bekommen. Ebenso können Elemente neue Vorfahren oder weitere Vorfahren zugeteilt bekommen. Für solche Fälle kann die Erfindung 100 zudem über weitere, besonders hierfür spezialisierte, Mittel verfügen, die zum Beispiel neue Aggregatvorgänge auslösen, die die neue Erbschaftsstruktur und die zugehörigen Mittel zur Zugriffsentscheidung 112 beachten.A variant of the invention 100 may also have capabilities that allow elements in the inheritance tree to be rearranged and the inheritance structure changed or inheritance turned off for individual elements as well. Turning on and off means that, on the one hand, elements that have one or more ancestors will have no or fewer ancestors in the future and thus inherit no or fewer rights or, conversely, elements that have no ancestors, will be assigned one or more ancestors. Likewise, elements can be assigned to new ancestors or ancestors. For such cases, the invention 100 They also have other resources, specialized for this purpose, which, for example, trigger new aggregate operations, including the new inheritance structure and the associated means of access 112 note.
Besonders bevorzugt kann die Erfindung 100 auch über einen Zykluschecker bei der Vererbung verfügen. Ein solcher kann beispielsweise Zyklen in Vererbungshierarchien aufdecken. Dieser kann bei Einfach- als auch bei Mehrfachvererbung eingesetzt werden. Ein Beispiel für einen Zyklus ist in 2c zu sehen. Dabei erbt 242 von 241 und 231 von 242. Nun könnte die Verbindung 260 durch die 241 hinzugefügt werden durch die 241 von 231 erben würde. Solche und ähnliche Fälle können von einem Zykluschecker erkannt werden.Particularly preferred, the invention 100 also have a cycle checker during inheritance. For example, such can reveal cycles in inheritance hierarchies. This can be used for single as well as for multiple inheritance. An example of a cycle is in 2c to see. It inherits 242 from 241 and 231 from 242 , Well the connection could be 260 through the 241 be added by the 241 from 231 would inherit. Such and similar cases can be detected by a cycle checker.
Ein solcher Zykluschecker könnte beispielsweise dadurch realisiert werden, dass beim Hinzufügen einer neuen Erbschaftverbindung geprüft wird, ob der Erbschaftsbaum des Elementes A von dem Element B zukünftig erben soll, schon Element B an irgend einer Stelle im bisherigen Baum enthält und ob Element A und B in verschiedenen Objekten sind.Such a cycle checker could be realized, for example, by checking, when adding a new inheritance connection, whether the inheritance tree of element A is to inherit from element B in the future, already contains element B at any point in the previous tree, and if element A and B in FIG different objects are.
Weil in den beispielhaften Erbschaftsbäumen Aggregate durch die Erfindung 100 mit den jeweiligen Ressourcen 111 in den Systemen 110 assoziiert werden können, wird ein weiterer Vorteil der Erfindung 100 sichtbar. Es ist es somit möglich, dass an die jeweiligen Systeme 110 Anfragen gestellt werden, die schon bei der Anfrage selbst die Aggregate nutzen, um zu der Ergebnismenge gehörende Elemente zu bestimmen. Dies ermöglicht es zum Beispiel, unpassende Elemente schon in einer Abfrage auszuschließen, da alle Zugriffsinformationen durch Aggregate direkt verfügbar sind. Beispielsweise könnten Objekte einer Klasse erfragt werden, für die der Anfragende eine bestimmte Rolle besitzt. Ohne Aggregate müssten die Vorfahren ebenso befragt werden und dies wäre langsam, insbesondere bei fremden Systemen, sofern überhaupt technisch möglich. Mit Aggregaten können diese nun verwendet werden, um nur zutreffende Objekte zu bestimmen.Because in the exemplary inheritance trees aggregates by the invention 100 with the respective resources 111 in the systems 110 can be associated, becomes another advantage of the invention 100 visible, noticeable. It is thus possible that to the respective systems 110 Inquiries are made that use the aggregates already at the request itself, in order to determine elements belonging to the result set. This makes it possible, for example, to exclude inappropriate elements already in a query, since all access information through aggregates is directly available. For example, objects of a class could be queried for which the requester has a specific role. Without aggregates, the ancestors would have to be interviewed as well, and this would be slow, especially in foreign systems, if at all technically possible. With aggregates, these can now be used to determine only applicable objects.
Um auf die verschiedenen Systeme 110 200, 210 und 220 und deren Entscheidermittel 113 zuzugreifen, kann z. B. die Integrationseinheit 101 verwendet werden. Dadurch, dass die Erfindung 100 auch über die Aggregationsmittel verfügt, ist es möglich, die Erbschaft systemübergreifend zu ermöglichen. Dabei nutzt die Aggregationseinheit 102 z. B. die Integrationseinheit, um auf die verschiedenen Systeme 110 zuzugreifen. Weil diese somit die Möglichkeit hat, die Entscheidermittel 113 aus den verschiedenen Systemen 110 zu lesen, kann sie aus diesen Aggregate berechnen. Beispielsweise kann sie 201 lesen und mit dem derzeitigen Inhalt von 211 die absoluten Rechte für 211 schreiben, sodass dies wiederum bei weiteren Zugriffen als Entscheidermittel 113 verwendet werden kann. Deshalb kann danach beispielsweise 222 und 212 berechnet werden. Ebenso ist dies so ähnlich für die weiteren Rechte und für das Erben von mehreren Vorfahren umsetzbar.To the different systems 110 200 . 210 and 220 and their decision-making means 113 can access, for. B. the integration unit 101 be used. In that the invention 100 also has the aggregation means, it is possible to allow the inheritance system across. It uses the aggregation unit 102 z. As the integration unit, to the various systems 110 access. Because this has the opportunity, the decision-making means 113 from the different systems 110 To read, you can calculate from these aggregates. For example, she can 201 read and with the current content of 211 the absolute rights for 211 write, so this in turn for further access as a decision maker 113 can be used. Therefore, after that, for example 222 and 212 be calculated. Likewise this is so similarly for the further rights and for the inheritance of several ancestors implementable.
Man beachte jedoch, dass die Aggregation, wie zuvor beschrieben, auch weitere Schritte, wie beispielsweise die Transformation der Mittel zur Zugriffsentscheidung in das richtige Format, enthalten kann. Dabei kann die Aggregation auch genutzt werden, um z. B. lange Zugriffskontrolllisten zu vereinfachen, indem zum Beispiel doppelte Einträge, die z. B. bei Erbschaft zustande kommen zu filtern. Solche Transformationen können in der jeweiligen Anwendung, durch speziell dafür angepasste Transformationsmittel, realisiert werden.Note, however, that aggregation, as described above, may also include other steps, such as transforming the access decision means into the correct format. The aggregation can also be used to z. For example, to simplify long access control lists by, for example, duplicating entries, e.g. B. in heritage come to filter. Such transformations can be realized in the respective application by means of specially adapted transformation means.
Die Aggregation kann des Weiteren unter der Nutzung von Mechanismen aus der funktionalen Programmierung oder/und der Nutzung der Warteschlangentheorie beschleunigt werden. Beispielsweise kann die Aggregation durch deklarative Programmierung definiert werden, um eine hohe Parallelität zu erreichen. Dabei ist es auch möglich, dass die Aggregation Techniken, wie zum Beispiel Map Reduce, zum Beispiel US7650331 , Amazon Elastic MapReduce ( http://aws.amazon.com/elasticmapreduce/ ) oder Ähnliche, die z. B. unter http://de.wikipedia.org/wiki/MapReduce zu finden sind, nutzt. Des Weiteren können Erkenntnisse aus der Warteschlangentheorie genutzt werden, um einen hohen Datendurchsatz zu erreichen.The aggregation can be further characterized by the use of mechanisms from the functional Programming and / or the use of queuing theory to be accelerated. For example, the aggregation can be defined by declarative programming to achieve high parallelism. It is also possible that the aggregation techniques, such as Map Reduce, for example US7650331 , Amazon Elastic MapReduce ( http://aws.amazon.com/elasticmapreduce/ ) or similar, the z. More colorful http://de.wikipedia.org/wiki/MapReduce to find uses. Furthermore, findings from the queuing theory can be used to achieve a high data throughput.
3a zeigt das Verfahren, nach dem Aggregate gebildet werden. Dabei werden zuerst die benötigten Mittel, die zur Aggregatbildung benötigt werden, bestimmt 301. Darauf werden dann eines oder mehrere Aggregate gebildet 302. Solche benötigten Mittel können dabei beispielsweise die Elemente sein, von denen ein Element, für das ein Aggregat gebildet werden soll, erbt. Dabei kann das Bestimmen der benötigten Mittel auch das Laden der benötigten Mittel einschließen. Nach der Bildung der Aggregate kann zudem noch ein Schreibvorgang erfolgen, der neue Entscheidermittel 113 erzeugt, löscht oder aktualisiert. Das Bestimmen oder Laden der nötigen Mittel kann auch durch die Integrationseinheit, ebenso wie das Schreiben durchgeführt werden. Auch ist es möglich, dass diese dabei über zumindest ein Computernetzwerk 50 übertragen werden. Zudem ist es möglich, dass die Aggregationseinheit(en) und die Integrationseinheit(en) als gemeinsame Einheit erstellt werden. Somit kann eine Aggregationseinheit 102 über sämtliche Merkmale der Integrationseinheit 101 verfügen und umgekehrt. 3a shows the process by which aggregates are formed. First of all, the required resources needed for aggregate formation are determined 301 , Then one or more aggregates are formed 302 , Such required means may be, for example, the elements of which an element for which an aggregate is to be formed, inherits. In this case, the determination of the required means may also include the loading of the required funds. After the formation of the aggregates can also be done a write, the new decision maker 113 creates, deletes or updates. The determination or loading of the necessary means can also be performed by the integration unit, as well as the writing. It is also possible that this involves at least one computer network 50 be transmitted. It is also possible that the aggregation unit (s) and the integration unit (s) are created as a common unit. Thus, an aggregation unit 102 about all features of the integration unit 101 dispose and vice versa.
3b zeigt, dass Aggregatbildungen auch wieder neue Aggregatbildungen auslösen können 303. Beispielsweise könnte wie in 3c eine Vererbungshierarchie existieren. Dadurch, dass ein Aggregat von o1 gebildet wird oder die zugehörigen Mittel, die zur Zugriffskontrolle genutzt werden, erzeugt oder aktualisiert werden, könnte dies durch die Erfindung 100 erkannt werden und Aggregate für o2 und o3 könnten berechnet werden. Ebenso für o4,o5 und o6. In 3d ist dies dargestellt. Dabei können Aggregate, die auf der gleichen Hierarchiestufe sind, z. B. auch parallel berechnet werden. 3b shows that aggregate formations can also trigger new aggregate formations 303 , For example, as in 3c an inheritance hierarchy exist. The fact that an aggregate of o1 is formed or the associated means that are used for access control, generated or updated, this could by the invention 100 and aggregates for o2 and o3 could be calculated. Likewise for o4, o5 and o6. In 3d this is shown. In this case, aggregates that are on the same hierarchy level, z. B. also be calculated in parallel.
Die Erfindung 100 kann für solche Fälle über spezialisierte Mittel verfügen, die es z. B. ermöglichen, Aggregate parallel zu erzeugen. Beispielsweise können bei jeder neuen Hierarchiestufe neue Prozesse für jedes Element erzeugt werden.The invention 100 may have specialized resources for such cases, such as B. allow to generate aggregates in parallel. For example, new processes can be created for each element at each new hierarchy level.
Das eigentliche Bilden der Aggregate kann über Regeln oder Computerprogramme spezifiziert sein. Dabei könnten auch Regeln oder Computerprogramme dynamisch zur Laufzeit geladen werden. Solche Regeln oder Computerprogramme können dabei speziell für die verschiedenen Mittel, die zur Zugriffsentscheidung genutzt werden, optimiert sein.The actual forming of the aggregates can be specified by rules or computer programs. At the same time, rules or computer programs could be loaded dynamically at runtime. Such rules or computer programs may be optimized especially for the various means used for access decision.
Optimaler weise kann des Weiteren das Erzeugen eines Ablaufplans zur Aggregatbildung Teil der Erfindung 100 und des Aggregaterstellungsverfahrens sein. Ein solcher Ablaufplan kann dazu dienen, wie und/oder in welcher Reihenfolge Aggregate für verschiedene Mittel zur Zugriffsentscheidung bestimmt werden sollen. Dabei kann dieses Erzeugen eines Ablaufplans, aufgrund der Ressource, für die ein Aggregat die Mittel zur Zugriffsentscheidung nutzt, geschehen. Es ist auch möglich, dass dabei die Mittel oder mehrere Mittel selbst genutzt werden, um zu bestimmen, wie das Aggregat gebildet werden soll. Zudem ist es auch möglich, dass weitere Mittel der Erfindung 100 benutzt werden, um einen solchen Ablaufplan zu erzeugen.Optionally, further, generating a flowchart for aggregate formation may be part of the invention 100 and the aggregate production process. Such a flowchart may serve as how and / or in which order aggregates should be determined for different access decision means. In doing so, this generation of a schedule may be done on the basis of the resource for which an aggregate uses the access decision means. It is also possible that the means or several means themselves are used to determine how the aggregate is to be formed. Moreover, it is also possible that further means of the invention 100 used to create such a flowchart.
Beispielsweise kann die Erfindung 100 auch über einen oder mehrere Erbschaftsbäume verfügen, z. B. in mehreren Varianten oder Instanzen, in denen Informationen hinterlegt sind, welche Vererbungen zwischen Ressourcen 111 oder deren Mittel zur Zugriffsentscheidung existieren. Dabei könnte als Datenstruktur z. B. ein speziell angepasster Patricia Trie, HAT Trie oder Brust Trie oder eine ähnliche Datenstruktur (vgl. „HAT-trie: A Cache-conscious Trie-based Data Structure for Strings”, http://crpit.com/confpapers/CRPITV62Askitis.pdf ) dienen. Diese könnten dann bei der Aggregatbildung genutzt werden und einen Ablaufplan dafür bilden, damit z. B. Aggregate in der Hierarchie von oben nach unten berechnet werden.For example, the invention 100 also have one or more inheritance trees, z. B. in several variants or instances in which information is stored, which inheritance between resources 111 or their access decision means exist. It could be used as a data structure z. For example, a specially adapted Patricia Trie, HAS Trie or Brust Trie, or a similar data structure (see "HAT-trie: A Cache-aware Trie-based Data Structure for Strings"). http://crpit.com/confpapers/CRPITV62Askitis.pdf ) serve. These could then be used in the aggregate formation and form a flowchart for z. For example, aggregates in the hierarchy can be calculated from top to bottom.
4 zeigt eine Integrationseinheit 101 der vorliegenden Erfindung 100. Diese verfügt über einen Zugriffsausführer 401, der den Zugriff auf verschiedene Systeme 110, über zumindest einen Integrator 402, durchführt. Die Integratoren 402 enthalten dabei Mittel, um auf verschiedene Systeme 110 zugreifen zu können. Solche Integratoren 402 können dabei zum Beispiel programmatisch als eine Sammlung von Funktionen oder auch Klassen erstellt werden. Durch diese Integratoren 402 ist es der Integrationseinheit 101 durch den Zugriffsausführer möglich, z. B. die verschiedenen in diesem Dokument beschriebenen Operationen, auf die Mittel, die zur Zugriffskontrolle genutzt werden, durchzuführen. Im Zugriffsausführer 401 oder auch in einem oder mehreren Integratoren 402 oder an anderer Stelle in der Integrationseinheit 101, können dabei zuvor besprochene Mittel zur Transformation eingesetzt werden. 4 shows an integration unit 101 of the present invention 100 , This has an access performer 401 who has access to different systems 110 , about at least one integrator 402 , performs. The integrators 402 Include means to access different systems 110 to be able to access. Such integrators 402 can be created programmatically as a collection of functions or classes. Through these integrators 402 it is the integration unit 101 by the access operator possible, for. For example, perform the various operations described in this document for the means of access control. In the access provider 401 or in one or more integrators 402 or elsewhere in the integration unit 101 , previously discussed means of transformation can be used.
In den Integratoren 402 im Zugriffsausführer 401 oder an anderer Stelle der Erfindung 100 kann zudem ein Modell 500 von Mitteln zur Zugriffskontrolle 112, das zuvor besprochen wurde, verfügbar sein. Dieses kann zum Beispiel als Transformationsmodell 500 oder zum Zugriff von Klienten 130 dienen, wie in 5 dargestellt. Dabei werden die Mittel, die zur Zugriffsentscheidung, die dem Modell von System A 501 folgen, zuerst in das Modell der Erfindung 500 transformiert und von diesem in das Modell des Systems B 504 oder auch C 503 oder D 502. Dies ermöglicht beispielsweise, dass nicht alle verschiedenen Transformationsarten von verschiedenen Systemen 110 zueinander beschrieben werden müssen.In the integrators 402 in the access provider 401 or elsewhere in the invention 100 can also be a model 500 access control means 112 that was previously discussed to be available. This can be, for example, as a transformation model 500 or for access by clients 130 serve as in 5 shown. In doing so, the means used for access decision, the model of System A 501 follow, first in the model of the invention 500 transformed and from this into the model of the system B 504 or also C 503 or D 502 , This allows, for example, not all different types of transformations of different systems 110 must be described to each other.
Die Erfindung 100 kann, wie erwähnt, auch über eine Speichereinheit verfügen. Auf diese kann zum Beispiel auch von den Bestandteilen der Erfindung, wie zum Beispiel der Integrationseinheit 101 oder Aggregationseinheit 102 oder deren Bestandteile zugegriffen werden. In dieser können zum Beispiel die Daten über Erbschaftsbeziehungen oder andere Daten gespeichert werden. Zum Beispiel könnte ein System es nicht unterstützen, Aggregat-Entscheidermittel und Original-Entscheidermittel zu speichern. Somit könnte das Original-Entscheidermittel vor dem Aggregatsvorgang in der Erfindung 100 verbleiben und nur das Aggregat-Entscheidermittel in das System 110 geschrieben werden. Sofern das Original-Entscheidermittel über die Erfindung 100 geändert würde, würde dies ein neues Aggregat-Entscheidermittel erzeugen. Oder es wäre möglich, dass falls das Aggregat-Entscheidermittel im System 110 geändert wurde, im Vergleich mit dem Original-Entscheidermittel, in der Erfindung 100 die Veränderung zu erkennen und das Original-Entscheidermittel dementsprechend anzupassen.The invention 100 can, as mentioned, also have a storage unit. These may also be, for example, of the components of the invention, such as the integration unit 101 or aggregation unit 102 or their components are accessed. In this example, the data on inheritance relationships or other data can be stored. For example, a system might not support storing aggregate arbitrator and master arbitrator. Thus, the original decider could be prior to the aggregate process in the invention 100 remain and only the aggregate decider into the system 110 to be written. Unless the original decision maker on the invention 100 would change, this would create a new aggregate arbitrator. Or it would be possible if the aggregate decider in the system 110 has been changed, as compared with the original decision maker, in the invention 100 recognize the change and adjust the original decision maker accordingly.
Wie zu sehen ist, kann die Integrationseinheit 101 auch über einen Zwischenspeicher/Cache 404 verfügen. Dies soll vor allem der Beschleunigung dienen. Dies kann die Geschwindigkeit von Verarbeitungen erhöhen, wie zum Beispiel bei Aggregatbildungen oder auch beim Nutzen der Erfindung 100 zur Zugriffskontrolle. Dabei kann der Cache 404 an verschiedenen Stellen in der Erfindung 100 eingesetzt werden. Es ist dabei auch denkbar, Caches 404 an mehreren Stellen einzusetzen.As you can see, the integration unit 101 also via a cache / cache 404 feature. This should serve above all the acceleration. This can increase the speed of processing, such as in aggregate formations or even in the benefit of the invention 100 for access control. The cache can be 404 at various points in the invention 100 be used. It is also conceivable caches 404 to be used in several places.
In 4 ist aufgezeigt, dass ein Cache 404 von den Integratoren 402 und vom Zugriffsausführer benutzt werden kann. Beispielsweise können geladene Entscheidermittel 113 im Cache 404 von Integratoren 402 oder vom Zugriffsausführer 401 abgelegt werden. Dieser oder die Integratoren 402 könnten vor Zugriffen zuerst den Cache 404 auf den Inhalt der benötigten Mittel prüfen, um langwierige, erneute Zugriffe durch Netzwerklatenz zu vermeiden.In 4 is shown that a cache 404 from the integrators 402 and can be used by the access provider. For example, charged decision makers 113 in the cache 404 from integrators 402 or by the access provider 401 be filed. This or the integrators 402 could access the cache first before accessing it 404 check the content of the resources needed to avoid lengthy network latency attacks.
Ferner kann die Erfindung 100 über ein Systemverzeichnis 403 verfügen. In diesem kann beispielsweise hinterlegt werden, zu welchen Ressourcen 111 welche Entscheidermittel 113 und/oder Systeme 110 gehören. Dabei kann hinterlegt sein, in welchen Systemen 110 diese Mittel abgerufen werden können, oder/und durch welche Integratoren 402 diese aufzufinden sind.Furthermore, the invention 100 via a system directory 403 feature. In this can be deposited, for example, to which resources 111 which decision-making means 113 and / or systems 110 belong. It can be deposited in which systems 110 these funds can be retrieved, and / or by which integrators 402 these are to be found.
Diese Informationen können beispielsweise über einfache Mappings oder auch über Regeln hinterlegt sein. Solche Regeln können zum Beispiel auch spezifizieren, wie aufgrund zumindest eines Identifikationsmerkmals einer Ressource 111, zumindest ein oder auch mehrere zugehörige Integratoren 402 bestimmt werden können. Dabei kann z. B. eine Anfrage an das Systemverzeichnis 403 über eine Ressource 111 gestellt werden, die dann mit zumindest einem zugehörigen Integrator 402 oder einem Verweis aus diesem beantwortet werden kann.This information can be stored, for example, via simple mappings or via rules. For example, such rules may also specify how due to at least one identification feature of a resource 111 , at least one or more associated integrators 402 can be determined. It can be z. For example, a request to the system directory 403 about a resource 111 then be presented with at least one associated integrator 402 or a reference can be answered from this.
Somit stellt das Systemverzeichnis 403 Mittel bereit, die es ermöglichen, durch die Integratoren 402 und weitere zugehörige Informationen, verwaltet werden zu können.Thus, the system directory represents 403 Ready funds that make it possible through the integrators 402 and other related information to be managed.
Dabei kann der Zugriffsausführer 401 bei einem Zugriff, z. B. aufgrund einer Ressource 111 oder eines ihrer Identifikationsmerkmale, zumindest einen zugehörigen Integrator 402 bestimmen und somit auf deren System und somit auf deren Mittel, die zur Zugriffsentscheidung 112 genutzt werden zugreifen.In doing so, the access provider 401 in an access, for. Due to a resource 111 or one of its identification features, at least one associated integrator 402 determine and thus on their system and thus on their means of access decision 112 be accessed.
Eine, besonders bevorzugt im dynamischen Internetumfeld, wie Web.2.0, eingesetzte Variante der Erfindung 100 besitzt die Fähigkeit, dass dynamisch Integrationsmittel eingebunden oder entfernt werden können. Solche Integrationsmittel können zum Beispiel Integratoren oder Gruppen von Integratoren 402 sein. Dabei können solche Integratoren 402 zum Beispiel beim dynamischen Hinzufügen dem Systemverzeichnis 403 hinzugefügt werden. Dabei könnte z. B. im Integrator 402 selbst oder durch Zusatzinformation, wie zum Beispiel die zuvor erwähnten Regeln, Mappings oder Computerprogramme, definiert sein, wie die zugehörigen Ressourcen 111 zu erkennen sind. Dies könnte dann ebenfalls in das Systemverzeichnis 403 aufgenommen werden. Dadurch ist es zur Laufzeit möglich, auch aufgrund von Ressourcen 111 oder derer Identifikationsmerkmale, den neuen Integrator 402 als zugehörig zu bestimmen und diesen somit nahtlos in die bisherige Funktionalität eines Systems einzuweben. Ebenfalls ähnlich wie das Hinzufügen könnte das Entfernen realisiert werden. Dabei würde die Information des Erkennens der zugehörigen Ressourcen 111 aus dem Systemverzeichnis 403, mitsamt dem Integrator 402, entfernt werden.A, particularly preferred in the dynamic Internet environment, such as Web.2.0, used variant of the invention 100 has the ability to dynamically integrate or remove integrators. Such integrating means may be, for example, integrators or groups of integrators 402 be. In doing so, such integrators can 402 for example, dynamically adding the system directory 403 to be added. It could be z. In the integrator 402 itself or by additional information, such as the aforementioned rules, mappings or computer programs, be defined as the associated resources 111 can be seen. This could then also be in the system directory 403 be recorded. This makes it possible at runtime, also due to resources 111 or their identifiers, the new integrator 402 as belonging to determine and thus weave this seamlessly into the previous functionality of a system. Similar to the addition, the removal could be realized. The information would be the recognition of the associated resources 111 from the system directory 403 , together with the integrator 402 to be removed.
Eine weitere Variante der Erfindung 100 kann Mittel zum dynamischen Hinzufügen von Komponenten benutzen. Zum Beispiel OSGI auf der Java Plattform. Beispielsweise könnte damit das dynamische Hinzufügen/Registrieren und Entfernen von Integratoren 402 realisiert werden.Another variant of the invention 100 can use means to dynamically add components. For example OSGI on the Java platform. For example, this could be the dynamic addition / registration and removal of integrators 402 will be realized.
Die hier Vorgestellte Erfindung 100, Verfahren, Anordnung und Apparat kann besonders bevorzugt auch dazu eingesetzt werden, um für Videoplattformen genutzt zu werden. Insbesondere, um diese mit Social Networks zu verbinden. The invention presented here 100 , Method, arrangement and apparatus may also be particularly preferably used to be used for video-sharing platforms. Especially to connect with social networks.
Ein besonders bevorzugter Anwendungsfall dieses Sicherheitssystems ist die Kombination mit einer Videoplattform oder einer Livestreaming-Videoplattform, wie z. B. das „Newreporter System, Anordnungen und Verfahren für Videoplattformen” das vom Erfinder am 4.4.2010 zur Anmeldung beim DPMA eingereicht wurde und somit dem Stand der Technik entspricht (DPMA Amtliches Aktenzeichen: 10 2010 016 323.6). Dieses Newreporter System kann durch die Kombination mit der Erfindung beispielsweise mit weiteren Systemen 110 interagieren und Rechte erben, und es können Sicherheitsfunktionen, aufgrund von Klienteninformation, realisiert werden, zum Beispiel ortsabhängige Sicherheitsfunktionen.A particularly preferred application of this security system is the combination with a video platform or a live streaming video platform, such. For example, the "Newreporter System, Arrangements and Procedures for Video Platforms" filed by the inventor on April 4, 2010 for filing with the DPMA, and thus the state of the art (DPMA Official File Number: 10 2010 016 323.6). This Newreporter system can by combining with the invention, for example, with other systems 110 interact and inherit rights, and security functions can be realized based on client information, such as location-dependent security features.
Ein weiterer, besonders bevorzugter, Anwendungsfall ist die Kombination der Erfindung 100 mit einem Hyperadapter ( EP09180953 ). Hierbei kann die Erfindung, insbesondere die Yourweb Variante, absichern.Another, particularly preferred, application is the combination of the invention 100 with a hyper adapter ( EP09180953 ). Hereby, the invention, in particular the Yourweb variant, can be secured.
Ein weiterer, besonders bevorzugter, Anwendungsfall ist die Kombination der Erfindung 100 mit einem So-ad-tec System ( EP10001967 ). Hierbei kann zum Beispiel das Nexusnodes System damit abgesichert werden. Dabei ist es auch möglich, ein So-ad-tec System selbst damit abzusichern. Des Weiteren kann die dargestellte Erfindung 100 auch über ein dort beschriebenes SCAPTCHA System oder dessen Funktionen verfügen oder mit einem solchen zusammenarbeiten. Dies macht es zum Beispiel möglich, ein solches SCAPTCHA System als Infrastrukturdienst, zusammen mit den anderen beschrieben Funktionen, in einer Cloud Computing Infrastruktur anzubieten.Another, particularly preferred, application is the combination of the invention 100 with a So-ad-tec system ( EP10001967 ). In this case, for example, the Nexusnodes system can be secured with it. It is also possible to protect a So-ad-tec system with it. Furthermore, the illustrated invention 100 also have a SCAPTCHA system or its functions described there or work together with such. This makes it possible, for example, to offer such a SCAPTCHA system as an infrastructure service, along with the other features described, in a cloud computing infrastructure.
Ein weiterer Anwendungsfall ist das Absichern von betriebswirtschaftlichen Systemen. Z. B. ERP-Systemen, CRM-Systemen, Portale u. v. A.Another use case is the hedging of business systems. For example, ERP systems, CRM systems, portals and the like. v. A.
Man beachte, dass diese Erfindung, bzw. Gruppe von Erfindungen als computerimplementierte Systeme, beziehungsweise als Computerprogramme realisierbar sind. Aufgrund der Natur dieser Erfindung 100 lassen sich sämtliche dargestellten Sachverhalte in verschiedenen Programmiersprachen auf verschiedenen Plattformen realisieren. Zudem lassen sich sämtliche Verfahren in deklarativen Programmen und somit in deklarativen Sachverhalten darstellen und umgekehrt. Ebenso lassen sich die Verfahren als Apparate oder Anordnungen umwandeln und umgekehrt.It should be noted that this invention or group of inventions can be realized as computer-implemented systems or as computer programs. Due to the nature of this invention 100 All presented facts in different programming languages can be realized on different platforms. In addition, all procedures can be represented in declarative programs and thus in declarative situations and vice versa. Likewise, the processes can be converted as apparatuses or arrangements and vice versa.
Zudem lassen sich, aufgrund der flexiblen Natur der Erfindung, viele einzelne besprochene Teile der Erfindung 100 kombinieren oder anders anordnen, um Lösungen mit höherer Geschwindigkeit oder in anderer Form bessere Lösungen zu ermöglichen. Daher ist die Beschreibung der Erfindung 100 eher als exemplarische Ausführung zu verstehen, derer Merkmale auch in anderen Anordnungen vorkommen können.In addition, due to the flexible nature of the invention, many individual parts of the invention discussed may be considered 100 combine or rearrange to provide better solutions at higher speeds or otherwise. Therefore, the description of the invention 100 rather than an exemplary embodiment of which features can also occur in other arrangements.
ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
-
US 7650331 [0106] US 7650331 [0106]
-
EP 09180953 [0126] EP 09180953 [0126]
-
EP 10001967 [0127] EP 10001967 [0127]
Zitierte Nicht-PatentliteraturCited non-patent literature
-
http://cwiki.apache.org/confluence/display/SHIRO/Index [0003] http://cwiki.apache.org/confluence/display/SHIRO/Index [0003]
-
http://aws.amazon.com/ [0026] http://aws.amazon.com/ [0026]
-
http://code.google.com/intl/de-DE/appengine/ [0026] http://code.google.com/intl/en-GB/appengine/ [0026]
-
http://www.microsoft.com/germany/technet/itsolutions/network/grundlagen/tec_comp_2_2_3.mspx [0088] http://www.microsoft.com/technet/itsolutions/network/grundlagen/tec_comp_2_2_3.mspx [0088]
-
http://openid.net/ [0088] http://openid.net/ [0088]
-
http://de.wikipedia.org/wiki/Kerberos_(Informatik) [0088] http://en.wikipedia.org/wiki/Kerberos_(Computer Science) [0088]
-
http://www.hznet.de/security/kerbeinf.pdf [0088] http://www.hznet.de/security/kerbeinf.pdf [0088]
-
http://www.studivz.net/ [0092] http://www.studivz.net/ [0092]
-
http://www.wer-kennt-wen.de/ [0092] http://www.wer-kennt-wen.de/ [0092]
-
http://www.facebook.com/ [0092] http://www.facebook.com/ [0092]
-
http://aws.amazon.com/elasticmapreduce/ [0106] http://aws.amazon.com/elasticmapreduce/ [0106]
-
http://de.wikipedia.org/wiki/MapReduce [0106] http://en.wikipedia.org/wiki/MapReduce [0106]
-
http://crpit.com/confpapers/CRPITV62Askitis.pdf [0112] http://crpit.com/confpapers/CRPITV62Askitis.pdf [0112]