Versions Compared

Key

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

...

WaTTS is a Token Translation Service developed by KIT in the context of the INDIGO Data Cloud project. WaTTS was developed to address the users' need to access services that can do not directly utilise federated access and require that the users use security tokens, such as SSH keys, X.509 ertificates, S3 access tokens etc. In this AARC pilot, WaTTS is integrated with the EGI CheckIn service, so that users can access WaTTS using their EGI accounts, while authenticating either at their home organisations or using their socialIDs. With WaTTS, users are able to manage the SSH access to a number of trusted VMs from a single point in a secure and user-friendly manner. In this pilot, WaTTS is used to manage their SSH public keys and provision them on demand to an authorised set of VMs. Although in this pilot WaTTS is integrated with the EGI CheckIn service, the solution is not limited to EGI, and can be used at any community/infrastructure/service where there is a need to "bridge" between different technologies, and can be run as a standalone "plug-and-play" solution. The only requirement is that the community/infrastructure/service supports integration of OIDC services.

...

The pilot structure is shown in picture below.

Image Modified

 

The pilot authentication flow is shown below:

Image Modified

 

  1. User access the WaTTS page, and selects the desired OIDC provider, in this case EGI CheckIn Service
  2. User is redirected to the desired OIDC provider. In case of EGI CheckIn Service, user can select between his home IdP, or social networks (SN) (Google, etc.), among others. However, these do affect the LoA granted to the user, i.e. home organisation has Substantial LoA, while SNs have Low.
  3. User is prompted to accept the release of information, and at the end, the information about the user is returned to the WATTS (i.e. LoA, issuer, name, mail, etc.)
  4. User then selects the desired action.
  5. User uploads/generates an SSH key
  6. SSH key is deployed to the desired VMs, and username and hostname is shown to the user.

 

It is important to mention that at neither step the credentials (in this case SSH keys) are stored on the WATTS service.

WaTTS is still in development, however, actively maintained and it is also running in production. As already mentioned, it is not limited to EGI OIDC providers, but already supports Human Brain Project (HBP), b2accessGoogle, and naturally, INDIGO IAM (INDIGO Access Management). Adding additional IdPs or configuring the service is straightforward. Support for additional credentials is done through plugins, for which the API is defined, and can therefore be further developed as needed.

WATTS source and info pages:

...

Note that page might be moved in the future , probably to https://github.com/indigowatts-dckit/watts.

 

Pilot resources

WATTS service (https://watts-dev.data.kit.edu) - development version

EGI CheckIn service

 

2 VMS provided by ~okeanos.

KIT Grid certificate (used to authenticate with EGI CheckIn service), alternatively Google account is used, however LoA connected with Google account is not sufficient to upload keys (this is by design, it is configurable, naturally)

 

Demonstration workflow

The mapping rules are passed in Keystone as a json file. Each set of rules is made of a local and a remote section.

In the remote part it is specified the external attributes to take into account and that we want to map to the local ones, following the order in which they are listed.

In our case, as local username, it will be used the eppn, and any SAML assertion presenting that particular value in the entitlement attribute will be mapped to the local group qith that particular ID.
Access to the cloud resources
1.

Access WaTTS instance at https://watts-dev.data.kit.edu

Select "European Grid Infrastructure" and click on "Login".  

 

 

Image RemovedImage Added
2.

Select your Identity Provider from the discovery page (WAYF).

The institutional IdP to select (considered for this demo purposes only) is: AARC DIY Identity Provider

Image Removed
3.

Enter your login credentials to authenticate yourself with the IdP of your Home Organisation. We will show three cases:

a) an user belonging to aarc-yellow CO with admin role

b) an user belonging to aarc-yellow CO with no particular roles

c) an user belonging to aarc-blue CO with admin role

Image Removed
4a.

-- user belonging to aarc-yellow CO and with admin role --

After successful authentication, the user needs to give the consensus for releasing your personal information to the Service Provider mentioned in the page (the OpenStack framework in our case).

Among the data that will be passed to the Service Provider, there are the Entitlements released by the attribute aggregatore COmanage regarding the ownership in the COs and the roles.

In this case the Entitlement contains these piece of information:

