egi-inspire · egi-inspire voms-aware identity service for openstack a. l opez garc a, e. fern...

26
EGI-InSPIRE VOMS-aware identity service for Openstack A. L´ opez Garc´ ıa, E. Fern´ andez, M. Puel Instituto de F´ ısica de Cantabria (CSIC-UC) — Centre de Calcul IN2P3 (CNRS) April 9, 2013 1 EGI-InSPIRE RI-261323 www.egi.eu

Upload: others

Post on 24-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

  • EGI-InSPIRE

    VOMS-aware identity service forOpenstack

    A. López Garćıa, E. Fernández, M. Puel

    Instituto de F́ısica de Cantabria (CSIC-UC) —Centre de Calcul IN2P3 (CNRS)

    April 9, 2013 1

    EGI-InSPIRE RI-261323 www.egi.eu

  • Outline

    BackgroundOpenstack ArchitectureFederated Cloud Identity

    VOMS AuthN in Openstack

    Future Work

    April 9, 2013 2

    EGI-InSPIRE RI-261323 www.egi.eu

  • Outline

    BackgroundOpenstack ArchitectureFederated Cloud Identity

    VOMS AuthN in Openstack

    Future Work

    April 9, 2013 3

    EGI-InSPIRE RI-261323 www.egi.eu

  • Introduction to Openstack Architecture

    Openstack is based on several components

    compute service (nova)

    store service (swift)

    image service (glance)

    identity service (keystone)

    block storage service (cinder)

    network service (quantum)

    dashboard service (horizon)

    April 9, 2013 4

    EGI-InSPIRE RI-261323 www.egi.eu

  • Introduction to Openstack Architecture

    Openstack is based on several components

    compute service (nova) Spawns and manages the instances.

    store service (swift)

    image service (glance)

    identity service (keystone)

    block storage service (cinder)

    network service (quantum)

    dashboard service (horizon)

    April 9, 2013 4

    EGI-InSPIRE RI-261323 www.egi.eu

  • Introduction to Openstack Architecture

    Openstack is based on several components

    compute service (nova) Spawns and manages the instances.

    store service (swift) Object storage.

    image service (glance)

    identity service (keystone)

    block storage service (cinder)

    network service (quantum)

    dashboard service (horizon)

    April 9, 2013 4

    EGI-InSPIRE RI-261323 www.egi.eu

  • Introduction to Openstack Architecture

    Openstack is based on several components

    compute service (nova) Spawns and manages the instances.

    store service (swift) Object storage.

    image service (glance) Image catalog, store and retrieval.

    identity service (keystone)

    block storage service (cinder)

    network service (quantum)

    dashboard service (horizon)

    April 9, 2013 4

    EGI-InSPIRE RI-261323 www.egi.eu

  • Introduction to Openstack Architecture

    Openstack is based on several components

    compute service (nova) Spawns and manages the instances.

    store service (swift) Object storage.

    image service (glance) Image catalog, store and retrieval.

    identity service (keystone) Authentication, Authorization, etc.

    block storage service (cinder)

    network service (quantum)

    dashboard service (horizon)

    April 9, 2013 4

    EGI-InSPIRE RI-261323 www.egi.eu

  • Introduction to Openstack Architecture

    Openstack is based on several components

    compute service (nova) Spawns and manages the instances.

    store service (swift) Object storage.

    image service (glance) Image catalog, store and retrieval.

    identity service (keystone) Authentication, Authorization, etc.

    block storage service (cinder) Provides block device storage (a-laEBS).

    network service (quantum)

    dashboard service (horizon)

    April 9, 2013 4

    EGI-InSPIRE RI-261323 www.egi.eu

  • Introduction to Openstack Architecture

    Openstack is based on several components

    compute service (nova) Spawns and manages the instances.

    store service (swift) Object storage.

    image service (glance) Image catalog, store and retrieval.

    identity service (keystone) Authentication, Authorization, etc.

    block storage service (cinder) Provides block device storage (a-laEBS).

    network service (quantum) Provides network connectivity.

    dashboard service (horizon)

    April 9, 2013 4

    EGI-InSPIRE RI-261323 www.egi.eu

  • Introduction to Openstack Architecture

    Openstack is based on several components

    compute service (nova) Spawns and manages the instances.

    store service (swift) Object storage.

    image service (glance) Image catalog, store and retrieval.

    identity service (keystone) Authentication, Authorization, etc.

    block storage service (cinder) Provides block device storage (a-laEBS).

    network service (quantum) Provides network connectivity.

    dashboard service (horizon) Web interface.

    April 9, 2013 4

    EGI-InSPIRE RI-261323 www.egi.eu

  • Openstack Architecture

    April 9, 2013 5

    EGI-InSPIRE RI-261323 www.egi.eu

  • AuthN and AuthZ in Openstack

    • Authentication and Authorization is orchestrated around theidentity service Keystone.

    • Auth is based on users, tenants, domains, roles and tokens.– A user is member of 1 or more tenants.– A tenant (group, project) is part of 1 or more domains.– A user may have specific roles within a tenant or globally

    within a Keystone domain.– A token may be associated with a tenant or not:

    I Unscoped tokens are not associated with a tenant. Used fordiscovery (available tenants, endponts) and are onlyunderstood by keystone

    I Scoped tokens are associated within a tenant and are requiredto interact with any other component.

    – A token can be unsigned (UUID) or signed (PKI based).

    April 9, 2013 6

    EGI-InSPIRE RI-261323 www.egi.eu

  • AuthN and AuthZ in Openstack

    • Authentication in Keystone is a 2 part mechanism.– 1st phase: A user initiates authentication against Keystone

    and a token is issued.– 2nd phase: The token is used to authenticate against all the

    other Openstack services.

    • All authenticated requests require a scoped token.• A token has a limited validity.

    – Valid within only one tenant.– Fixed expiration time.

    • The token is verified with each of the requests by all of theOpenstack components.

    – UUID tokens are validated online: it requires a call back to theKeystone server.

    – PKI tokens can be verified offline: signed message.

    • Role based authorization (RBAC).April 9, 2013 7

    EGI-InSPIRE RI-261323 www.egi.eu

  • Federation Efforts

    • EGI and the NGIs are already a federation of resourcesproviders.

    • Many of the resource providers have some virtualized and/orcloud resources.

    – Many different software stacks.– Different interfaces.– Different capabilities.

    • Many users are interested in accessing those resources.– Profit from flexibility.– Deploy its own software environment.

    • Authentication is the cornerstone of such a Federation

    April 9, 2013 8

    EGI-InSPIRE RI-261323 www.egi.eu

  • Federated Identity

    Cloud federation across several providers has some consequences for RPs:

    • Manage large numbers of users, in different (and sometimes overlapping)groups.

    • Populate the user base to each of the sites involved in the federation.• Each site is free to use a different cloud middleware with its own

    AuthN/AuthZ mechanism.

    • EGI Fedcloud requires that it is X.509 and not user/password based.• Same situation as in the Grid → VO based authentication might be the

    answer.

    For the users and communities

    • Manage different credentials: user/password based, X.509 proxies,VOMS...

    • Readapting the existing tools.• Difficult to manage users for the communities.

    April 9, 2013 9

    EGI-InSPIRE RI-261323 www.egi.eu

  • Outline

    BackgroundOpenstack ArchitectureFederated Cloud Identity

    VOMS AuthN in Openstack

    Future Work

    April 9, 2013 10

    EGI-InSPIRE RI-261323 www.egi.eu

  • VOMS Authentication in the CloudWhy?

    Apply VOs to the Cloud using VOMS-based authentication.

    • Widely used in the Grid. Infrastructure already in place (PKI,VOMS servers, portals, etc.)

    • User communities are familiar with it.– No extra credentials for users– No extra effort for managers.– No transition effort.

    • Resource providers are familiar with it.– No extra effort for configuration.– No extra effort on their side to allow a VO to execute.

    • Grid tools can be easily adapted to interact with cloudtestbeds

    • Integrated (or possible integration) with other operationaltools.

    • Extensible (for example it is possible to move towards SAML).April 9, 2013 11

    EGI-InSPIRE RI-261323 www.egi.eu

  • Keystone VOMS AuthN middleware

    Deployment.

    • Keystone is a WSGI application.• Keystone is deployed behind Apache (or other HTTPD

    server).

    • The HTTPD server verificates the X.509 proxy: validity, CA,CRLs.

    VOMS module.

    • WSGI middleware filter.• Add-on to the Keystone server, no need for patch or

    modification.

    • The VOMS proxy should be authenticated upstream (by theHTTPD server).

    • Extracts the VO info from the VOMS proxy and maps it to auser, internal tenant and domain.

    April 9, 2013 12

    EGI-InSPIRE RI-261323 www.egi.eu

  • VO support in Openstack

    User VOMS server HTTPD server Keystone WSGI VOMS WSGI Middleware Identity Backend Token Backend

    voms-proxy-init

    VOMS proxy

    req token via SSL conn (using proxy)

    verify proxy

    request token

    check voms

    extract VOMS info

    map VO/Group to tenant

    create user in tenant

    ifif user does not exist

    ifif VO is authorized

    user, tenant

    request token

    token

    credentials

    credentials

    April 9, 2013 13

    EGI-InSPIRE RI-261323 www.egi.eu

  • Openstack Client AuthN module

    • Pluggable authentication mechanism has been contributed tothe mainline from version 2.13.0.

    • VOMS auth module available for novaclient.

    $ git clone https://github.com/IFCA/voms-auth-system-openstack

    $ cd voms-auth-system-openstack

    $ python setup.py install

    $ voms-proxy-init -voms VONAME -rfc

    $ nova --os-auth-system voms --x509-user-proxy /tmp/proxy credentials

    April 9, 2013 14

    EGI-InSPIRE RI-261323 www.egi.eu

  • Outline

    BackgroundOpenstack ArchitectureFederated Cloud Identity

    VOMS AuthN in Openstack

    Future Work

    April 9, 2013 15

    EGI-InSPIRE RI-261323 www.egi.eu

  • Perspective and Future work

    Several Openstack sites using it so far.

    • CC-IN2P3 (France), IFCA (Spain), IISAS (Slovakia), JüelichSupercomputing Center (Germany).

    Integration with applications.

    • VOMS modules for Openstack clients.• libcloud (Apache) fork to support VOMS auth.• Dirac module.

    Future steps.

    • Exploit VOMS roles for RBAC in Keystone.• Study the possibility of SAML assertions instead of proxies.• Integration with Openstack dashboard (horizon).

    April 9, 2013 16

    EGI-InSPIRE RI-261323 www.egi.eu

  • Perspective and Future work

    Several Openstack sites using it so far.

    • CC-IN2P3 (France), IFCA (Spain), IISAS (Slovakia), JüelichSupercomputing Center (Germany).

    Integration with applications.

    • VOMS modules for Openstack clients.• libcloud (Apache) fork to support VOMS auth.• Dirac module.

    Future steps.

    • Exploit VOMS roles for RBAC in Keystone.• Study the possibility of SAML assertions instead of proxies.• Integration with Openstack dashboard (horizon).

    April 9, 2013 16

    EGI-InSPIRE RI-261323 www.egi.eu

  • Perspective and Future work

    Several Openstack sites using it so far.

    • CC-IN2P3 (France), IFCA (Spain), IISAS (Slovakia), JüelichSupercomputing Center (Germany).

    Integration with applications.

    • VOMS modules for Openstack clients.• libcloud (Apache) fork to support VOMS auth.• Dirac module.

    Future steps.

    • Exploit VOMS roles for RBAC in Keystone.• Study the possibility of SAML assertions instead of proxies.• Integration with Openstack dashboard (horizon).

    April 9, 2013 16

    EGI-InSPIRE RI-261323 www.egi.eu

  • This is the end

    Thanks!Talk is cheap. Show me the code.

    • Keystone module:https://github.com/IFCA/keystone-voms

    – Documentation:https://keystone-voms.readthedocs.org/en/latest/

    • Client module:https://github.com/IFCA/voms-auth-system-openstack

    mailto:[email protected]

    April 9, 2013 17

    EGI-InSPIRE RI-261323 www.egi.eu

    https://github.com/IFCA/keystone-vomshttps://keystone-voms.readthedocs.org/en/latest/https://github.com/IFCA/voms-auth-system-openstackmailto:[email protected]

    BackgroundOpenstack ArchitectureFederated Cloud Identity

    VOMS AuthN in OpenstackFuture Work