SlideShare a Scribd company logo
1 of 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!!

More Related Content

What's hot

Scanning web vulnerabilities
Scanning web vulnerabilitiesScanning web vulnerabilities
Scanning web vulnerabilitiesMohit Dholakiya
 
application layer protocols
application layer protocolsapplication layer protocols
application layer protocolsbhavanatmithun
 
Intrusion Detection with Neural Networks
Intrusion Detection with Neural NetworksIntrusion Detection with Neural Networks
Intrusion Detection with Neural Networksantoniomorancardenas
 
Lecture_10_AML_in_Network_Intrusion_Detection (3).pptx
Lecture_10_AML_in_Network_Intrusion_Detection (3).pptxLecture_10_AML_in_Network_Intrusion_Detection (3).pptx
Lecture_10_AML_in_Network_Intrusion_Detection (3).pptxAditi943522
 
Information Security Principles - Access Control
Information Security  Principles -  Access ControlInformation Security  Principles -  Access Control
Information Security Principles - Access Controlidingolay
 
Lecture 10 intruders
Lecture 10 intrudersLecture 10 intruders
Lecture 10 intrudersrajakhurram
 
Concours Trailblazers be Certified
Concours Trailblazers be Certified Concours Trailblazers be Certified
Concours Trailblazers be Certified Doria Hamelryk
 
Incident response methodology
Incident response methodologyIncident response methodology
Incident response methodologyPiyush Jain
 
Deep learning approach for network intrusion detection system
Deep learning approach for network intrusion detection systemDeep learning approach for network intrusion detection system
Deep learning approach for network intrusion detection systemAvinash Kumar
 

What's hot (20)

Scanning web vulnerabilities
Scanning web vulnerabilitiesScanning web vulnerabilities
Scanning web vulnerabilities
 
Info hiding
Info hidingInfo hiding
Info hiding
 
application layer protocols
application layer protocolsapplication layer protocols
application layer protocols
 
Intrusion Detection with Neural Networks
Intrusion Detection with Neural NetworksIntrusion Detection with Neural Networks
Intrusion Detection with Neural Networks
 
Introduction to YARA rules
Introduction to YARA rulesIntroduction to YARA rules
Introduction to YARA rules
 
Windows Forensics
Windows ForensicsWindows Forensics
Windows Forensics
 
Visual Cryptography
Visual CryptographyVisual Cryptography
Visual Cryptography
 
kerberos
kerberoskerberos
kerberos
 
Lecture_10_AML_in_Network_Intrusion_Detection (3).pptx
Lecture_10_AML_in_Network_Intrusion_Detection (3).pptxLecture_10_AML_in_Network_Intrusion_Detection (3).pptx
Lecture_10_AML_in_Network_Intrusion_Detection (3).pptx
 
Kerberos protocol
Kerberos protocolKerberos protocol
Kerberos protocol
 
Kerberos
KerberosKerberos
Kerberos
 
Authentication techniques
Authentication techniquesAuthentication techniques
Authentication techniques
 
3D password
3D password3D password
3D password
 
Information Security Principles - Access Control
Information Security  Principles -  Access ControlInformation Security  Principles -  Access Control
Information Security Principles - Access Control
 
Lecture 10 intruders
Lecture 10 intrudersLecture 10 intruders
Lecture 10 intruders
 
Types of cyber attacks
Types of cyber attacksTypes of cyber attacks
Types of cyber attacks
 
Concours Trailblazers be Certified
Concours Trailblazers be Certified Concours Trailblazers be Certified
Concours Trailblazers be Certified
 
Incident response methodology
Incident response methodologyIncident response methodology
Incident response methodology
 
OpenID Connect Federation
OpenID Connect FederationOpenID Connect Federation
OpenID Connect Federation
 
Deep learning approach for network intrusion detection system
Deep learning approach for network intrusion detection systemDeep learning approach for network intrusion detection system
Deep learning approach for network intrusion detection system
 

Viewers also liked

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
 
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
 

Viewers also liked (10)

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
 
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
 

Similar to 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
 

Similar to 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
 

More from 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
 

More from 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
 

Recently uploaded

SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 

Recently uploaded (20)

SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 

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.

Editor's Notes

  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.