urn:mace:aarc-project.eu:am03.pilots.aarc-project.eu:members:member@aarc-yellow.pilots.aarc-project.eu

urn:mace:aarc-project.eu:am03.pilots.aarc-project.eu:admin:member@aarc-yellow.pilots.aarc-project.eu

That is the piece of information used for properly mapping the users to the OpenStack projects. 

Click on "yes" for going on.

 

 

Image Removed
5a.

The user is successfuly redirected to the OpenStack Dashboard, mapped to a Keystone user group based on the values of the Entitlement attribute, with the eppn as username.

In this case the user is accessing to the aarc-yellow project with administrative rights.

Image Removed
4b.

-- member of aarc-yellow CO without any priviledged role --

After successful authentication, the user needs to give the consensus for releasing your personal information to the Service Provider mentioned in the page (the OpenStack framework in our case).

Among the data that will be passed to the Service Provider, there are the Entitlements released by the attribute aggregatore COmanage regarding the ownership in the COs and the roles.

In this case the Entitlement contains these piece of information:

urn:mace:aarc-project.eu:am03.pilots.aarc-project.eu:members:member@aarc-yellow.pilots.aarc-project.eu

That is the piece of information used for properly mapping the users to the OpenStack projects. 

Click on "yes" for going on.

 

Image Removed
5b.

The user is successfuly redirected to the OpenStack Dashboard, mapped to a Keystone user group based on the values of the Entitlement attribute, with the eppn as username.

In this case the user is accessing to the aarc-yellow project with no administrative rights.

Image Removed
4c.

-- user belonging to aarc-blue CO and with admin role --

After successful authentication, the user needs to give the consensus for releasing your personal information to the Service Provider mentioned in the page (the OpenStack framework in our case).

Among the data that will be passed to the Service Provider, there are the Entitlements released by the attribute aggregatore COmanage regarding the ownership in the COs and the roles.

In this case the Entitlement contains these piece of information:

urn:mace:aarc-project.eu:am03.pilots.aarc-project.eu:members:member@aarc-blue.pilots.aarc-project.eu

urn:mace:aarc-project.eu:am03.pilots.aarc-project.eu:admin:member@aarc-blue.pilots.aarc-project.eu

That is the piece of information used for properly mapping the users to the OpenStack projects. 

Click on "yes" for going on.

 

Image Removed
5c.

The user is successfuly redirected to the OpenStack Dashboard, mapped to a Keystone user group based on the values of the Entitlement attribute, with the eppn as username..

In this case the user is accessing to the aarc-blue project with administrative rights.

Image Removed
   

) is: IGTF Certificate Proxy, and then we use the institutional grid certificate (in this case, KIT Grid Certificate)

Image Added
3.

This page displays which values will be released by IGTF-to-eduGAIN-Proxy. User should click on Yes to accept and proceed.

 

Image Added
4.

This page displays which values will be released by EGI-CheckIn. User should click on Yes to accept and proceed. We can see that the LoA is now Substantial.

Image Added
5.

Upon successful login, the user is redirected to the WaTTS. We then select the desired plugin, in this case aarc_ssh, and we can select either Request, or Advanced. First option creates SSH key par

for the user, and deploys the public key to the VMs. User then must download the key pair if intends to use them, since the keys are never stored on WaTTS. If skipping this step, user must recreate the

SSH keys again. Second option (Advanced) will enable the user to upload its own public SSH key.

Image Added
6.

If user select Advanced option, then it is able to upload its own key. After pasting the key, user should click on the Submit button.

 

Image Added
7.

After successfully uploading or generating SSH key, the user now has SSH access to VMs. The username and full VM hostname is displayed to the user.

 
Mapping rules: an example

{

            "local": [

                {

                    "user": {

                        "name": "{0}"

                    }

                },

                {

                    "group": {

                        "id": "3b609a4da6654625a3789d1a6bd1fdc7"

                    }

                }

            ],

            "remote": [

                {

                   "type": "eppn"

                },

                {

                   "type": "entitlement",

                   "any_one_of": [

                        "urn:mace:aarc-project.eu:am03.pilots.aarc-project.eu:admin:member@aarc-blue.pilots.aarc-project.eu"

                   ]

                }

            ]

        },