Graph-based access control: Difference between revisions

Content deleted Content added
Created page with '{{User sandbox}} <!-- EDIT BELOW THIS LINE --> '''Work in process''' Looking at the various applications and systems needed for running a business one thing ge...'
 
Citation bot (talk | contribs)
Alter: url, title, template type. URLs might have been anonymized. Add: chapter-url, chapter, authors 1-1. Removed or converted URL. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | Suggested by Abductive | #UCB_toolbar
 
(100 intermediate revisions by 27 users not shown)
Line 1:
'''Graph-based access control''' ('''GBAC''') is a [[declarative programming|declarative]] way to define [[access control|access rights]], task assignments, recipients and content in [[information system]]s. Access rights are granted to objects like files or documents, but also business objects such as an account. GBAC can also be used for the assignment of agents to tasks in workflow environments. Organizations are modeled as a specific kind of semantic graph comprising the organizational units, the roles and functions as well as the human and automatic agents (i.a. persons, machines). The main difference with other approaches such as [[role-based access control]] or [[attribute-based access control]] is that in GBAC access rights are defined using an organizational query language instead of total enumeration.
{{User sandbox}}
<!-- EDIT BELOW THIS LINE -->
 
== History ==
'''Work in process'''
The foundations of GBAC go back to a research project named CoCoSOrg (Configurable Cooperation System) [<ref name="DISS">{{cite book |last1=Schaller |first1=Thomas |url=https://www.researchgate.net/publication/220690241 |title=Organisationsverwaltung in CSCW-Systemen - Dissertation |date=1998 |publisher=Bamberg University |___location=Bamberg}}</ref>] (in English language please see<ref name="EOMAS">{{cite book |last1=Lawall, Schaller, Reichelt |url=https://www.researchgate.net/publication/283579217 |title=Enterprise Architecture: A Formalism for Modelling Organizational Structures in Information Systems |date=2014 |publisher=Enterprise and Organizatinal Modeling and Simulation: 10th International Workshop CAiSE2014 |___location=Thessaloniki}}</ref>) at Bamberg University. In CoCoSOrg an organization is represented as a semantic graph and a formal language is used to specify agents and their access rights in a workflow environment. Within the C-Org-Project at Hof University's Institute for Information Systems ([http://www.iisys.de/en/research/research-groups/information-management.html iisys]), the approach was extended by features like separation of duty, access control in virtual organizations <ref>{{cite journal|last1=Lawall, Schaller, Reichelt|title=Restricted Relations between Organizations for Cross-Organizational Processes|journal=IEEE 16th Conference on Business Informatics (CBI), Geneva|date=2014|pages=74–80}}</ref> and subject-oriented access control.<ref>{{cite book|last1=Lawall, Schaller, Reichelt|title=S-BPM in the Wild: Role and Rights Management|date=2015|publisher=Springer|___location=Berlin|isbn=978-3-319-17541-6|pages=171–186|edition=1}}</ref>
 
== Definition ==
Looking at the various applications and systems needed for running a business one thing gets obvious: in almost every application there is the need to maintain a model of the organization structure, of the roles and the actors in order to define access rights or assign tasks to employees (in case of a workflow management system). These redundancies lead to a great maintenance overhead that – even for small businesses – can grow to a great burden. This problem can be avoided by deploying one logically central component offering this service to other applications. This component is called an organization server.
Graph-based access control consists of two building blocks:
* A semantic graph modeling an organization
* A query language.
 
=== Organizational graph ===
== Graph-based Access Control ==
[[File:GBACOrgGraph.pdf|thumb|Organizational Graph in GBAC]]
 
The organizational graph is divided into a type and an instance level. On the instance level there are node types for organizational units, functional units and agents. The basic structure of an organization is defined using so called "structural relations". They define the "is part of"- relations between functional units and organizational units as well as the mapping of agents to functional units. Additionally there are specific relationship types like "deputyship" or "informed_by". These types can be extended by the modeler. All relationships can be context sensitive through the usage of [[Predicate (mathematical logic)|predicate]]s.
asdf
 
On the type level organizational structures are described in a more general manner. It consists of organizational unit types, functional unit types and the same relationship types as on the instance level. Type definitions can be used to create new instances or reuse organizational knowledge in case of exceptions (for further reading see<ref name=DISS/><ref name=EOMAS />).
=== Heading 2 ===
 
=== Query language ===
<ref>{{cite book|last1=Schaller|first1=Thomas|title=Organisationsverwaltung in CSCW-Systemen|date=1998|publisher=Bamberg University|___location=Bamberg}}</ref>
In GBAC a query language is used to define agents having certain characteristics or abilities. The following table shows the usage of the query language in the context of an access control matrix.
 
The first query means that all managers working for the company for more than six months can read the financial report, as well as the managers who are classified by the flag "ReadFinancialReport".
<ref>{{cite book|last1=Lawall, Schaller, Reichelt|title=Enterprise Architecture: A Formalism for Modelling Organizational Structures in Information Systems|date=2014|publisher=Enterprise and Organizatinal Modeling and Simulation: 10th International Workshop CAiSE2014|___location=Thessaloniki}}</ref>
 
The daily financial report can only be written by the manager of the controlling department or clerks of the department that are enabled to do that (WriteFinancialReport==TRUE).
 
{| class="wikitable"
|-
! Data Object !! Read !! Write
|-
| Daily Financial Report || Manager(*).(Now() - HiringYear > 0.5) OR Manager.ReadFinancialReport == TRUE || Manager(Controlling) OR Clerk(Controlling).WriteFinancialReport == TRUE
 
|}
 
== Implementation ==
[[File:CORGUsage.jpg|thumb|Usage of C-Org]]
 
GBAC was first implemented in the CoCoS Environment within the organizational server CoCoSOrg.<ref name=DISS />
In the C-Org-Project it was extended with more sophisticated features like separation of duty or access control in distributed environments.
There is also a cloud-based implementation<ref>{{Cite book |last1=Lawall |first1=Alexander |last2=Reichelt |first2=Dominik |last3=Schaller |first3=Thomas |chapter=Resource management and authorization for cloud services |date=2015-04-23 |title=Proceedings of the 7th International Conference on Subject-Oriented Business Process Management |chapter-url=https://doi.org/10.1145/2723839.2723864 |series=S-BPM ONE '15 |___location=New York, NY, USA |publisher=Association for Computing Machinery |pages=18:1–18:8 |doi=10.1145/2723839.2723864 |isbn=978-1-4503-3312-2}}</ref> on IBM's [[Bluemix]]<ref>[http://www.ibm.com/cloud-computing/bluemix/?cm_mmc=search-gsn-_-branded-Bluemix-general-_-ibm%20bluemix-_-ger-bm-mkt-oww Bluemix]</ref> platform.
 
In all implementations the server takes a query from a client system and resolves it to a set of agents. This set is sent back to the calling client as response. Clients can be file systems, database management systems, workflow management systems, physical security systems or even telephone servers.
 
== See also ==
{{columns-list|colwidth=30em|
* [[Access control list]]
* [[Attribute-based access control]] (ABAC)
* [[Capability-based security]]
* [[Context-based access control]] (CBAC)
* [[Discretionary access control]] (DAC)
* [[Lattice-based access control]] (LBAC)
* [[Mandatory access control]] (MAC)
* [[Organisation-based access control]] (OrBAC)
* [[Risk-based authentication]]
* [[Role-based access control]] (RBAC)
* [[RSBAC|Rule-set-based access control (RSBAC)]]
}}
 
== References ==
<references/>
 
[[Category:Access control]]
[[Category:Computer access control]]