Procedure d’exploitation

Démarrage de la solution

ansible-playbook  -i environments/<hostfile environnement> --vault-password-file
vault_pass.txt --extra-vars=@./environments/vitamui_extra_vars.yml start_vitamui.yml

Arrêt de la solution

ansible-playbook  -i environments/<hostfile environnement> --vault-password-file
vault_pass.txt --extra-vars=@./environments/vitamui_extra_vars.yml stop_vitamui.yml

Upgrade de la solution

Actuellement, un upgrade de solution s’apparente à une installation de la solution.

ansible-playbook  -i environments/<hostfile environnement> --vault-password-file
vault_pass.txt --extra-vars=@./environments/vitamui_extra_vars.yml vitamui.yml

Les services VitamUI sont stateless et vont être remplacés par une nouvelle version lors de l’opération précédente.

Les scripts de base de données MongoDb sont versionnés via un changelog interne. Un même script ne peut pas être joué 2 fois. Les nouveaux scripts vont être intégrés et les anciens scripts ou doublons de scripts ne vont pas être pris en compte.

Sauvegarde de la solution

La base de données Mongodb utilisée par VitamUI peut être sauvegardée de 2 manières:

  1. via un playbook de sauvegarde (mongo_backup.yml)
  2. via un dump (commande mongodump)

Sauvegarde via playbook (1)

Au préalable il est nécessaire de valoriser correctement les variables:

mongo_dump_folder: /backup/mongod/
mongo_backup_reinstall:
  - db: "iam"
    collections: ["customers","externalParameters","groups","owners","profiles",
    "sequences","subrogations","tenants","users","providers"]
  - db: "admin"
    collections: []

La structure mongo_backup_reinstall va permettre de sauvegarder la base entière si elle est renseignée de la sorte:

- db: "admin"
    collections: []

Et les collections uniquement lorsque mentionné comme suit:

  - db: "iam"
    collections: ["customers","externalParameters","groups","owners","profiles",
    "sequences","subrogations","tenants","users","providers"]

Le résultat du backup pourra se retrouver dans

mongo_dump_folder: /backup/mongod/
ansible-playbook  -i environments/<hostfile environnement> --vault-password-file
vault_pass.txt --extra-vars=@./environments/vitamui_extra_vars.yml mongo_backup.yml

Sauvegarde via la commande mongodump (2)

Se rendre sur la machine (vm) hébergeant l’instance mongodb de VitamUI et exécuter la commande suivante:

mongodump --host "ip_machine:27017" -u [user] -p [mdp] -v --gzip 
--out="/backup/mongod/`date \+\%Y\%m\%d_\%s`"

Restoration de la solution

De la même manière, la base de données Mongodb utilisée par VitamUI peut être sauvegardée de 2 manières:

  1. via un playbook de sauvegarde (mongo_backup.yml)
  2. via un dump (commande mongodump)

Restoration via playbook (1)

La restoration va chercher le backup présent dans le dossier que renseigne la variable “mongo_dump_folder”.

ansible-playbook  -i environments/<hostfile environnement> --vault-password-file
vault_pass.txt --extra-vars=@./environments/vitamui_extra_vars.yml 
--extra-vars \"keep_mongodb_conf=True\" mongo_backup.yml

Restoration via la commande mongodump (2)

Se rendre sur la machine (vm) hébergeant l’instance mongodb de VitamUI et exécuter la commande suivante:

mongorestore --host [ip machinie] --port 27017 --username [user] 
--password [mdp] "/backup/mongod/[nom_backup] --drop --gzip --maintainInsertionOrder

Attention ! Certaines informations Vitam sont sauvegardées dans VitamUI.

Changement de PKI.

Les certificats utilisés par Vitam et VitamUI peuvent être amenés à être changés en raison de sécurité ou simplement de par leur expiration.

Certificat Vitamui client expiré dans Vitam

Le certificat client VitamUI.crt est utilisé par Vitam afin que l’application VitamUi accède aux informations de Vitam. Son échange se fait par les playbooks Vitam remove_context.yml et add_context.yml dans les sources de Vitam.

Renseigner le fichier postinstall_param.yml avec les informations du certificat actuel et lancer la commande suppression suivante:

ansible-playbook  -i environments/<hostfile environnement> --vault-password-file
vault_pass.txt --extra-vars=@./environments/vitamui_extra_vars.yml remove_context.yml

Se connecter à l’Ihm_demo de Vitam pour vérifier la bonne suppression du context vitamui_context dans les contextes applicatifs Vitam.

Une fois cette opération réalisée, il faut : _Régénérer ou échanger le certificat vitamui.crt afin qu’il soit valide. _Modifier les informations du fichier postinstall_param.yml avec le nom du nouveau certificat et lancer la commande suivante:

ansible-playbook  -i environments/<hostfile environnement> --vault-password-file
vault_pass.txt --extra-vars=@./environments/vitamui_extra_vars.yml add_context.yml

Vérifier alors dans les contextes applicatifs Vitam que le contexte vitamui_context est de nouveau présent (rattaché de manière transparente au nouveau certificat).

