Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

Difference between revisions of "Fedcloud-tf:WorkGroups: Federated AAI"

From EGIWiki
Jump to navigation Jump to search
(Redirected page to Federated Cloud Federated AAI)
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Fedcloud-tf:Menu}} {{Fedcloud-tf:WorkGroups:Menu}} {{TOC_right}}
#REDIRECT[[Federated_Cloud_Federated_AAI]]
 
= Integrating authentication and authorisation across multiple resource providers  =
 
<font color="red">Leader: Bjoern Hagemeier, FZJ</font>
 
== Collaborators  ==
 
{| border="1"
|-
! Role
! Institution
! Name
|-
| Scenario leader
| FZJ
| Bjoern Hagemeier
|-
| Collaborator
| CESNET
| Dan Kouřil
|-
| Collaborator
| OeRC
| Matteo Turilli
|}
 
== Scope  ==
 
We have already defined that user authentication should be based on X.509 certificates rather than usernames and passwords or other credential material. Nevertheless, depending on the type of federation intended, this may not even be a real requirement. Any service should rely on an identity provider that is in charge of the type of credentials used for authentication.
 
For the technical implementations of this scenario, please go to [[Federated AAI Implementation]].
 
== Degrees of Freedom  ==
 
=== Type of Federation  ===
 
Thank you David W. for mentioning the difference in the information publishing document.
 
Before taking any decision about the requirements for a federated AAI, one needs to be sure what type of federation is desired. There are roughly two types that need to be considered, which have a strong influence on how to authenticate and authorize users.
 
==== Tight federation  ====
 
The federated cloud systems are all the same for the user. He only interacts with a single point of entry. Consequently, there can (and probably should) be a single user database.
 
<br>
 
==== Loose federation  ====
 
Every user has a home organization at which he can be authenticated (identity provider). Every service within the federation 'knows' a list of acceptable identity providers.
 
=== VO support  ===
 
=== Authentication -- What's already there?  ===
 
==== Standards  ====
 
===== SAML  =====
 
" [http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language Security Assertion Markup Language (SAML)] is an XML-based open standard for exchanging authentication and authorization data between security domains, that is, between an identity provider (a producer of assertions) and a service provider (a consumer of assertions)."
 
<br>
 
===== OAuth  =====
 
"[http://en.wikipedia.org/wiki/OAuth OAuth (Open Authorization)] is an open standard for authorization. It allows users to share their private resources (e.g., photos, videos, contact lists) stored on one site with another site without having to hand out their credentials, typically username and password.
 
...
 
OAuth is a service that is complementary to, but distinct from, OpenID."
 
===== x.509 Certificates  =====
 
incl. Proxies
 
[[Fedcloud-tf:WorkGroups:FederatedAAI:Apache2SSLReverseProxy | Apache2 SSL reverse-proxy -- Configuration example]]
 
===== OpenID  =====
 
OpenID is an open standard that describes how users can be authenticated in a decentralized manner, eliminating the need for services to provide their own ad hoc systems and allowing users to consolidate their digital identities. Users may create accounts with their preferred OpenID identity providers, and then use those accounts as the basis for signing on to any website which accepts OpenID authentication. The OpenID standard provides a framework for the communication that must take place between the identity provider and the OpenID acceptor (the ‘relying party’). An extension to the standard (the OpenID Attribute Exchange) facilitates the transfer of user attributes, such as name and gender, from the OpenID identity provider to the relying party (each relying party may request a different set of attributes, depending on its requirements).
 
==== AAI Products  ====
 
===== Shibboleth  =====
 
