====== West-Life SSO Integration ====== ==== Shibboleth installation ==== Install the required modules wget -O /etc/yum.repos.d/shibboleth.repo http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/security:shibboleth.repo yum -y install shibboleth Deploy the service certificate file in ///etc/shibboleth/sp-cert.pem// and the related service key file in ///etc/shibboleth/sp-key.pem//. Change the ownership and permissions for those files: chmod 400 /etc/shibboleth/sp-key.pem chmod 600 /etc/shibboleth/sp-cert.pem chown shibd.shibd /etc/shibboleth/sp-key.pem chown shibd.shibd /etc/shibboleth/sp-cert.pem The file ///etc/shibboleth/shibboleth2.xml// must contain the following definitions: SAML2 SAML1 SAML2 Local Create the metadata cache directory mkdir -p /var/cache/shibboleth chown shibd.shibd /var/cache/shibboleth Write the Service Metadata file in /etc/shibboleth/egi-cloud-metadata.xml with the following content: EGI Fed-Cloud INFN-PD The EGI Federated Cloud infrastructure operated by INFN in Padova https://goc.egi.eu/portal/index.php?Page_Type=Site&id=1024 https://egi-cloud.pd.infn.it/dashboard INFN EGI Fed-Cloud INFN-PD https://goc.egi.eu/portal/index.php?Page_Type=Site&id=1024 cloud-support@lists.pd.infn.it ==== Keystone service’s configuration ==== In the file /etc/httpd/conf.d/wsgi-keystone.conf declare the following definitions: AuthType shibboleth Require shib-session ShibRequestSetting requireSession 1 ShibExportAssertion Off AuthType shibboleth Require shib-session ShibRequestSetting requireSession 1 ShibExportAssertion Off Configure the OS-Federation environment: openstack group create wlife_group openstack role add --group wlife_group --project wenmr _member_ openstack identity provider create --remote-id https://auth.west-life.eu/proxy/saml2/idp/metadata.php wlifeaai openstack mapping create --rules /tmp/wlife_mapping.json wlife_mapping openstack federation protocol create mapped --mapping wlife_mapping --identity-provider wlifeaai the rule file, /tmp/wlife_mapping.json, contains the following definitions: [ { "local": [ { "user": { "name": "{0}" }, "group": { "domain": { "name": "Default" }, "name": "wlife_group" } } ], "remote": [ { "type": "eppn" } ] } ] In the Keystone configuration file, /etc/keystone/keystone.conf, declare the following definitions: [auth] methods = external,password,token,oauth1,oidc,mapped oidc = keystone.auth.plugins.mapped.Mapped [oidc] remote_id_attribute = HTTP_OIDC_ISS [mapped] remote_id_attribute = Shib-Identity-Provider ==== Horizon configuration ==== In the Horizon configuration file, /etc/openstack-dashboard/local_settings, define: WEBSSO_ENABLED = True WEBSSO_INITIAL_CHOICE = "credentials" WEBSSO_CHOICES = ( ("credentials", _("Keystone Credentials")), ("mapped", _("West-Life SSO")), ("oidc", _("INDIGO-DataCloud IAM")) ) Restart all services: systemctl enable shibd && systemctl start shibd systemctl restart httpd ==== Register the site to the IdP ==== Send the [[https://egi-cloud.pd.infn.it/Shibboleth.sso/Metadata|metadata]] of the site to the West-Life Identity Provider, as described in [[http://internal-wiki.west-life.eu/index.php/Enabling_SAML2_for_end_services|West-Life SSO guide]]