Portail utilisateur et administrateur¶
URL des Portails¶
Par défaut les serveurs Infra et Portal répondent sur toutes les requêtes avec un certificat autosigné.
Si vous avez besoin de paramètrer une URL spécifique pour le Portail utilisateur, il faut utiliser la variable suivante:
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"
Si vous avez besoin de paramètrer une URL spécifique pour le Portail administrateur, il faut utiliser la variable suivante:
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¶
Il est possible d’activer le filtrage sur IP des portails utilisateurs et administrateurs.
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 administrateurs il est possible de spécifier le 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
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 il vous suffit de créer un fichier inventaire en remplacant le groupe infra_manager par 2 groupes 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 d’une séparation physique vous pouvez aussi restreindre les connecteurs SSO par portail.
Lors de la creation d’un connecteur vous obtenez un GUID qu’il faut ensuite renseigner dans le fichier inventaire dans la section du portal ciblé avec une variable nommée PORTAL_LDAP_CONNECTORS pour les connecteurs LDAP et 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"
Si vous avez plusieurs connecteurs à renseigner sur un meme portail, rajouter autant de ligne 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"
Serveur Signal par Portail¶
Afin de séparer complètement les portails, vous avez la possibilité de leur assigner des serveurs Signaux spécifiques qui seront utilisés par les conteneurs lancés depuis ces portails.
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, mais avec l’option PORTAL_TYPE il est possible d’en restreindre l’accès à un type d’utilisateur.
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 comme un portail dédié aux administrateurs. Vous pouvez spécifier quels types d’administrateurs peuvent se connecter en utilisant la variable PORTALADMIN_TYPE.
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"