Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Apache HttpServer is configured to require all requests to the four DuraCloud web applications (/duradmin, /durastore, /duraservice, and /duraboss) go over https.
  2. Below are the https enforcement rules configured in Apache. The X-Forwarded-Proto header is provided by AWS Elastic Load Balancers.

    Code Block
      ###
      # ensure 'duradmin' uses https
      ###
    
      RewriteCond %{REQUEST_URI} /duradmin
      RewriteCond %{SERVER_PORT} !^443$
      RewriteRule ^(.*)$RewriteEngine On
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule !/status https://%{SERVER_NAME}$1 [R=301,L]
    
      ###
      # try to require https for 'durastore' & 'duraboss' for
      # external requests
      ###
    
      RewriteCond %{REQUEST_URI} ^(/durastore|/duraboss)
      RewriteCond %{SERVER_PORT} !^443$
      RewriteCond %{SERVER_NAME} !^localhost$
      RewriteCond %{SERVER_NAME} !^127.0.0.1$
      RewriteCond %{REMOTE_HOST} !^127.0.0.1$
      RewriteCond ${local-ip-map:%{REMOTE_HOST}} !^localhost$
      RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [R=301,L]
    [L,R]

Application Security Implementation

...

DuraCloud leverages Spring's mechanism for wiring AuthN/Z into an application across servlet url patterns.
The following access rules are placed across the durastore and duraservice REST-APIs:

Panel
titleInitialization REST Methods - Common across all applications

Action

Role

Is Initialized

ROLE_ANONYMOUS

Initialize

ROLE_ROOT

Initialize Security Users

ROLE_ROOT

Panel
titleDuraStore REST Methods

Action

Role

Get Stores

ROLE_USER

Get Spaces

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Get Space

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Get Space Properties

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Get Space ACLs

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Create Space

ROLE_ADMIN

Set Space Properties

ROLE_USER

Set Space ACLs

ROLE_ADMIN

Delete Space

ROLE_ADMIN

Get Content

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Get Content Properties

ROLE_ANONYMOUS if space ACL allows public read, else ROLE_USER

Store Content

ROLE_USER

Copy Content

ROLE_USER

Set Content Properties

ROLE_USER

Delete Content

ROLE_USER

Get Tasks

ROLE_ADMIN

Perform Task

ROLE_ADMIN

Perform Task (restore-content)ROLE_ROOT
Panel
titleDuraBoss REST Methods
Cancel Storage Report Schedule

Action

Role

Get Latest Storage Report

ROLE_ADMIN

Get Storage Report List

ROLE_ADMIN

Get Storage Report

ROLE_ADMIN

Get Storage Report Info

ROLE_ADMIN

Start Storage Report

ROLE_ROOT

Cancel Storage Report

ROLE_ROOT

Schedule Storage Report

ROLE_ROOT

ROLE_ROOT

Roles

The fixed set of users/roles listed below are provided in DuraCloud. Each role in the list below represents a super set of the privileges of those above it.

...