SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Runtime Support for Rule-Based Access-Control
Evaluation through Model-Transformation
Salvador Martínez - UOC & Mines Nantes-inria-Lina, Nantes, France
Jokin García - IK4-IKERLAN, Arrasate, Spain
Jordi Cabot - ICREA UOC, Barcelona, Spain
“The purpose of access control is to limit the Actions or operations that a
legitimate user of a computer system can perform. Access control constrains
what a user can do [...]. In this way access control seeks to prevent activity that
could lead to a breach of security”. Sandhu, Ravi S., and Pierangela Samarati. IEEE communications
magazine 32.9 (1994): 40-48.
Subject
Action Object
Permission
Permission
assignment
Rule: mechanism to assign permissions to Subjects.
Policy: a set of rules defining the security requirements of a system.
Access-Control lists (ACL)
Attribute-based Access-Control (ABAC)
Discretionary Access-Control (DAC)
Mandatory Access-Control (MAC)
Identity-Based Access-Control (IBAC)
Organization-based Access-Control (OrBAC)
Role-based Access-Control (RBAC)
Temporal Role-based Access-Control (TRBAC)
Rule-based Access-Control (RAC)
Infrastructure components for AC integration:
Design time
(static)
Runtime
(dinamic)
Divided in:
Infrastructure: nowadays as reference monitor
1. Language for policies and
access requests. (too many?)
2. Evaluation engine (PDP).
3. Interface mechanism between
access-requests and
resources (PEP). (solved by
AOP and the like)
Problem?
Focus is in Access-control languages and not in their evaluation.
Lack of reusable PDPs. Existing “reusable” PDPs are tight to concrete access-
control languages (e.g. XACML, EPAL).
PDPs as black boxes, difficult to adapt to different situations.
We are obliged to reinvent the wheel!!
Requirements: what would be a better situation?
Easy to use. Concrete syntax should be easy to adapt (without changing the rest)
The policy representation should be explicit. The evaluation execution should be
adaptable: add tracing, enhance outcome, etc.
Efficiently capable to face complex escenarios (live evaluation): Lazy execution,
incremental evaluation, reactivity...
Request Decision
Rule1 (conditions)-> decision
Rule2 (conditions)-> decision
Rule3 (conditions)-> decision
Evaluation Engine
Read policy
Rule1 match request (with conditions) to decision
Rule2 match request (with conditions) to decision
Rule3 match request (with conditions) to decision
Transformation Engine
Read transformation
Request Model Decision Model
find rule
evaluate conditions
issue decision
match request
evaluate guards
create decision model
Approach:
● Basic ready-to-use workflow
● Advanced fully-tunable workflow
Basic Workflow
Policy
PEP-PDP
Decision
Write security
policy rules
using policy
language
Write access
requests using
Access
language
read
Issue
access
decision
Rule r1 (
Subject S1 {attributes <'role' = 'Manager'>},
Object O1,
Action Read
) -> Accept
Rule r2 (
Subject S2 {attributes <'role' = 'Employee'>},
Object O1,
Action Read
) -> Deny
Access(
Subject S1 {attributes <'role' = 'Manager'>},
Object O1,
Action Read
)
Module SecurityPolicy create OUT: Evaluation from IN: Request;
nodefault rule rule1 {
from
s:Req!Requests (
s.filter(Sequence{Tuple{id='S1', attributes = Sequence{Tuple{name = 'role', value = 'manager'}}},
Tuple{id='O1', attributes = Sequence{}},
Tuple{id='read', attributes = Sequence{}}}))
to
t : Evaluation!Evaluation (
effect <- 'Permit',
ruleId <- 'Rule1',
ruleOrder <- 1)
}
nodefault rule rule2 {
from
s:Req!Requests (
s.filter(Sequence{Tuple{id='S2', attributes = Sequence{Tuple{name = 'role', value = 'employee'}}},
Tuple{id='O1', attributes = Sequence{}},
Tuple{id='read', attributes = Sequence{}}}))
to
t : Evaluation!Evaluation (
effect <- 'Deny',
ruleId <- 'Rule2',
ruleOrder <- 2)
}
Security Policy
Policy Model
Trasf. Model
HOT: Policy
to
Transformation
Transformation
code
Request model Eval. model
Request
metamodel
Evaluation
metamodel
Transf.
metamodel
RULE COMBINATION
ALGORITHMS
-first match
-deny overrides
-accept overrides
-others...
Refining
Transf.
refines
implements
Policy.
metamodel
1
2
3
4
1
2
3
4
Language dependent
Language independent
injection
Advanced
Workflow
Implementation with ATL
(and other modeling tools)
1.Policy
Metamodel
& Injection
XText Grammar…
Policy:
rules+=Rule*;
Rule returns Rule:
'Rule' id=ID '(' lhs=LHS ')' '->' rhs=RHS;
LHS returns LHS:
conditionfields += ConditionField ("," conditionfields +=
ConditionField)*;
RHS returns RHS:
decisions+=AccessDecision;
ConditionField:
(Subject | Object | Action)
(
'{'('attributes' '<' attributes+=Attribute ( ","
attributes+=Attribute)* '>' )?
'}')? ;
Attribute returns Attribute:
{Attribute} name=EString '=' value=EString;
...
...
2. HOT: From policies to trans. specifications
What the HOT transformation does:
1. Creates a transformation module from the policy root.
2. Creates OCL operations to factorize the encoding of access-request
conditions into OCL predicates.
3. Creates an ATL rule for each access-control rule with:
- Match : Request element
- A guard calling the OCL operation that evaluates the conditions
- Generates as output an Evaluation element with a decision (and some tracing info.)
HOT: Looks… scary? It is at least tedious...
rule Rule2MatchedRule {
from
s : Policy!Rule
to
mr : ATL!MatchedRule (
name <- s.id,
isNoDefault <- true,
isAbstract <- false,
isRefining <- false,
inPattern <- ip,
outPattern <- op
),
-- start from part
ip : ATL!InPattern (
elements <- Sequence{ipe},
filter <- filter
),
ipe : ATL!SimpleInPatternElement(
varName <- 's',
type <- ipet
),
-- start filter
filter: ATL!OperationCallExp (
operationName <- 'filter'
),
fvar: ATL!VariableExp (
referredVariable <- ipe,
appliedProperty <- filter
),
fseq: ATL!SequenceExp(
parentOperation <- filter
),
fsub: ATL!TupleExp (
collection <- fseq
--retrieve subject attributes
),
fobj: ATL!TupleExp (
collection <- fseq
--retrieve objetc attributes
),
fact: ATL!TupleExp (
collection <- fseq
--retrieve action attributes
),
--end filter
ipet : ATL!OclModelElement (
name <- 'Request',
model <- om
),
om : ATL!OclModel (
name <- 'Request'
),
--end from part
--begin to part
op : ATL!OutPattern (
elements <- Sequence{ope}
),
ope : ATL!SimpleOutPatternElement(
varName <- 't',
type <- opet,
bindings <- Sequence{b1, b2}
),
opet : ATL!OclModelElement (
name <- 'Evaluation',
model <- om2
),
om2 : ATL!OclModel (
name <- 'Evaluation'
),
--begin bindings
b1 : ATL!Binding (
propertyName <- 'effect',
value <- se1
),
HOT: Generating it from the Policy metamodel
rule Rule2MatchedRule {
from
s : Policy!Rule
to
mr : ATL!MatchedRule (
name <- s.id,
isNoDefault <- true,
isAbstract <- false,
isRefining <- false,
inPattern <- ip,
outPattern <- op
Modular Acceleo
templates
Metamodel ATL HOT
3. Conflict Resolution
create OUT: Evaluation refining IN: Evaluation;
helper context Evaluation!Evaluation
def:isFirstMatch():Boolean =
let allEvaluations :
Sequence(Evaluation!Evaluation) =
Evaluation!Evaluation.allInstances()
->asSequence() in
allEvaluations->iterate(p; y : Boolean = true |
if p.request.toInteger() <
self.request.toInteger() then
false
else
if y = true then
true
else
false
endif
endif);
rule Evaluation {
from
s : Evaluation!Evaluation(s.isFirstMatch())
to
t : Evaluation!Evaluation ()}
Resolution algorithms as refining
transformations on Evaluations:
- First match
- Deny overrides
- Accept overrides
- Others
Completely independent from the
policy language.
Performance Evaluation
Conclusions
Model transformation engines can be used as AC evaluation engines.
An important amount of work can be delegated to “generators”.
Performance (often a problem in MDE) is in par with other implementations.
Future work
Multi-policy environments.
Experimenting alternatives execution modes (Lazy, incremental, reactive, parallel).
Validation and Verification of the policy by using MT V&V techniques.
Questions time!!

Weitere ähnliche Inhalte

Was ist angesagt?

Real-time Machine Learning with Hopsworks
Real-time Machine Learning with Hopsworks Real-time Machine Learning with Hopsworks
Real-time Machine Learning with Hopsworks AlbaTorrado
 
Rules of data mining
Rules of data miningRules of data mining
Rules of data miningSulman Ahmed
 
Web mining (structure mining)
Web mining (structure mining)Web mining (structure mining)
Web mining (structure mining)Amir Fahmideh
 
Authentication & Authorization for Connected Mobile & Web Applications using ...
Authentication & Authorization for Connected Mobile & Web Applications using ...Authentication & Authorization for Connected Mobile & Web Applications using ...
Authentication & Authorization for Connected Mobile & Web Applications using ...Amazon Web Services
 
Cure, Clustering Algorithm
Cure, Clustering AlgorithmCure, Clustering Algorithm
Cure, Clustering AlgorithmLino Possamai
 
How to Build a Recommendation Engine with Neo4j
How to Build a Recommendation Engine with Neo4jHow to Build a Recommendation Engine with Neo4j
How to Build a Recommendation Engine with Neo4jNeo4j
 
Introduction to pandas
Introduction to pandasIntroduction to pandas
Introduction to pandasPiyush rai
 
Association Rule Learning Part 1: Frequent Itemset Generation
Association Rule Learning Part 1: Frequent Itemset GenerationAssociation Rule Learning Part 1: Frequent Itemset Generation
Association Rule Learning Part 1: Frequent Itemset GenerationKnoldus Inc.
 
Unit 3(advanced state modeling & interaction meodelling)
Unit  3(advanced state modeling & interaction meodelling)Unit  3(advanced state modeling & interaction meodelling)
Unit 3(advanced state modeling & interaction meodelling)Manoj Reddy
 
Decentralized Key Management (DKMS): An Essential Missing Piece of the SSI Pu...
Decentralized Key Management (DKMS): An Essential Missing Piece of the SSI Pu...Decentralized Key Management (DKMS): An Essential Missing Piece of the SSI Pu...
Decentralized Key Management (DKMS): An Essential Missing Piece of the SSI Pu...SSIMeetup
 
Classification techniques in data mining
Classification techniques in data miningClassification techniques in data mining
Classification techniques in data miningKamal Acharya
 
Building an open data platform with apache iceberg
Building an open data platform with apache icebergBuilding an open data platform with apache iceberg
Building an open data platform with apache icebergAlluxio, Inc.
 
Introduction to Python for Data Science
Introduction to Python for Data ScienceIntroduction to Python for Data Science
Introduction to Python for Data ScienceArc & Codementor
 
Introduction to django framework
Introduction to django frameworkIntroduction to django framework
Introduction to django frameworkKnoldus Inc.
 
K mean-clustering algorithm
K mean-clustering algorithmK mean-clustering algorithm
K mean-clustering algorithmparry prabhu
 

Was ist angesagt? (20)

Real-time Machine Learning with Hopsworks
Real-time Machine Learning with Hopsworks Real-time Machine Learning with Hopsworks
Real-time Machine Learning with Hopsworks
 
Rules of data mining
Rules of data miningRules of data mining
Rules of data mining
 
Web mining (structure mining)
Web mining (structure mining)Web mining (structure mining)
Web mining (structure mining)
 
Authentication & Authorization for Connected Mobile & Web Applications using ...
Authentication & Authorization for Connected Mobile & Web Applications using ...Authentication & Authorization for Connected Mobile & Web Applications using ...
Authentication & Authorization for Connected Mobile & Web Applications using ...
 
Cure, Clustering Algorithm
Cure, Clustering AlgorithmCure, Clustering Algorithm
Cure, Clustering Algorithm
 
How to Build a Recommendation Engine with Neo4j
How to Build a Recommendation Engine with Neo4jHow to Build a Recommendation Engine with Neo4j
How to Build a Recommendation Engine with Neo4j
 
Introduction to pandas
Introduction to pandasIntroduction to pandas
Introduction to pandas
 
3. mining frequent patterns
3. mining frequent patterns3. mining frequent patterns
3. mining frequent patterns
 
Association Rule Learning Part 1: Frequent Itemset Generation
Association Rule Learning Part 1: Frequent Itemset GenerationAssociation Rule Learning Part 1: Frequent Itemset Generation
Association Rule Learning Part 1: Frequent Itemset Generation
 
Tutorial on Web Scraping in Python
Tutorial on Web Scraping in PythonTutorial on Web Scraping in Python
Tutorial on Web Scraping in Python
 
Unit 3(advanced state modeling & interaction meodelling)
Unit  3(advanced state modeling & interaction meodelling)Unit  3(advanced state modeling & interaction meodelling)
Unit 3(advanced state modeling & interaction meodelling)
 
Decentralized Key Management (DKMS): An Essential Missing Piece of the SSI Pu...
Decentralized Key Management (DKMS): An Essential Missing Piece of the SSI Pu...Decentralized Key Management (DKMS): An Essential Missing Piece of the SSI Pu...
Decentralized Key Management (DKMS): An Essential Missing Piece of the SSI Pu...
 
Classification techniques in data mining
Classification techniques in data miningClassification techniques in data mining
Classification techniques in data mining
 
Servlets
ServletsServlets
Servlets
 
Building an open data platform with apache iceberg
Building an open data platform with apache icebergBuilding an open data platform with apache iceberg
Building an open data platform with apache iceberg
 
Introduction to Python for Data Science
Introduction to Python for Data ScienceIntroduction to Python for Data Science
Introduction to Python for Data Science
 
Introduction to django framework
Introduction to django frameworkIntroduction to django framework
Introduction to django framework
 
B+ tree.pptx
B+ tree.pptxB+ tree.pptx
B+ tree.pptx
 
Lect12 graph mining
Lect12 graph miningLect12 graph mining
Lect12 graph mining
 
K mean-clustering algorithm
K mean-clustering algorithmK mean-clustering algorithm
K mean-clustering algorithm
 

Andere mochten auch

Chapter 9: Access Control Management
Chapter 9: Access Control ManagementChapter 9: Access Control Management
Chapter 9: Access Control ManagementNada G.Youssef
 
Attribute Based Access Control
Attribute Based Access ControlAttribute Based Access Control
Attribute Based Access ControlChandra Sharma
 
Information Security Principles - Access Control
Information Security  Principles -  Access ControlInformation Security  Principles -  Access Control
Information Security Principles - Access Controlidingolay
 
Access Control Models: Controlling Resource Authorization
Access Control Models: Controlling Resource AuthorizationAccess Control Models: Controlling Resource Authorization
Access Control Models: Controlling Resource AuthorizationMark Niebergall
 
Attribute based access control
Attribute based access controlAttribute based access control
Attribute based access controlElimity
 
Multiple access control protocol
Multiple access control protocol Multiple access control protocol
Multiple access control protocol meenamunesh
 
Intro To Access Controls
Intro To Access ControlsIntro To Access Controls
Intro To Access ControlsHari Pudipeddi
 
An overview of access control
An overview of access controlAn overview of access control
An overview of access controlElimity
 
Access Control Presentation
Access Control PresentationAccess Control Presentation
Access Control PresentationWajahat Rajab
 

Andere mochten auch (11)

Chapter 9: Access Control Management
Chapter 9: Access Control ManagementChapter 9: Access Control Management
Chapter 9: Access Control Management
 
Attribute Based Access Control
Attribute Based Access ControlAttribute Based Access Control
Attribute Based Access Control
 
Access Controls
Access ControlsAccess Controls
Access Controls
 
Information Security Principles - Access Control
Information Security  Principles -  Access ControlInformation Security  Principles -  Access Control
Information Security Principles - Access Control
 
Access Control Models: Controlling Resource Authorization
Access Control Models: Controlling Resource AuthorizationAccess Control Models: Controlling Resource Authorization
Access Control Models: Controlling Resource Authorization
 
8 Access Control
8 Access Control8 Access Control
8 Access Control
 
Attribute based access control
Attribute based access controlAttribute based access control
Attribute based access control
 
Multiple access control protocol
Multiple access control protocol Multiple access control protocol
Multiple access control protocol
 
Intro To Access Controls
Intro To Access ControlsIntro To Access Controls
Intro To Access Controls
 
An overview of access control
An overview of access controlAn overview of access control
An overview of access control
 
Access Control Presentation
Access Control PresentationAccess Control Presentation
Access Control Presentation
 

Ähnlich wie Rule-Based Access-Control Evaluation through Model-Transformation

yagdao-0.3.1 hibernate guide
yagdao-0.3.1 hibernate guideyagdao-0.3.1 hibernate guide
yagdao-0.3.1 hibernate guideMert Can Akkan
 
yagdao-0.3.1 JPA guide
yagdao-0.3.1 JPA guideyagdao-0.3.1 JPA guide
yagdao-0.3.1 JPA guideMert Can Akkan
 
UnderstandingLDAP.ppt
UnderstandingLDAP.pptUnderstandingLDAP.ppt
UnderstandingLDAP.pptEfrizal Zaida
 
Does Your IBM i Security Meet the Bar for GDPR?
Does Your IBM i Security Meet the Bar for GDPR?Does Your IBM i Security Meet the Bar for GDPR?
Does Your IBM i Security Meet the Bar for GDPR?Precisely
 
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeOSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeNETWAYS
 
I Can See Clearly Now - Observing & understanding your Spring applications at...
I Can See Clearly Now - Observing & understanding your Spring applications at...I Can See Clearly Now - Observing & understanding your Spring applications at...
I Can See Clearly Now - Observing & understanding your Spring applications at...Joris Kuipers
 
Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...
Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...
Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...Lucidworks
 
Intelligent Monitoring
Intelligent MonitoringIntelligent Monitoring
Intelligent MonitoringIntelie
 
Application of Advance Encryption Algorithm to Implement Access to Sensitive ...
Application of Advance Encryption Algorithm to Implement Access to Sensitive ...Application of Advance Encryption Algorithm to Implement Access to Sensitive ...
Application of Advance Encryption Algorithm to Implement Access to Sensitive ...IRJET Journal
 
XRE demo presentation
XRE demo presentationXRE demo presentation
XRE demo presentationPablo Pazos
 
Qtp92 Presentation
Qtp92 PresentationQtp92 Presentation
Qtp92 Presentationa34sharm
 
Taming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeTaming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeMacoscope
 
Thesis presentation am lesas
Thesis presentation am lesasThesis presentation am lesas
Thesis presentation am lesasAnne-Marie Lesas
 
Introduction to JavaScrtipt
Introduction to JavaScrtiptIntroduction to JavaScrtipt
Introduction to JavaScrtiptsesharao puvvada
 
Requirements vs design vs runtime
Requirements vs design vs runtimeRequirements vs design vs runtime
Requirements vs design vs runtimebdemchak
 

Ähnlich wie Rule-Based Access-Control Evaluation through Model-Transformation (20)

Struts2 - 101
Struts2 - 101Struts2 - 101
Struts2 - 101
 
yagdao-0.3.1 hibernate guide
yagdao-0.3.1 hibernate guideyagdao-0.3.1 hibernate guide
yagdao-0.3.1 hibernate guide
 
yagdao-0.3.1 JPA guide
yagdao-0.3.1 JPA guideyagdao-0.3.1 JPA guide
yagdao-0.3.1 JPA guide
 
UnderstandingLDAP.ppt
UnderstandingLDAP.pptUnderstandingLDAP.ppt
UnderstandingLDAP.ppt
 
Struts2 notes
Struts2 notesStruts2 notes
Struts2 notes
 
Does Your IBM i Security Meet the Bar for GDPR?
Does Your IBM i Security Meet the Bar for GDPR?Does Your IBM i Security Meet the Bar for GDPR?
Does Your IBM i Security Meet the Bar for GDPR?
 
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at RuntimeOSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
OSMC 2021 | inspectIT Ocelot: Dynamic OpenTelemetry Instrumentation at Runtime
 
I Can See Clearly Now - Observing & understanding your Spring applications at...
I Can See Clearly Now - Observing & understanding your Spring applications at...I Can See Clearly Now - Observing & understanding your Spring applications at...
I Can See Clearly Now - Observing & understanding your Spring applications at...
 
Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...
Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...
Thoth - Real-time Solr Monitor and Search Analysis Engine: Presented by Damia...
 
Django
DjangoDjango
Django
 
Intelligent Monitoring
Intelligent MonitoringIntelligent Monitoring
Intelligent Monitoring
 
Application of Advance Encryption Algorithm to Implement Access to Sensitive ...
Application of Advance Encryption Algorithm to Implement Access to Sensitive ...Application of Advance Encryption Algorithm to Implement Access to Sensitive ...
Application of Advance Encryption Algorithm to Implement Access to Sensitive ...
 
XRE demo presentation
XRE demo presentationXRE demo presentation
XRE demo presentation
 
Qtp92 Presentation
Qtp92 PresentationQtp92 Presentation
Qtp92 Presentation
 
Struts
StrutsStruts
Struts
 
Taming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, MacoscopeTaming Core Data by Arek Holko, Macoscope
Taming Core Data by Arek Holko, Macoscope
 
Thesis presentation am lesas
Thesis presentation am lesasThesis presentation am lesas
Thesis presentation am lesas
 
Introduction to JavaScrtipt
Introduction to JavaScrtiptIntroduction to JavaScrtipt
Introduction to JavaScrtipt
 
Requirements vs design vs runtime
Requirements vs design vs runtimeRequirements vs design vs runtime
Requirements vs design vs runtime
 
Polyglot parallelism
Polyglot parallelismPolyglot parallelism
Polyglot parallelism
 

Mehr von Jordi Cabot

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?Jordi Cabot
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesJordi Cabot
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart softwareJordi Cabot
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineJordi Cabot
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...Jordi Cabot
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursJordi Cabot
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21Jordi Cabot
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringJordi Cabot
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformJordi Cabot
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingJordi Cabot
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosJordi Cabot
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Jordi Cabot
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Jordi Cabot
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsJordi Cabot
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsJordi Cabot
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Jordi Cabot
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Jordi Cabot
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformJordi Cabot
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesJordi Cabot
 

Mehr von Jordi Cabot (20)

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architectures
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
 
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programador...
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become Entrepreneurs
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven Engineering
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platform
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
 
Ingeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulosIngeniería del Software dirigida por modelos -Versión para incrédulos
Ingeniería del Software dirigida por modelos -Versión para incrédulos
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIs
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platform
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL Databases
 

Kürzlich hochgeladen

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 

Kürzlich hochgeladen (20)

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 

Rule-Based Access-Control Evaluation through Model-Transformation

  • 1. Runtime Support for Rule-Based Access-Control Evaluation through Model-Transformation Salvador Martínez - UOC & Mines Nantes-inria-Lina, Nantes, France Jokin García - IK4-IKERLAN, Arrasate, Spain Jordi Cabot - ICREA UOC, Barcelona, Spain
  • 2. “The purpose of access control is to limit the Actions or operations that a legitimate user of a computer system can perform. Access control constrains what a user can do [...]. In this way access control seeks to prevent activity that could lead to a breach of security”. Sandhu, Ravi S., and Pierangela Samarati. IEEE communications magazine 32.9 (1994): 40-48. Subject Action Object Permission Permission assignment Rule: mechanism to assign permissions to Subjects. Policy: a set of rules defining the security requirements of a system.
  • 3. Access-Control lists (ACL) Attribute-based Access-Control (ABAC) Discretionary Access-Control (DAC) Mandatory Access-Control (MAC) Identity-Based Access-Control (IBAC) Organization-based Access-Control (OrBAC) Role-based Access-Control (RBAC) Temporal Role-based Access-Control (TRBAC) Rule-based Access-Control (RAC)
  • 4. Infrastructure components for AC integration: Design time (static) Runtime (dinamic) Divided in:
  • 5. Infrastructure: nowadays as reference monitor 1. Language for policies and access requests. (too many?) 2. Evaluation engine (PDP). 3. Interface mechanism between access-requests and resources (PEP). (solved by AOP and the like)
  • 6. Problem? Focus is in Access-control languages and not in their evaluation. Lack of reusable PDPs. Existing “reusable” PDPs are tight to concrete access- control languages (e.g. XACML, EPAL). PDPs as black boxes, difficult to adapt to different situations. We are obliged to reinvent the wheel!!
  • 7. Requirements: what would be a better situation? Easy to use. Concrete syntax should be easy to adapt (without changing the rest) The policy representation should be explicit. The evaluation execution should be adaptable: add tracing, enhance outcome, etc. Efficiently capable to face complex escenarios (live evaluation): Lazy execution, incremental evaluation, reactivity...
  • 8. Request Decision Rule1 (conditions)-> decision Rule2 (conditions)-> decision Rule3 (conditions)-> decision Evaluation Engine Read policy Rule1 match request (with conditions) to decision Rule2 match request (with conditions) to decision Rule3 match request (with conditions) to decision Transformation Engine Read transformation Request Model Decision Model find rule evaluate conditions issue decision match request evaluate guards create decision model
  • 9. Approach: ● Basic ready-to-use workflow ● Advanced fully-tunable workflow
  • 10. Basic Workflow Policy PEP-PDP Decision Write security policy rules using policy language Write access requests using Access language read Issue access decision Rule r1 ( Subject S1 {attributes <'role' = 'Manager'>}, Object O1, Action Read ) -> Accept Rule r2 ( Subject S2 {attributes <'role' = 'Employee'>}, Object O1, Action Read ) -> Deny Access( Subject S1 {attributes <'role' = 'Manager'>}, Object O1, Action Read )
  • 11. Module SecurityPolicy create OUT: Evaluation from IN: Request; nodefault rule rule1 { from s:Req!Requests ( s.filter(Sequence{Tuple{id='S1', attributes = Sequence{Tuple{name = 'role', value = 'manager'}}}, Tuple{id='O1', attributes = Sequence{}}, Tuple{id='read', attributes = Sequence{}}})) to t : Evaluation!Evaluation ( effect <- 'Permit', ruleId <- 'Rule1', ruleOrder <- 1) } nodefault rule rule2 { from s:Req!Requests ( s.filter(Sequence{Tuple{id='S2', attributes = Sequence{Tuple{name = 'role', value = 'employee'}}}, Tuple{id='O1', attributes = Sequence{}}, Tuple{id='read', attributes = Sequence{}}})) to t : Evaluation!Evaluation ( effect <- 'Deny', ruleId <- 'Rule2', ruleOrder <- 2) }
  • 12. Security Policy Policy Model Trasf. Model HOT: Policy to Transformation Transformation code Request model Eval. model Request metamodel Evaluation metamodel Transf. metamodel RULE COMBINATION ALGORITHMS -first match -deny overrides -accept overrides -others... Refining Transf. refines implements Policy. metamodel 1 2 3 4 1 2 3 4 Language dependent Language independent injection Advanced Workflow
  • 13. Implementation with ATL (and other modeling tools)
  • 15. XText Grammar… Policy: rules+=Rule*; Rule returns Rule: 'Rule' id=ID '(' lhs=LHS ')' '->' rhs=RHS; LHS returns LHS: conditionfields += ConditionField ("," conditionfields += ConditionField)*; RHS returns RHS: decisions+=AccessDecision; ConditionField: (Subject | Object | Action) ( '{'('attributes' '<' attributes+=Attribute ( "," attributes+=Attribute)* '>' )? '}')? ; Attribute returns Attribute: {Attribute} name=EString '=' value=EString; ... ...
  • 16. 2. HOT: From policies to trans. specifications What the HOT transformation does: 1. Creates a transformation module from the policy root. 2. Creates OCL operations to factorize the encoding of access-request conditions into OCL predicates. 3. Creates an ATL rule for each access-control rule with: - Match : Request element - A guard calling the OCL operation that evaluates the conditions - Generates as output an Evaluation element with a decision (and some tracing info.)
  • 17. HOT: Looks… scary? It is at least tedious... rule Rule2MatchedRule { from s : Policy!Rule to mr : ATL!MatchedRule ( name <- s.id, isNoDefault <- true, isAbstract <- false, isRefining <- false, inPattern <- ip, outPattern <- op ), -- start from part ip : ATL!InPattern ( elements <- Sequence{ipe}, filter <- filter ), ipe : ATL!SimpleInPatternElement( varName <- 's', type <- ipet ), -- start filter filter: ATL!OperationCallExp ( operationName <- 'filter' ), fvar: ATL!VariableExp ( referredVariable <- ipe, appliedProperty <- filter ), fseq: ATL!SequenceExp( parentOperation <- filter ), fsub: ATL!TupleExp ( collection <- fseq --retrieve subject attributes ), fobj: ATL!TupleExp ( collection <- fseq --retrieve objetc attributes ), fact: ATL!TupleExp ( collection <- fseq --retrieve action attributes ), --end filter ipet : ATL!OclModelElement ( name <- 'Request', model <- om ), om : ATL!OclModel ( name <- 'Request' ), --end from part --begin to part op : ATL!OutPattern ( elements <- Sequence{ope} ), ope : ATL!SimpleOutPatternElement( varName <- 't', type <- opet, bindings <- Sequence{b1, b2} ), opet : ATL!OclModelElement ( name <- 'Evaluation', model <- om2 ), om2 : ATL!OclModel ( name <- 'Evaluation' ), --begin bindings b1 : ATL!Binding ( propertyName <- 'effect', value <- se1 ),
  • 18. HOT: Generating it from the Policy metamodel rule Rule2MatchedRule { from s : Policy!Rule to mr : ATL!MatchedRule ( name <- s.id, isNoDefault <- true, isAbstract <- false, isRefining <- false, inPattern <- ip, outPattern <- op Modular Acceleo templates Metamodel ATL HOT
  • 19. 3. Conflict Resolution create OUT: Evaluation refining IN: Evaluation; helper context Evaluation!Evaluation def:isFirstMatch():Boolean = let allEvaluations : Sequence(Evaluation!Evaluation) = Evaluation!Evaluation.allInstances() ->asSequence() in allEvaluations->iterate(p; y : Boolean = true | if p.request.toInteger() < self.request.toInteger() then false else if y = true then true else false endif endif); rule Evaluation { from s : Evaluation!Evaluation(s.isFirstMatch()) to t : Evaluation!Evaluation ()} Resolution algorithms as refining transformations on Evaluations: - First match - Deny overrides - Accept overrides - Others Completely independent from the policy language.
  • 21. Conclusions Model transformation engines can be used as AC evaluation engines. An important amount of work can be delegated to “generators”. Performance (often a problem in MDE) is in par with other implementations. Future work Multi-policy environments. Experimenting alternatives execution modes (Lazy, incremental, reactive, parallel). Validation and Verification of the policy by using MT V&V techniques.

Hinweis der Redaktion

  1. Behind the scenes, the policy we have shown is translated to this model transformation. In the following, we will se how. And this constitutes the advanced workflow.