270 likes | 482 Views
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
E N D
Access Control Patterns & Practiceswith 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 : prabath@apache.org • 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)
WSO2 Identity Server (XACML PDP) XACML with Capabilities (WS-Trust) Hierarchical Resource Profile WSO2 Application Server (SOAP Service) XACML Request XACML Response WSO2 Identity Server (STS) 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 with Capabilities (WS-Trust) Hierarchical Resource Profile XACML Request 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 WSO2 ESB (Policy Enforcement Point) Service Request + Credentials RBAC
WSO2 ESB as the XACML PEP (SOAP and REST) WSO2 Identity Server (XACML PDP) WSO2 Application Server (SOAP Service) XACML Response XACML Request Client Application WSO2 ESB (Policy Enforcement Point) Service Request + Credentials
XACML PEP as a Servlet Filter WSO2 Identity Server (XACML PDP) XACML Response XACML Request Client Application WSO2 Application Server XACML Servlet Filter Service Request + Credentials
OAuth + XACML WSO2 Identity Server (OAuth Authorization Server) API Gateway Validate() XACML Request Access Token XACML Response WSO2 Identity Server (XACML PDP) Client Application
Authorization with External IdPs (Role Mapping) WSO2 Identity Server IdP Groups Web App roles External SAML2 IdP (Salesforce) WSO2 Application Server (Web Application) SAML token with Authentication and Attribute Assertions with IdP groups Browser Redirect with SAML Request Unauthenticated Request
Liferay Portal XACML Multiple Decisions and Application Specific Roles WSO2 Identity Server (XAML PDP) XACML Request XACML Response Login