Deploy a dedicated INDIGO IAM (sys-admin nomination required)
Prerequisites
The user has to be registered in the IAM system for INFN-Cloud https://iam.cloud.infn.it/. Only registered users can login into the INFN-Cloud dashboard https://my.cloud.infn.it.
- For more details regarding registration please see Getting Started
User responsibilities
Important
The solution described in this guide consists on instantiation of Virtual Machines instantiated on INFN-Cloud infrastructure. The instantiation of a VM comes with the responsibility of maintaining it and all the services it hosts.
Please read the INFN Cloud AUP in order to understand the responsibilities you have in managing this service.
Selection of the Deployment type
Important
By default, a local "admin" IAM user is created. The password associated to this account is "password". You must change immediately this password after the deployment is completed by connecting to the IAM instance via browser. Alternatively, you can register a personal account, give it admin privileges and remove the "admin" user.
Note
If you belong to multiple projects, i.e. multiple IAM-groups, after login into the INFN-Cloud dashboard, from the upper right corner, select the one to be used for the deployment you intend to perform. Not all solutions are available for all projects. The resources used for the deployment will be accounted to the respective project, and impact on their available quota. See figure below.
Once the project is selected, choose the "INDIGO IAM as a Service" button from the list of solutions available for your group:
Select either Automatic or Manual scheduling as shown below:
In the first case, the Orchestrator will take care of choosing the best available provider, in the other case it will be performed a direct submission towards one of the providers available, to be selected from the drop-down menu. In the case of manual scheduling, the flavors displayed on the next page will be those offered by the chosen provider.
A menu is made available, as in the figure below:
"Description" is a mandatory field.
Deployment parameters are split in several pages and their effect is well described by both the corresponding dashboard captions and the official documentation:
-
Basic:
letsencrypt_test: default true to use Let's Encrypt test certificatescontact_email: reference person's address for certificate renewalactive_profiles: Spring profiles for IAM allowing user registration and password reset; optionally add oidc or SAML for authentication with external providersjwt_default_profile: by default IAM, used to configure the claims contained in the token; can also be WLCG or AARCenvironment_variables: docker environment variables (key,value pairs)service_ports: ports to open on the VM to access the service(s). By default only SSH port (22) is opened. Please consult INFN Cloud Rules of participation the "Networking" section in order to see what are the ports that you can specify in this field. If the port you intend to use is in the list of closed-ports, you have to formally request its opening and motivate the request by following the How To: Request to open ports on deployed VMs guide.
-
Organisation:
organisation_name: the name of the organizationlogo_url: the url the logo image is located attopbar_title: the title shown in each internal IAM page
-
Access token:
access_token_include_authn_info: include user information in the token (username, groups, etc.)access_token_include_nbf: add an nbf claim to the tokenaccess_token_include_scope: add the scope claim to the token
-
Privacy Policy
privacy_policy_url: parameter for policy acceptance by the user; the policy document must be provided via a URL
-
Fine Tuning
- the most important parameter is the
IAM version
- the most important parameter is the
-
Database (the DB is shipped with the deployment):
db_username: a provided username for the DB user to be createddb_password: a provided password for the DB user to be created
-
Redis
- To manage multiple backends it may be useful to configure redis to keep data consistent for a given user session
-
Registration
registration_require_external_authentication: enable authentication for registration via external providers; by default it is false, if set to true you can choose between oidc and SAML; besides, you need to add profile oidc or SAML toactive_profiles(see Basic parameters)registration[...]_attribute: used to indicate which attributes provided by the external provider are taken as registration parameter valuesregistration][...]_readonly: if set to true prevents the user from changing the registration parameter imported from the external provider
-
Local Auth
local_authn_login_page_visibility: allows the user to provide local username and password fields on the IAM login pagelocal_authn_enabled_for: enables local login form to users. It can be 'all' or restricted tovo-adminsornone
-
Google Auth
google_client_id and google_client_secret: parameters of the OAuth client for authentication through as identity provider. NOTE: despite the name recalling "google", any OpenID provider (e.g.: GitHub) can be used.
-
SAML Auth
- SAML Authentication is by default configured to use the INFN AAI provider; some required actions before and after deployment are specified in a disclaimer
-
Notification
mail_host: by default is set to the INFN mail server, which requires having an enabled account; otherwise you can use another suitably configured mail server
After submitting the deployment, the user is redirected to the deployment list:
Note
If the creation of a deployment fails, an additional option (retry) is introduced in the dropdown menu, allowing the user to resubmit the deployment with the same parameters.
If the deletion of a deployment fails, resulting in the status being set
to DELETE_FAILED, the "delete (force)" button is displayed in the
list of available actions, allowing the user to force the deletion of
the deployment:
Below there is an example of the IAM login page after a successful deployment: