authz-patterns

Download Report

Transcript authz-patterns

Access Control Patterns & Practices
with
WSO2 Middleware
Prabath Siriwardena
About Me
• Director of Security Architecture at WSO2
• Leads WSO2 Identity Server – an open source identity and
entitlement management product.
• Apache Axis2/Rampart committer / PMC
• A member of OASIS Identity Metasystem Interoperability (IMI)
TC, OASIS eXtensible Access Control Markup Language
(XACML) TC and OASIS Security Services (SAML) TC.
• Twitter : @prabath
• Email : [email protected]
• Blog : http://blog.facilelogin.com
• LinkedIn : http://www.linkedin.com/in/prabathsiriwardena
Discretionary Access Control (DAC)
vs.
Mandatory Access Control (MAC)
With the Discretionary Access Control,
the user can be the owner of the data
and at his discretion can transfer the
rights to another user.
With Mandatory Access Control, only
designated users are allowed to grant
rights and, users cannot transfer them.
All WSO2 Carbon based products are
based on Mandatory Access Control.
Group is a collection of Users - while a
Role is a collection of permissions.
Authorization Table
vs.
Access Control Lists
vs.
Capabilities
Authorization Table is a three column
table with subject, action and resource.
With Access Control Lists, each resource is
associated with a list, indicating, for each
subject, the actions that the subject can exercise
on the resource.
With Capabilities, each subject has an
associated list, called capability list, indicating,
for each resource, the accesses that the user is
allowed to exercise on the resource.
Access Control List is resource driven
while capabilities are subject driven.
With policy based access control we
can have authorization policies with a
fine granularity.
Capabilities and Access Control Lists
can be dynamically derived from
policies.
XACML is the de facto standard for
policy based access control.
XACML provides a reference
architecture, a request response
protocol and a policy language.
XACML Reference Architecture
Policy Administration
Point (PAP)
Policy Decision Point
(PDP)
Policy Store
Policy Enforcement Point
(PEP)
Policy Information Point
(PIP)
XACML with Capabilities (WS-Trust)
Hierarchical Resource Profile
WSO2 Identity Server
(XACML PDP)
XACML
Request
XACML Response
WSO2 Identity Server
(STS)
WSO2 Application Server
(SOAP Service)
SAML token with Authentication
and
Authorization Assertions (Capabilities)
SAML token with
Authentication
and
Authorization Assertion
+
Service Request
SAML token request
Client Application
WSO2 Identity Server
(XACML PDP)
XACML
Request
XACML with Capabilities (WS-Trust)
Hierarchical Resource Profile
XACML Response
WSO2 Identity Server
(SAML2 IdP)
WSO2 Application Server
(Web Application)
SAML token with Authentication
and
Authorization Assertion (Capabilities)
Browser Redirect with SAML Request
Unauthenticated Request
Role Based Access Control
WSO2 Application Server
(SOAP Service)
Client Application
Service Request + Credentials
WSO2 ESB
(Policy Enforcement
Point)
RBAC
WSO2 ESB as the XACML PEP (SOAP and REST)
WSO2 Identity Server
(XACML PDP)
XACML Response
WSO2 Application Server
(SOAP Service)
XACML Request
WSO2 ESB
(Policy Enforcement
Point)
Client Application
Service Request + Credentials
XACML PEP as a Servlet Filter
WSO2 Identity Server
(XACML PDP)
XACML Response
XACML Request
XACML
Servlet Filter
Client Application
WSO2 Application Server
Service Request + Credentials
OAuth + XACML
WSO2 Identity Server
(OAuth Authorization
Server)
XACML
Request
API Gateway
Validate()
XACML Response
WSO2 Identity Server
(XACML PDP)
Access
Token
Client Application
Authorization with External IdPs (Role Mapping)
WSO2 Identity Server
IdP
Groups
External SAML2 IdP
(Salesforce)
SAML token with Authentication
and Attribute Assertions with IdP groups
Web App
roles
WSO2 Application Server
(Web Application)
Browser Redirect with SAML Request
Unauthenticated Request
XACML Multiple Decisions and
Application Specific Roles
Liferay Portal
XACML Request
WSO2 Identity Server
(XAML PDP)
XACML Response
Login
lean . enterprise . middleware