ation: cess Authoriz a Can Ac Only Ad Ensuring Her Files

Joy Ebertz eer tware Engin Sr Staff Sof @Split Agenda

• What is Authorization?

• Levels of Authorization

• Types of

• Typical Architecture What is Authorization?

And Other Definitions Authentication vs Authorization

Authentication (AuthN)

The or action of verifying the identity of a user or process. Authentication vs Authorization

Authorization (AuthZ)

The function of specifying access rights/privileges to resources. (i.e. defining the access policies) Authentication vs Authorization

Authentication (AuthN) Authentication vs Authorization

Authentication (AuthN)

Valid ID? Authentication vs Authorization

? Authentication (AuthN)

Valid ID? Authentication vs Authorization

? Authentication (AuthN)

Valid ID? Authorization (AuthZ) Authentication vs Authorization

? Authentication (AuthN)

Valid ID?

Authorization (AuthZ) is 21? Authentication vs Authorization

Access Control

The restriction of Access

Authorization Authentication vs Authorization

Access Management

The process of restricting of Access

Authorization Authentication vs Authorization

Identity and Access Management (IAM)

The framework of policies and technologies encompassing authentication and authorization.

Also called Identity Management (IdM)

Authorization Authentication vs Authorization

AWS Identity and Access Management (AWS IAM)

AWS’s customer-facing authorization management feature.

Authorization Authentication vs Authorization

Authorization (AuthZ)

Access Control Access Management Permissions

Authorization Levels of Authorization Levels of Authorization

• System and Infrastructure Authorization

• Customer-Facing Authorization Feature

• Application Level Authorization System and Infrastructure Authorization System and Infrastructure Authorization

? System and Infrastructure Authorization

? Prod ? System and Infrastructure Authorization

? Prod ? ? System and Infrastructure Authorization

? Prod ? ?

? System and Infrastructure Authorization Customer-Facing Feature Customer-Facing Feature Application Level Authorization

Is Grace on Does Grace A team that have access? Has access? Grace Is Graces’ Is this feature Organization Turned on for her Active? Org? Is Graces’ Account Active? Authorization Levels of Authorization

• System and Infrastructure Authorization

• Customer-Facing Authorization Feature

• Application Level Authorization Types of Access Control Types of Access Control

• Mandatory Access Control (MAC) • Discretionary Access Control (DAC) • Access Control Lists (ACLs) • Role Based Access Control (RBAC) • Attribute Based Access Control (ABAC) • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

• Mandatory Access Control (MAC) Who controls access • Discretionary Access Control (DAC) and/or policies? • Access Control Lists (ACLs) • Role Based Access Control (RBAC) • Attribute Based Access Control (ABAC) • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

Mandatory Access Control

MAC Is an level access control where the policies are controlled by a central policy administrator and users cannot override policies.

Authorization Types of Access Control

Discretionary Access Control DAC allows users in the system to grant access to objects. In many implementations, objects in the system have an owner* and owners control access to those objects.

*However, the formal definition doesn’t say anything Authorization about owners Types of Access Control: MAC & DAC

min Ad Grace Types of Access Control: MAC & DAC

Ada

min Ad Grace

Katherin e Types of Access Control: MAC & DAC

Ada

min Ad Grace

X any mp Co Katherin Dorthy e Types of Access Control: MAC & DAC

Ada

min Ad Owns Grace

X any mp Co Katherin Dorthy e Types of Access Control: MAC & DAC

Ada

min Ad Owns Grace

X any mp Co Katherin Dorthy e Types of Access Control: MAC & DAC

Ada

min Ad Owns Grace

X any mp Co Katherin Dorthy e Types of Access Control: MAC & DAC

Ada

min Ad Owns ate Grace Collabor herine with Kat

X any mp Co Katherin Dorthy e Types of Access Control: MAC & DAC

Ada

min Ad Owns Grace

X any mp Co Katherin Dorthy e Types of Access Control

• Mandatory Access Control (MAC) Who controls access • Discretionary Access Control (DAC) and/or policies? • Access Control Lists (ACLs) • Role Based Access Control (RBAC) • Attribute Based Access Control (ABAC) • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

• Mandatory Access Control (MAC) • Discretionary Access Control (DAC) • Access Control Lists (ACLs) How are the • Role Based Access Control (RBAC) policies • Attribute Based Access Control (ABAC) modeled? • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

• Mandatory Access Control (MAC) Who • Discretionary Access Control (DAC) • Access Control Lists (ACLs) • Role Based Access Control (RBAC) How • Attribute Based Access Control (ABAC) • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

