INDIGO DataCloud INDIGO AAI An overview and status update - - PowerPoint PPT Presentation

indigo datacloud indigo aai an overview and status update
SMART_READER_LITE
LIVE PREVIEW

INDIGO DataCloud INDIGO AAI An overview and status update - - PowerPoint PPT Presentation

INDIGO DataCloud INDIGO AAI An overview and status update RIA-653549 Andrea Ceccanti (INFN) on behalf of the INDIGO AAI Task Force indigo-aai-tf@lists.indigo-datacloud.org INDIGO Datacloud An H2020 project approved


slide-1
SLIDE 1

INDIGO – DataCloud



 INDIGO AAI An overview and status update

  • Andrea Ceccanti (INFN)
  • n behalf of the INDIGO AAI Task Force
  • indigo-aai-tf@lists.indigo-datacloud.org

RIA-653549

slide-2
SLIDE 2

INDIGO Datacloud

▪An H2020 project approved in January

2015 in the EINFRA-1-2014 call

  • 11 M€
  • 30 Months (Apr. 2015 -> Sept. 2017)

▪Who: 26 partners from 11 European

countries

▪What: develop an open source platform

for computing and data targeted at multi-disciplinary scientific communities

▪Where: provisioned over hybrid (public

and private) e-infrastructures

2

slide-3
SLIDE 3

INDIGO objectives

▪Provide seamless access to data and computing

provisioned over private, public or hybrid e- infrastuctures

▪Leverage and extend current Cloud technologies, fill

the gaps, provide tools and services to support scientists, software developers, resource providers and e-infrastructures for the efficient exploitation of computing, data and network technologies:

Better software for better science

3

slide-4
SLIDE 4

The INDIGO approach

▪Based on Open Source solutions

  • widely supported by big communities

▪whenever possible exploit general solutions instead of

specific tools/services

  • increased sustainability

▪ensure that the framework offered to final users, as

well as to developers, will have a low learning curve

  • ease of adoption and integration

4

slide-5
SLIDE 5

Example use case scenario

5

Computational Portal “as a service”

slide-6
SLIDE 6

Example use case scenario

Computational Portal “as a service”

▪A scientific community has an application (or a set of

them) that should be accessed through a portal, and:

  • Requires a dynamically instantiated batch queue as a back-end
  • Exhibits unpredictable workload
  • Supports multiple access profiles
  • Should be deployable through Cloud providers, with features

such as redundancy and elasticity

  • May require cloud-bursting to other infrastructures
  • Should support access to external reference data and data

local to the application, which must be accessible in a distributed way

6

slide-7
SLIDE 7

INDIGO-DataCloud RIA-653549

The AAI problem

▪Heterogeneous authentication/authorization

mechanisms

  • but we need common AAI ground, persistent identifiers,

support for delegation, easy integration in services

▪To be effective, security should not impact usability

  • we need support for federated identities

▪We need AAI solutions that allow our users to manage

authentication and authorization on dynamically provisioned resources in a secure way

  • Without being security experts!

7

slide-8
SLIDE 8

INDIGO-DataCloud RIA-653549

INDIGO AAI: approach

▪How can we have common AuthN and AuthZ

primitives that “just work” across several distributed infrastructures?

▪Which tools should we provide to our users so that

they have complete control on how AuthN and AuthZ is configured and performed on the resources (assembled from distributed providers) they will use for their research?

▪How do we avoid reinventing the wheel? How do we

exploit what is already available, leverage existing standards and ensure that what we develop is sustainable?

8

slide-9
SLIDE 9

INDIGO AAI: main challenges

▪Authentication/Identity

  • Supporting federated authN mechanism
  • Persistent INDIGO identifier
  • Offline access

▪Authorization

  • Orthogonal to AuthN
  • Attribute-based
  • Dynamic
  • Consistent across heterogeneous infrastructure

▪Delegation

9

slide-10
SLIDE 10

INDIGO AAI architecture

10

slide-11
SLIDE 11

Authentication

11

Slide courtesy of Paul Millar

slide-12
SLIDE 12

Identity layer challenges

▪Support multiple AuthN mechanisms

  • SAML, OpenID-Connect, X.509

▪Harmonise Identities

▪ One INDIGO identity linked to multiple user authN mechanisms ▪ Persistent INDIGO identity identifier

▪Link group membership and other attributes to

INDIGO identity

▪ similarly to what VOMS does with VO attributes and X.509

certificates, but in a way that is orthogonal to the AuthN mechanism used

12

slide-13
SLIDE 13

Identity in INDIGO

▪The INDIGO identity layer

speaks OpenID-connect

▪The INDIGO Identity and

Access Management Service is an OIDC provider

▪ Authenticates users with

supported AuthN mechanism

▪ SAML, X.509, OIDC

  • Provides to RP access to

identity information through standard OIDC interfaces

▪Can be seen as a first

credential translation step

13

slide-14
SLIDE 14

Why OpenID connect

▪Standard and widely adopted in industry

  • Don’t reinvent the wheel

▪Reduced integration complexity in relying services ▪Lots of things we need are covered and standardized

  • Dynamic Registration of clients/relying parties
  • Token revocation
  • Discovery
  • Session management
  • Distributed/Aggregated claims

▪Mobile-friendly

14

slide-15
SLIDE 15

INDIGO AuthN flow

Marcus wants to access some service at INDIGO service

Indigo IAM INDIGO Service Home IdP Access service

slide-16
SLIDE 16

INDIGO AuthN flow

INDIGO Services sees that Marcus is not authenticated, and redirects him to INDIGO IAM for authentication

Indigo IAM INDIGO Service Home IdP Access service

slide-17
SLIDE 17

INDIGO AuthN flow

Indigo IAM INDIGO Service Home IdP redirect to IAM for AuthN

slide-18
SLIDE 18

INDIGO AuthN flow

IAM lets Marcus choose how he wants to authenticate Marcus chooses his Home IdP

Indigo IAM INDIGO Service Home IdP redirect to IAM for AuthN

slide-19
SLIDE 19

INDIGO AuthN flow

Indigo IAM INDIGO Service Home IdP redirect to home IdP for AuthN

slide-20
SLIDE 20

INDIGO AuthN flow

Home IdP authenticates Marcus and sends back an AuthN assertion

Indigo IAM INDIGO Service Home IdP

slide-21
SLIDE 21

INDIGO AuthN flow

IAM validates assertion. Marcus is now authenticated at IAM.

Indigo IAM INDIGO Service Home IdP

slide-22
SLIDE 22

INDIGO AuthN flow

Indigo IAM INDIGO Service Home IdP send back to IS OIDC authz code

slide-23
SLIDE 23

INDIGO AuthN flow

Indigo IAM INDIGO Service Home IdP exchange authZ code for OIDC ID-token access token

slide-24
SLIDE 24

INDIGO AuthN flow

IS validates ID-Token. Marcus is now authenticated at IS

Indigo IAM INDIGO Service Home IdP

slide-25
SLIDE 25

INDIGO AuthN flow

IS requests additional profile information about Marcus from IAM user info endpoint

Indigo IAM INDIGO Service Home IdP

slide-26
SLIDE 26

IAM Status

▪Implementation based on the Mitre OpenID connect

server reference implementation

▪https://github.com/mitreid-connect/OpenID-Connect-

Java-Spring-Server

  • Certified open source OIDC server implementation
  • Actively maintained

▪ also used as the base of the Shibboleth IdP OIDC implementation

  • Main OIDC functionality covered

▪ Token issuing and management, Client registration/discovery, Scope

management

▪ Simple and usable management web application provided

26

slide-27
SLIDE 27

IAM Authentication status

▪OAuth client/token/consent management done ▪Local username/password authentication done ▪External SAML IdP authentication done ▪Identity orthogonal to AuthN done ▪Group information available via OIDC done ▪External OIDC IdP authentication in progress ▪Certificate authentication in progress ▪AuthN mechanism exposed via OIDC in progress

27

slide-28
SLIDE 28

IAM Authentication status

▪OAuth client/token/consent management done ▪Local username/password authentication done ▪External SAML IdP authentication done ▪Identity orthogonal to AuthN done ▪Group information available via OIDC done ▪External OIDC IdP authentication in progress ▪Certificate authentication in progress ▪AuthN mechanism exposed via OIDC in progress

27

ETA: June release

slide-29
SLIDE 29

Authorization

28

Slide courtesy of Paul Millar

slide-30
SLIDE 30

Authorization challenges

▪Consistency

  • Provide solutions to dynamically define, propagate, compose and

enforce authorization policies on resources at various levels of the infrastructure

▪Scalability

  • in a scalable way

▪Manageability

  • supporting cross-organizational user, group and privilege

management as well as enrollment and registration flows

▪Integration

  • in a way that produces minimal integration friction in services

29

slide-31
SLIDE 31

Authorization challenges

▪Consistency

  • Provide solutions to dynamically define, propagate, compose and

enforce authorization policies on resources at various levels of the infrastructure

▪Scalability

  • in a scalable way

▪Manageability

  • supporting cross-organizational user, group and privilege

management as well as enrollment and registration flows

▪Integration

  • in a way that produces minimal integration friction in services

30

slide-32
SLIDE 32

AuthZ in INDIGO: OAuth 2

▪A standard framework for

delegated authorization to access HTTP protected resources

▪Decouples AuthZ from

AuthN

▪Natural solution for

delegated authorization in HTTP services

31

slide-33
SLIDE 33

Authorization in INDIGO

▪INDIGO services are HTTP APIs

protected by an OAuth Authorization Service

▪In order to access resources, a

client needs an access token

▪OAuth scopes used to

  • target the token to specific APIs/

services

  • provide hints for finer grained authZ

▪Identity layer provides other

attributes as base for AuthZ decisions

32

slide-34
SLIDE 34

Scope-based authorization

▪Each service registers the supported scopes when it

registers at the authorization server (AS)

▪The AS maintains policies that determine which client

