CILogon Pre-Pilot Work
CILogon is an open source project used to provide secure access to different services from the grid infrastructure. It uses the Myproxy OAuth2 flow in order to retrieve client certificates/proxies from a Myproxy Certificate Authority. These retrieved credentials are then meant to be used in the authentication procedure for further interaction with grid services.
AARC is a European research and collaboration project which explores the possible future generation of authentication and authorization methods used in the grid world. CILogon is a candidate AAI component within this project. This document is the starting point of a piloting work on CILogon which will eventually evolve into a larger scale demonstration of the capabilities of this software product.
We used Jenkins together with OpenStack to build an automatically deploying CILogon instance. Jenkins VM Image templates are used to boot VMs with relevant software installed on it, while separate Jenkins jobs are used to carry out different stages of the service deployment. The following sections contain a brief overview of the structure of these Jenkins jobs together with a short description of their function. For more information consult the local jenkins instance.
--- myproxy-server --------| myproxy-server.simpleCA | | ~ This task sets up the myproxy-server as a Certificate Authority using SimpleCA. | It creates a new self signed CA, a host certificate and a service certificate | (for myrpoxy-server) using the: 'grid-ca-create' 'grid-cert-request' and | 'grid-ca-sign' commands. | | | myproxy-server.pam.useradd | | ~ Adds a local UNIX account that will be used to PAM authentication through the | | myproxy-server (in this sense myproxy-server becomes an IdP). This will later | be replaced by a more suitable authentication method with an IdP like shib IdP | | ~ myproxy-server creates user certificates for users by matching authenticated | users' name against an entry from the grid-mapfile. Therefore, an entry is added | into the grid-mapfile with the name of the newly created user. | | | myproxy-server.restart | | ~ Restarts the myproxy-server | --- --- myproxy-oauth2 --------| myproxy-oauth2.prerequisites | | ~ Sets up the local environment in which the cilogon server will be run: | - set up SSL in tomcat | - install java 1.8 | - install java mail | - install jsse and globus-ssl-proxies (jglobus-core) | | | myproxy-oauth2.prerequisites.slave-reboot | | ~ Because of a Jenkins limitation whenever the default jvm changes the slave agent | running on the node has to be restarted. | | | myproxy-oauth2.deploy | | ~ Downloads the latest tagged version of the CILogon oauth2 server and copies the | oauth2.war into the tomcat container | | | myproxy-oauth2.configure | | ~ Configures the oauth2 server with a simple setup using file storage as backend. | Every relevant server information is kept under /usr/www/server | | | myproxy-oauth2.restart | | ~ Restarts tomcat | --- myproxy-oauth2.approve-clients ~ Automatically approves every pending client registration request.