Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

21
Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005

Transcript of Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Page 1: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Role Based VO Authorization Services

Ian Fisk

Gabriele Carcassi

July 20, 2005

Page 2: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Definition

• Role based VO authorization: an authorization decision based on an extended credential provided by the VO server that allows a user to have different sessions in which he obtains different privileges

Page 3: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Use case

• A VO compiles a list of users that can use data production resources

• When acting as data production coordinator, the user gets a “token” from the VO, that states he is authorized to act in that role

• The user presents that token to the site when submitting a job or initiating a file transfer

• The services maps the user to a different account based on the role

• The different account allows access to restricted resources or a different class of service (i.e. file access, higher queue priorities, special pool of machines, …)

Page 4: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Example: USATLAS at BNL• /atlas/usatlas/Role=production: few people (currently ~7) coordinate the

data production– run under the same account ‘usatlas1’ (allows to start/stop each other jobs)– ‘usatlas1’ have a very high priority on the farm

• /atlas/usatlas/Role=software: very few people (~3) that need to install remove software and debug applications

– special account ‘usatlas2’, write on NFS with group readable access (rest of atlas can run applications, but not modify them)

– highest priority, but on very few machines (~3) to be able to “skip” the queue (i.e. install/debug won’t wait in queue anymore)

• /atlas/usatlas: all analysis users (~90)– assigned an account from the pool (i.e. grid001): allows auditing for the site

• /atlas/lcg1: “international atlas” (~150)– Assigned an account from the pool with different gid (allows the batch system to

differentiate between ATLAS and USATLAS to set policy accordingly)• Rest of OSG

– Assigned an account from the pool, gid different for each VO– UNIX Group read/write == VO read/write

Page 5: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

0

The user, member of VO “foo”, wants to submit a job with a role “bar” to the gatekeeper of site “X”.

Page 6: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

1

The user run “voms-proxy-init –voms foo:/foo/Role=bar”, to generate his VO authorized proxy.

Page 7: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

2

Voms-proxy-init creates a normal user proxy, and then sends it to the foo VO VOMS server.

Page 8: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

3

The VOMS server returns the VOMS proxy, signed by the VO, that authorizes the user to act as “bar”.

Page 9: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

4

The user submits the job to site X

Page 10: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

5

The gatekeeper, through the globus call-out, delegates the PRIMA module to decide what local user account to should be used for the given GRID credential.

Page 11: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

6

Prima extracts the Proxy information and sends a message to asks GUMS which local account should be used. (The message is a SAML authorization request)

Page 12: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

7

GUMS consults its configuration, the local copy it keeps of the different database, and determines that the corresponding credential should be mapped to “foobar1”. GUMS returns a message, a SAML successful response with the obligation account=“foobar1”

Page 13: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

8

PRIMA interprets the response, and return the account “foobar1” to the gatekeeper.

Page 14: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

An example

User

voms-proxy-init

gums-host

VOMS

siteGUMSServer

Gatekeeper

grid3-user…txt

PRIMA

Submission site

Execution site

VOs

9

The gatekeeper sets the uid to “foobar1” and submits the job.

Note: a cron jobs on the gatekeeper contact GUMS to retrieve the inverse map needed for accounting.

Page 15: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Components: VOMS

• A VO service (one per VO) that provides extended proxies with signed group and role membership

• Vincenzo Ciaschini, INFN - Karoly Lorentey, et al

• Part of OSG 0.2.1 distribution, used in production

Page 16: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Components: PRIMA

• The gatekeeper callout module that is able to contact a site Authorization service to retrieve the mapping

• Markus Lorch, VT

• Part of OSG 0.2.1 distribution, used in production

Page 17: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Components: GUMS

• A site Authorization service that manages site-wide mappings

• Gabriele Carcassi, BNL

• Part of OSG 0.2.1 distribution, used in production

Page 18: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Components: VOMRS

• A VO service that manages the VO Registration process, and feeds the list of currently approved members to VOMS

• FNAL team

• Used in production

Page 19: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Storage AuthZ

siteGUMSServer

Gatekeeper

GRAMgridFTP

PRIMA

Execution site

SRM/dCache

gPLAZMAStorage

AuthorizationService

Page 20: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Components: Storage AuthZ

• An authorization service that provides the extra authorization attributes required by dCache (contacts GUMS to retrieve the mapping)

• Markus Lorch, VT

• Prototype

Page 21: Role Based VO Authorization Services Ian Fisk Gabriele Carcassi July 20, 2005.

Components: gPLAZMA

• The dCache Authorization infrastructure, which is able to contact the Storage Authorization Service

• Abhishek Singh Rana, UCSD et al.

• Distributed as part of dCache, Beta quality, in production at Fermi in a couple of months (probably less)