is authorized to request a given scope

▪The request for a given scope is authorized by the

user through the OAuth consent mechanism

  • but is possible to define trusted, whitelisted client services for

which user consent is not requested

▪Authorization is enforced at the target service

considering scopes and other relevant information

33

slide-35
SLIDE 35

Scope-based authorization

Indigo IAM

SG

Science Gateway Job Scheduler Storage Service Registered Scopes

js:submit_job js:cancel_job ss:read ss:write

Access SG

slide-36
SLIDE 36

Scope-based authorization

Indigo IAM

SG

Science Gateway Registered Scopes

js:submit_job js:cancel_job ss:read ss:write

Redirect for AuthN & consent Job Scheduler Storage Service

slide-37
SLIDE 37

Scope-based authorization

Indigo IAM

SG

Science Gateway Registered Scopes

js:submit_job js:cancel_job ss:read ss:write

Redirect for AuthN & consent

Authorization requested

Scientific Gateway would like to: know your identity

submit jobs on JS on your behalf read files from SS on your behalf write files on SS on your behalf

Accept Cancel

Storage Service

slide-38
SLIDE 38

Scope-based authorization

Indigo IAM

SG

Science Gateway Registered Scopes

js:submit_job js:cancel_job ss:read ss:write

Returned id token & access token Job Scheduler Storage Service

slide-39
SLIDE 39

Scope-based authorization

Indigo IAM

SG

Science Gateway Registered Scopes

js:submit_job js:cancel_job ss:read ss:write

Job Scheduler Storage Service Submit job

slide-40
SLIDE 40

Scope-based authorization

Indigo IAM

SG

Science Gateway Registered Scopes

js:submit_job js:cancel_job ss:read ss:write

Job Scheduler Storage Service Submit job

Job scheduling is authorized by the js:submit_job scope

slide-41
SLIDE 41

Scope-based authorization

Indigo IAM

SG

Science Gateway Registered Scopes

js:submit_job js:cancel_job ss:read ss:write

Job Scheduler Storage Service Read job

  • utput data
slide-42
SLIDE 42

Scope-based authorization

Indigo IAM

SG

Science Gateway Registered Scopes

js:submit_job js:cancel_job ss:read ss:write

Job Scheduler Storage Service

Data access is authorized by the ss:read scope

Read job

  • utput data
slide-43
SLIDE 43

Fine-grained authorization

▪OAuth scope-based AuthZ provides a first coarse

grained authorization step

▪Finer-grained authorization can be implemented at

services on top of this step taking into account

  • User identity attributes
  • Service authorization policies
  • Collaboration/VO policies

▪Consistent authorization across services is enabled by

callouts to the Argus authorization service

40

slide-44
SLIDE 44

Fine-grained authorization

Indigo IAM

SG

Science Gateway Read job

  • utput data

Authz Service Authz Service

Storage service

Policy distribution AuthZ Callout Local Policies Collaboration Policies

slide-45
SLIDE 45

Authorization status

▪OAuth2 authorization

  • First level of access control; Mitre OAuth2 implementation

already provides most of what is needed for INDIGO use cases

  • Some development now focused on “filling the gaps”

▪ e.g., providing the concept of service groups, in order to simplify

OAuth scope management

▪Fine-grained attribute-based authorization

  • Implemented @ services on attributes provided by the OIDC

identity layer; really service-dependent

  • Consistency across services via callout to Argus is the scope
  • f the second year of the project

42

slide-46
SLIDE 46

Delegation

43

slide-47
SLIDE 47

OAuth delegation

44

slide-48
SLIDE 48

OAuth chained delegation?

45

slide-49
SLIDE 49

OAuth token exchange

46

▪OAuth flow to

implement chained delegation among services

  • ▪Under standardization

▪Supports impersonation

and delegation

slide-50
SLIDE 50

IAM OAuth token exchange

▪MitreID connect already has some non-standard form

  • f chained delegation, which however does not (in its

current form) solve our use cases

  • i.e. delegate offline access to identity information across

services

▪Plan is to extend MitreID connect implementation with

a subset of the OAuth token exchange standard

  • i.e., the minimum functionality needed to support our use

cases

  • ▪ETA: June

47

slide-51
SLIDE 51

The Token Translation Service

▪What about integration with

services that do not speak OpenID- connect?

▪The INDIGO Token Translation

Service (TTS)

  • maps INDIGO identity & attributes to

external service credentials

  • provides an extensible plugin-based

architecture, and will initially support translations to

▪ ssh keypair ▪ S3 keys ▪ X.509 certificate

48

slide-52
SLIDE 52

Timeline

▪Architectural and design deliverables done

  • See https://www.indigo-datacloud.eu/documents-deliverables

for all INDIGO deliverables

  • ▪Development activities ongoing
  • ▪First official INDIGO release expected end of July,

2016

  • but we will start make available services as soon as they are

ready enough to be tested

49

slide-53
SLIDE 53

Thanks! Questions?

  • indigo-aai-tf@lists.indigo-datacloud.eu
  • 50