Skip to content
Snippets Groups Projects

IAM Role

This role allows to deploy the INDIGO IAM service.

Requirements

OIDC Authentication

If you want to enable Open ID Connect Auth you need to create a new client.

For example, for Google Auth access to Google developers console and create and configure a new credential project.

Go to: https://console.developers.google.com/apis/credentials

Create Credentials > OAuth Client ID

Application Type: Web Application

Name: Service Provider (SP) name

Let's assume that our server is iam.com:

Authorized JavaScript origins: https://iam.example.com.

Authorized redirect URIs: https://iam.example.com/openid_connect_login. Keep that in mind.

Copy client ID and client secret. You will need them for configuration.

Create the file application-oidc.yml, copying and pasting the client ID, client Secret and the IAM url

oidc:
providers:
- name: google
  issuer: https://accounts.google.com
  client:
    clientId: <iam_google_client_id>
    clientSecret: <iam_google_client_secret>
    redirectUris: https://<iam_url>/openid_connect_login
    scope: openid,profile,email,address,phone
  loginButton:
    text: Google
    style: btn-social btn-google
    image:
      fa-icon: google

Role Variables

Variable name Default Value Description
iam_fqdn indigoiam.cloud.ba.infn.it Host dns name
iam_mysql_root_password changeit IAM Mysql root password
iam_organization_name indigo-dc Organization name
iam_logo_url resources/images/indigo-logo.png IAM instance logo
iam_account_linking_disable false Disable account linking
iam_mysql_image mysql:5.7 MySQL docker image
iam_image indigoiam/iam-login-service:v1.5.0.rc2-SNAPSHOT-latest IAM Docker image
iam_notification_disable false Disable IAM notifications
iam_notification_from iam@{{iam_fqdn}} Notification mail sender
iam_enable_oidc_auth false enable uthentication with OIDC provider
iam_application_oidc_path application-oidc.yml OIDC configuration file
iam_admin_email admin@{{iam_fqdn}} Administrator email address

Dependencies

indigo-dc.docker

Example Playbook

Including an example of how to use your role (for instance, with variables passed in as parameters) is always nice for users too:

- hosts: servers
  roles:
     - { role: iam, x: 42 }

Information

iotwins-infn-cloud-support@lists.cnaf.infn.it INFN Italy