The [http://shibboleth.internet2.edu/ Shibboleth System] is a standards based, open source software package for web single sign-on across or within organizational boundaries. It allows sites to make informed authorization decisions for individual access of protected online resources in a privacy-preserving manner.
 
===== UVOS  =====
 
[http://uvos.chemomentum.org/ UNICORE VO Service (UVOS)] is a client-server system, developed to be used as an additional tool for large distributed systems. Grid systems, especially UNICORE grid middleware, are the mainspring of the UVOS system. Although UVOS can be used with different systems, however is designed primarly to support UNICORE grid middleware.
 
===== VOMS  =====
 
[http://www.globus.org/grid_software/security/voms.php VOMS] is a system for managing authorization data within multi-institutional collaborations. VOMS provides a database of user roles and capabilities and a set of tools for accessing and manipulating the database and using the database contents to generate Grid credentials for users when needed.
 
A comparison of UVOS and VOMS can be found here:
 
*https://indico.cern.ch/contributionDisplay.py?contribId=8&sessionId=13&confId=124206
*https://twiki.cern.ch/twiki/bin/view/EMI/EmiJra1SecUVOSVOMSComp
 
VOMS support for OpenStack is available from a patched [https://github.com/alvarolopez/keystone.git Keystone]. There is also some [http://keystone-voms.readthedocs.org/en/latest/voms.html documentation about its configuration].
 
==== Cloud Product Support  ====
 
One of the key factory influencing the choice of AAI will be the support in the already deployed Cloud products in the [[Fedcloud-tf:Testbed|Testbed]]. Most likely, support will not be directly available. But where it is, it will be valuable. Most probably, we will have to evaluate the effort required to integrate AA support into the products.
 
===== OpenNebula  =====
 
OpenNebula supports traditional groups - users are assigned to groups,
access to various resources (hosts, virtual machines, templates,
virtual networks) can be limited by group membership - based on group
membership, user can see ony resources assigned to his group. Some
resources can be owned only by one group (virtual machines, templates,
virtual networks), some resources (hosts) are owned by system but
access can be limited to list of groups and users.
 
OpenNebula also support ACLs, various operations with resources can be
limited to specific user, example is described on
<ref>http://opennebula.org/documentation:rel3.0:manage_acl</ref>, where subset
of group users cab be defined as "administrators of resources".
 
OpenNebula has possibility to manage several instances of OpenNebule
using one admin interface oZone
<ref>http://opennebula.org/documentation:rel3.0:ozones</ref>, this feature can
provides several features usually provided by VOs - based on oZones,
groups, and ACLs several Virtual Data Centers
<ref>http://opennebula.org/documentation:rel3.0:vdcmngt</ref> can be created,
resources can be assigned or dedicated to VDC, VDC has it's own
manager, which can create users and manage resource assignment in such
VDC=group etc.
 
OpenNebula has basic X.509 support, but no VOMS extensions are
supported, so there is no mapping from VOMS attributes to groups or
ACLs etc. (but seems to me that it could be implemented with
reasonable effort).
 
===== OpenStack  =====
 
Towards the end of 2010, OpenStack started their [http://wiki.openstack.org/openstack-authn authn initiative] to consolidate the various mechanisms available in the different components of OpenStack. The goal of this initiative was "to define a standard for authentication in OpenStack that enables services to support multiple authentication protocols in a pluggable manner".
 
Starting with its Diablo release, "[http://wiki.openstack.org/keystone Keystone] is the identity service used by OpenStack for authentication (authN) and high-level authorization (authZ). It currently supports token-based authN and user-service authorization. It is scalable to include oAuth, SAML and openID in future versions."
 
Whereas in the Diablo release Keystone is an add-on component, the following Essex release provides Keystone as a core component.
 
Members of the Task Force have patched Keystone to support VOMS based VOs. See section [[#VOMS]] for further information.
 
===== StratusLab  =====
 
The [http://stratuslab.eu/doku.php/authentication authentication] uses the Jetty application server and the JAAS system to provide a wide variety of mechanisms for authenticating users. System administrators can choose to use:
 
*Username/password pairs maintained in a configuration file
*Username/password pairs from an LDAP server
*Grid certificates
*VOMS proxies created from grid certificates
 
===== WNoDeS  =====
 
==== Infrastructure  ====
 
===== EGI SSO  =====
 
*What does it use?
*Possible integration?
 
=== Authorization ===
 
Authorization is the second principle by which users gain access to resources. In the same way as the authentication infrastructure (identity management), an authorization infrastrucuture must be put in place. Authentication and authorization infrastructure go hand in hand, as authenticated users must be mapped to appropriate policies. The authorization infrastructure is federated in the same way as the authentication infrastructure, although policies can be expected to be more hirarchical.
 
[[File:Policy Architecture.png|right|400px]]
 
==== XACML ====
 
The predominant standard in terms of authorization is XACML. Products supporting this standard are:
 
*http://xacmlpdp.sourceforge.net/
*http://www.herasaf.org/
*http://sourceforge.net/projects/xacmllight/
*Others can be found at:&nbsp;http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml
 
The Argus product could be quite valuable in terms of liaisons with other projects. It supports
XACML 2.0:
 
*http://www.switch.ch/grid/argus/
*https://twiki.cern.ch/twiki/bin/view/EGEE/AuthorizationFramework
 
== Liaisons  ==
 
*Dan Kouřil is leader of [[VT Federated Identity Providers Assessment|VT Federated Identity Providers Assessment]]
*[http://contrail-project.eu/ Contrail Project] [http://contrail-project.eu/downloads1/-/document_library_display/bM20/view/136157/2914?_110_INSTANCE_bM20_redirect=http%3A%2F%2Fcontrail-project.eu%2Fdownloads1%2F-%2Fdocument_library_display%2FbM20%2Fview%2F136157|D2.1 Requirements on Federation Management, Identity and Policy Management in Federations]
 
== References ==
 
<references/>

Latest revision as of 12:10, 8 June 2015