Certificats expirés dans les services VitamUI

Regénérer la PKI complète VitamUI et Vitamui.

Rédéployer la PKI pour les 2 solutions.

Les commandes sont précisées dans le dossier d’installation VitamUI.

Analyse des problèmes VitamUI

Logs

Les traces applicatives ou techniques de VitamUI se trouvent sur les machines hébergeant l’application dans /vitamui/log/nom_service/ pour le service considéré.

Les logs sont écrits via le service rsyslog installé sur toutes les machines de la solution.

MongoDb

Se connecter à la vm où est hébergé l’instance mongo.

Se connecter à la base de données via l’utilitaire mongo.

Exemple de commande:

mongo --host <ip machine> --port 27017 admin --username=<user> --password=<password>

Configuration des profils de mot de passe:

Profil ANSSI:

Le profil par défaut chargé au démarrage de CAS, la configuration de ce profil sur une plateforme déjà installé se fait sur la machine hénergeante le serveur CAS, la configuration se situe dans /vitamui/conf/cas-server/application.yml, dans la section password:

L’exploitant peut changer quelques contraintes de la complexité du mot de passe, sans violer les standards de l’ANSSI.

Exemple de changement de la taille du mot de passe:

dans la section password:, l’attribut length est par défaut à 12, le changement de la taille du mot de passe revient à changer cet attribut length, cette valeur sera automatiquement portée par l’attribut cas.authn.pm.policyPattern: qui contient l’expression ${password.length}$. l’attribut cas.authn.pm.policyPattern: contient l’expression régulière de validation du mot de passe et qui se trouve dans le meme fichier de configuration.

Cette valeur ne devra pas etre inférieur à la valeur par défaut, avec le profil anssi.

Exemple de désactivation du contrainte de vérification d’existence d’une occurrence d’un nom d’utilisateur dans les mots de passe:

Cette contrainte est traduite par l’attribut: check-occurrence, qui est un boolean par défaut égal à true,

Donc check-occurrence: false désactivera cette vérification.

Exemple de changement du nombre de caractères tolérables du nom d’utilisateur à utiliser dans le mot de passe:

Cette contraintes pourra etre changée avec l’attribut occurrences-chars-number:, par défault la valeur est égal à 3,

Donc occurrences-chars-number: 5, augmentera le nombre de caractère tolérable issues du nom de l’utilisateur à utiliser dans un mot de passe.

Cette valeur ne devra pas etre inférieur à la valeur par défaut.

Si la taille du nom de l’utilisateur est inférieur à cette valeur, la contrainte est tolérable.

Exemple de changement du nombre des anciens mots de passe à ne pas réutiliser

Cette contraintes pourra etre changée avec l’attribut max-old-password:, par défault la valeur est égal à 12 dans le profil anssi, et 3 dans le profil custom,

Donc max-old-password: 13, augmentera le nombre d’anciens mots de passe à ne pas réutiliser’

Ce changement devra etre fait aussi sur le composant iam-internal, dans le fichier /vitamui/conf/iam-internal/application.yml, dans la section password.

Cette valeur ne devra pas etre inférieur à la valeur par défaut, avec le profil anssi. Le redémarrage du composant iam-internal est nécessaire avec ce changement.

Exemple de personnalisation des messages redues à l’utilisateur:

Les messages peuvent etre personnalisés par l’exploitant dans le bloc, par langue

constraints:
    defaults:
      fr:
            messages:
                - message 1
                - message 2
                - ...
            special-chars:
                title: 'message 3'
                messages:
                    - message 4
                    - message 5
        en:
            messages:
                - message 1
                - message 2
                - ...
            special-chars:
                title: 'message 3'
                messages:
                    - message 4
                    - message 5
        de:
            messages:
                - message 1
                - message 2
                - ...
            special-chars:
                title: 'message 3'
                messages:
                    - message 4
                    - message 5
      ...

C’est à charge de l’exploitant de respecter les contraintes traduites, qui devront etre en cohérence avec les blocs / attributs de son profil anssi, et qui devront pas violer les standards préconisés par l’ANSSI et la PSSI du ministère de la culture.

A chaque modification

Profil personnalisé:

Exemple de changement de la taille du mot de passe:

dans la section password:, l’attribut length est par défaut à 12, le changement de la taille du mot de passe revient à changer cet attribut length, cette valeur sera automatiquement portée par l’attribut cas.authn.pm.policyPattern: qui contient l’expression ${password.length}$ , à la fin de l’expression régulière. l’attribut cas.authn.pm.policyPattern: contient l’expression régulière globale de validation du mot de passe et qui se trouve dans le meme fichier de configuration.

Cette valeur est par défaut égal à 8 pour le profil custom.

Exemple de changement du nombre des anciens mots de passe à ne pas réutiliser

Les memes configurations que pour le profil anssi.

Veillez à redémarrer le serveur CAS, et le composant iam-internal pour appliquer ces changements.

Configuration avant installation de VITAMUI:

Cette section est détaillée dans le document d’installation de VITAMUI.