• Mandatory Access Control (MAC) • Discretionary Access Control (DAC) • Access Control Lists (ACLs) • Role Based Access Control (RBAC) • Attribute Based Access Control (ABAC) • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

• Mandatory Access Control (MAC) • Discretionary Access Control (DAC) • Access Control Lists (ACLs) • Role Based Access Control (RBAC) • Attribute Based Access Control (ABAC) • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

• Mandatory Access Control (MAC) • Discretionary Access Control (DAC) • Access Control Lists (ACLs) • Role Based Access Control (RBAC) • Attribute Based Access Control (ABAC) • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

• Mandatory Access Control (MAC) • Discretionary Access Control (DAC) • Access Control Lists (ACLs) • Role Based Access Control (RBAC) • Attribute Based Access Control (ABAC) • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

• Mandatory Access Control (MAC) • Discretionary Access Control (DAC) • Access Control Lists (ACLs) How are the • Role Based Access Control (RBAC) policies • Attribute Based Access Control (ABAC) modeled? • Rule-Set Based Access Control (RSBAC) • Policy Based Access Control (PBAC) Types of Access Control

ACLs ACLs (Access Control Lists)

Ada: read,write

Grace: read Ada: read

Grace: read

Authorization ACLs: Fast Lookup

ID: 23

ID: 23 Ada: read,write Grace: read

Read folder 23?

Authorization ACLs: Storage Explosion

ID: 72 ID: 23 ID: 23 ID: 67 ID: 51 ID: 91 ID: 45 ID: 91Ada: read,write ID: 72 Ada: read,write Ada: read,write Ada:ID: 345 read,write Ada: read,writeID: 123 ID: 51 ID: 65 Ada:ID:Grace: 65read,write read Grace: read Grace: read ID:Grace: 12 read Grace: readAda:Ada: read,write read,write Grace:Ada: read read,write Ada: read,write Grace:Grace: read read Grace: read Grace: read ACLs: Slow Update

ID: 23

Ada: read,write ID: 23 Grace: read

Authorization ACLs: Slow Update

ID: 23

Ada: read,write

Grace: read Types of Access Control

RBAC RBAC (Role Based Access Control) Roles Permissions

Read Engineer Grace

Ada Write Manager

Delete RBAC: Fast Update Roles Permissions

Read Engineer Grace

Ada Write Manager

Delete RBAC cons: Role Explosion

F1 F2 Ada Read, Write Read

Grace Read Read

Ada Can edit F1 Can edit F2

Roles

Can read F1 Can read F2 Grace RBAC cons: Role Explosion

F1 F2 Ada Read, Write Read

Grace Read Read

Can read Ada F1 and F2 Can read F1 Roles

Grace Can edit F1 Types of Access Control

ABAC ABAC (Attribute Based Access Control)

ID: 23

Policies Read folder 23?

Authorization ABAC: Requests & Policies

User with ID 123 wants to VIEW file with ID 456

If the action is VIEW And the enterprise of the resource is the same as the enterprise of the subject Then PERMIT access Else DENY ABAC: Immediate Update

ID: 23

Policies Read folder 23?

Authorization ABAC: Handles Complex Use-cases

DELETE file?

Authorization ABAC: Slow Lookup, Dependencies

Policies

Authorization Our Choice: ABAC Why ABAC?

• Industry standard • No permission update lag • Space efficient • Best fits our use-cases - ACLs/RBAC too simple • Because we want to allow access to objects per user, we would have too many lists/roles • Can still expose simpler permissions features to customers Typical Architecture Typical Architecture

API Service Gateway Some URL

Service

Authorization Typical Architecture: API Gateway

API Service Gateway Some URL

Service

Authz Authorization Service Typical Architecture: API Gateway

API Service Gateway Some URL

Authz Service Service

Authorization Typical Architecture: Separate Service

API Service Gateway Some Authz URL Service

Service

Authorization Typical Architecture: Side Car

API Gateway Service Some URL Authz Service

Service

Authz Authorization Service Implementation at Box Authz Solution at Box

PDP API Service Policies Gateway Some URL PIP PIP

PEP Service Authz Solution at Box

PDP API Service Policies Gateway Some URL PIP PIP

PEP Service Authz Solution at Box

PDP API Service Policies Gateway Some URL PIP PIP

PEP Service

Balana Authz Solution at Box

PDP API Service Policies Gateway Some URL PIP PIP

PEP Service

• Jersey filter chain • Jackson Annotations • Custom Library u! Thank Yo

tz Joy Eber @jkebertz