Portail utilisateur et administrateur¶
Le rôle Ansible reemo-infra permet de personnaliser chaque portail via des variables définies au niveau host dans le fichier Inventory. Ces variables s’appliquent individuellement à chaque instance de portail.
URL des Portails¶
Par défaut les serveurs Infra et Portal répondent sur toutes les requêtes avec un certificat autosigné.
Pour configurer une URL spécifique pour le Portail utilisateur, utilisez la variable PORTAL_URL :
all:
vars:
API_LICENSE: "ewogICAg ... Uw5NXhGVDF0NFU2TkxOdjQvZU53PT0iCiAgICC9Cn0="
...
infra_manager:
vars:
PORTAL_URL: "url.domain.tld"
hosts:
infra_manager1:
ansible_host: "10.0.0.1"
infra_manager2:
ansible_host: "10.0.0.2"
infra_manager3:
ansible_host: "10.0.0.3"
Pour configurer une URL spécifique pour le Portail administrateur, utilisez la variable PORTALADMIN_URL :
all:
vars:
API_LICENSE: "ewogICAg ... Uw5NXhGVDF0NFU2TkxOdjQvZU53PT0iCiAgICC9Cn0="
...
infra_manager:
vars:
PORTAL_URL: "url.domain.tld"
PORTALADMIN_URL: "urladmin.domain.ltd"
hosts:
infra_manager1:
ansible_host: "10.0.0.1"
infra_manager2:
ansible_host: "10.0.0.2"
infra_manager3:
ansible_host: "10.0.0.3"
Important
Il est recommandé de ne pas exposer le Portail Administrateur vers un réseau externe. Ce portail est destiné à être utilisé dans votre réseau interne.
Warning
Avec PORTALADMIN_URL activé, les administrateurs ne peuvent plus se connecter via l’URL du portail utilisateur.
Filtrage IP¶
Vous pouvez activer le filtrage par IP sur les portails utilisateur et administrateur en utilisant les variables PORTAL_URL_RESTRICT_IP et PORTALADMIN_URL_RESTRICT_IP :
all:
vars:
API_LICENSE: "ewogICAg ... Uw5NXhGVDF0NFU2TkxOdjQvZU53PT0iCiAgICC9Cn0="
...
infra_manager:
vars:
PORTAL_URL: "url.domain.tld"
PORTAL_URL_RESTRICT_IP: "10.1.1.1,10.2.2.0/24"
PORTALADMIN_URL: "urladmin.domain.ltd"
PORTALADMIN_URL_RESTRICT_IP: "10.3.1.2,10.3.2.0/24"
hosts:
infra_manager1:
ansible_host: "10.0.0.1"
infra_manager2:
ansible_host: "10.0.0.2"
infra_manager3:
ansible_host: "10.0.0.3"
Gestion des Ports¶
Par défaut le Portail utilisateurs répond sur le port 443 avec une redirection automatique du port 80 vers le port 443 en SSL.
Pour le Portail administrateur, utilisez la variable PORTALADMIN_URL_PORT pour spécifier un autre port :
PORTALADMIN_URL_PORT: "8444"
Warning
Le port doit être différent de 80, 443 et 8443 qui sont déja utilisés pour d’autres services
Personnalisation visuelle du portail¶
Vous pouvez appliquer un thème visuel à un portail avec la variable PORTAL_CUSTOMIZATION, en choisissant librement le nom du thème (ex : BLUE, BLACK).
PORTAL_CUSTOMIZATION: "BLUE"
Séparation physique des Portails¶
Le rôle Ansible reemo-infra vous permet de séparer physiquement le Portail Utilisateurs et le Portail Administrateurs.
Portail dédié aux administrateurs d’instance¶
Pour cela, créez un fichier inventaire en remplaçant le groupe infra_manager par deux groupes distincts : api_manager et portal_manager.
Note
Il vous faudra renseigner dans les variables un HMACSECRET qui sera partagé entre les 2 portails et l’API. Ce secret est utilisé pour signer les requêtes en provenance des portails vers l’API.
all:
vars:
API_LICENSE: "ewogICAg ... Uw5NXhGVDF0NFU2TkxOdjQvZU53PT0iCiAgICC9Cn0="
HMACSECRET: "U6US67D70409RFAGQH5ZIWBFV8HX0UCZ"
portal_manager:
children:
portaluser_manager:
vars:
PORTAL_URL: "url.domain.tld"
TRAEFIK_SSL_CERTS:
- cert_file: "/localpath/to/cert.crt"
key_file: "/localpath/to/key.key"
API_IP:
- ip: "10.3.1.1"
- ip: "10.3.1.2"
- ip: "10.3.1.3"
hosts:
portaluser1:
ansible_host: "10.0.0.1"
portaluser2:
ansible_host: "10.0.0.2"
portaluser3:
ansible_host: "10.0.0.3"
portaladmin_manager:
vars:
PORTAL_URL: "admin.domain.tld"
TRAEFIK_SSL_CERTS:
- cert_file: "/localpath/to/cert.crt"
key_file: "/localpath/to/key.key"
API_IP:
- ip: "10.3.1.1"
- ip: "10.3.1.2"
- ip: "10.3.1.3"
hosts:
portaladmin1:
ansible_host: "10.0.0.4"
portaladmin2:
ansible_host: "10.0.0.5"
portaladmin3:
ansible_host: "10.0.0.6"
api_manager:
hosts:
api1:
ansible_host: "10.3.1.1"
api2:
ansible_host: "10.3.1.2"
api3:
ansible_host: "10.3.1.3"
Warning
Il est important de noter que dans l’exemple ci-dessus, les URLs renseignées utilisent la variable PORTAL_URL et ce même pour le portail administrateur. C’est la valeur à utiliser lorsqu’un seul portail est déclaré sur un serveur particulier.
Portail dédié à un SSO¶
En plus de la séparation physique, vous pouvez restreindre les connecteurs SSO disponibles sur chaque portail.
Lors de la création d’un connecteur, vous obtenez un GUID. Renseignez ce GUID dans le fichier inventaire, dans la section du portail ciblé, en utilisant la variable PORTAL_LDAP_CONNECTORS pour les connecteurs LDAP ou PORTAL_SAML_CONNECTORS pour les connecteurs SAML :
all:
vars:
API_LICENSE: "ewogICAg ... Uw5NXhGVDF0NFU2TkxOdjQvZU53PT0iCiAgICC9Cn0="
HMACSECRET: "..."
portal_manager:
children:
portalsso_manager:
vars:
PORTAL_URL: "urlldap.domain.tld"
TRAEFIK_SSL_CERTS:
- cert_file: "/localpath/to/cert.crt"
key_file: "/localpath/to/key.key"
PORTAL_LDAP_CONNECTORS:
- ldapid: "3182932d-9ee1-4c06-a4cf-c13c25f2ee93"
PORTAL_SAML_CONNECTORS:
- samlid: "692469bd-cb28-8332-aa65-9c95451c1a0e"
hosts:
portalsso1:
ansible_host: "10.0.0.7"
portalsso2:
ansible_host: "10.0.0.8"
portalsso3:
ansible_host: "10.0.0.9"
Pour ajouter plusieurs connecteurs au même portail, ajoutez plusieurs lignes avec ldapid ou samlid :
all:
vars:
API_LICENSE: "ewogICAg ... Uw5NXhGVDF0NFU2TkxOdjQvZU53PT0iCiAgICC9Cn0="
HMACSECRET: "..."
portal_manager:
children:
portalsso_manager:
vars:
PORTAL_URL: "urlsso.domain.tld"
TRAEFIK_SSL_CERTS:
- cert_file: "/localpath/to/cert.crt"
key_file: "/localpath/to/key.key"
PORTAL_LDAP_CONNECTORS:
- ldapid: "3182932d-9ee1-4c06-a4cf-c13c25f2ee93"
- ldapid: "9c713681-b758-4179-b9a2-13618a7b804e"
PORTAL_SAML_CONNECTORS:
- samlid: "692469bd-cb28-8332-aa65-9c95451c1a0e"
- samlid: "4418cfb9-52c5-4d7c-88d1-7660e7809d23"
hosts:
portalsso1:
ansible_host: "10.0.0.7"
portalsso2:
ansible_host: "10.0.0.8"
portalsso3:
ansible_host: "10.0.0.9"
Page de connexion avec plusieurs connecteurs SAML — l’utilisateur sélectionne son connecteur dans la liste déroulante.¶
Note
Les identifiants des connecteurs SAML sont disponibles dans verified_user Zone d’administration > dashboard Général > passkey Connecteurs SSO.
Pour un portail administrateur dédié, utilisez PORTALADMIN_SAML_CONNECTORS à la place de PORTAL_SAML_CONNECTORS pour restreindre les connecteurs SAML disponibles spécifiquement sur ce portail.
all:
vars:
API_LICENSE: "ewogICAg ... Uw5NXhGVDF0NFU2TkxOdjQvZU53PT0iCiAgICC9Cn0="
HMACSECRET: "..."
portal_manager:
children:
portaluser_manager:
vars:
PORTAL_URL: "url.domain.tld"
PORTAL_SAML_CONNECTORS:
- samlid: "692469bd-cb28-8332-aa65-9c95451c1a0e"
hosts:
portaluser1:
ansible_host: "10.0.0.1"
portaladmin_manager:
vars:
PORTAL_URL: "admin.domain.tld"
PORTALADMIN_SAML_CONNECTORS:
- samlid: "236cc1d9-a87d-4f16-becb-6cd6a0bba67f"
hosts:
portaladmin1:
ansible_host: "10.0.0.4"
Serveur Signal par Portail¶
Pour séparer complètement les portails, assignez des serveurs Signal spécifiques à chaque portail. Ces serveurs seront utilisés par les conteneurs lancés depuis ces portails en utilisant la variable PROVISION_SIGNAL_IP :
portal_manager:
vars:
API_IP:
- ip: "10.0.0.1"
children:
portal1_user:
hosts:
portal1_user1:
ansible_host: "10.0.0.2"
PORTAL_URL: "portal1.domain.tld"
PROVISION_SIGNAL_IP:
- ip: "10.0.0.2"
portal2_user:
hosts:
portal2_user1:
ansible_host: "10.0.0.3"
PORTAL_URL: "portal2.domain.tld"
PROVISION_SIGNAL_IP:
- ip: "10.0.0.3"
Filtrage des roles utilisateurs sur un Portail¶
Vous pouvez restreindre le type d’utilisateurs autorisés à se connecter à un portail particulier. Le filtrage s’effecture sur le rôle des utilisateurs.
Administrateur d’instance
Administrateur d’organisation
Membre d’une organisation
Portail Principal¶
Par défaut, tous les utilisateurs peuvent s’authentifier sur un portail. Avec la variable PORTAL_TYPE, vous pouvez restreindre l’accès à un type d’utilisateur spécifique :
PORTAL_TYPE |
par défaut |
user |
admin |
orgadmin |
instadmin |
orguser |
|---|---|---|---|---|---|---|
Administrateur d’instance |
||||||
Administrateur d’organisation |
||||||
Membre d’une organisation |
Portail Admin¶
Le portail secondaire est configuré par défaut pour les administrateurs. Avec la variable PORTALADMIN_TYPE, vous pouvez spécifier quels types d’administrateurs peuvent se connecter :
PORTALADMIN_TYPE |
par défaut |
orgadmin |
instadmin |
|---|---|---|---|
Administrateur d’instance |
|||
Administrateur d’organisation |
|||
Membre d’une organisation |
Exemple avec un portail dédié aux utilisateurs et le portail administrateur dédié uniquement aux administrateurs d’instance:
all:
vars:
API_LICENSE: "ewogICAg ... Uw5NXhGVDF0NFU2TkxOdjQvZU53PT0iCiAgICC9Cn0="
HMACSECRET: "..."
portal_manager:
children:
portaluser_manager:
vars:
PORTAL_URL: "url.domain.tld"
PORTAL_TYPE: "user"
TRAEFIK_SSL_CERTS:
- cert_file: "/localpath/to/cert.crt"
key_file: "/localpath/to/key.key"
hosts:
portaluser1:
ansible_host: "10.0.0.1"
portaluser2:
ansible_host: "10.0.0.2"
portaluser3:
ansible_host: "10.0.0.3"
portaladmin_manager:
vars:
PORTAL_URL: "admin.domain.tld"
PORTAL_TYPE: "instadmin"
TRAEFIK_SSL_CERTS:
- cert_file: "/localpath/to/cert.crt"
key_file: "/localpath/to/key.key"
hosts:
portaladmin1:
ansible_host: "10.0.0.4"
portaladmin2:
ansible_host: "10.0.0.5"
portaladmin3:
ansible_host: "10.0.0.6"
api_manager:
hosts:
api1:
ansible_host: "10.3.1.1"
api2:
ansible_host: "10.3.1.2"
api3:
ansible_host: "10.3.1.3"
Masquer la zone d’administration¶
Sur un portail sans séparation physique dédiée, utilisez la variable PORTAL_DISABLE_ADMIN_AREA pour masquer la zone d’administration aux utilisateurs qui s’y connectent :
portal_manager:
vars:
API_IP:
- ip: "10.0.0.1"
children:
portal1_user:
hosts:
portal1_user1:
ansible_host: "10.0.0.2"
PORTAL_URL: "portal1.domain.tld"
PORTAL_DISABLE_ADMIN_AREA: true
portal2_user:
hosts:
portal2_user1:
ansible_host: "10.0.0.3"
PORTAL_URL: "portal2.domain.tld"
PORTAL_DISABLE_ADMIN_AREA: false
Dans cet exemple, les administrateurs qui se connectent via portal1.domain.tld n’ont pas accès à la zone d’administration, même s’ils disposent des droits nécessaires. Ils doivent utiliser portal2.domain.tld pour y accéder.
Note
PORTAL_DISABLE_ADMIN_AREA masque l’accès à l’interface, indépendamment du rôle de l’utilisateur. Pour restreindre l’authentification elle-même selon le rôle, utilisez plutôt PORTAL_TYPE / PORTALADMIN_TYPE (voir ci-dessus).