.. _integration_certificats_SIA_Personae: Intégration d'une application externe dans Vitam ################################################ Prérequis ========= L'application externe devra être en mesure de requêter les composants :term:`VITAM` ingest-external et access-external sur leur port de service par le protocole HTTPS. Il faut donc prévoir une ouverture de flux réseau pour le protocole TCP (selon l'infrastructure en place) sur les ports de service des composants :term:`VITAM` ingest-external et access-external. La sécurisation des connexions HTTP avec les applications externes est déléguée aux composants :term:`VITAM` ingest-external et access-external (ou bien éventuellement à un reverse-proxy, selon l'infrastructure de déploiement :term:`VITAM` retenue). La création d'un certificat TLS client pour l'application externe est requise afin de permettre l'habilitation et l'authentification applicative des requêtes émises depuis l'application externe vers les composants :term:`VITAM` ingest-external et access-external. Intégration de certificats clients de VITAM =========================================== Authentification applicative SIA -------------------------------- Le certificat client de l'application externe devra être ajouté dans la base de données du composant security-internal afin de permettre la gestion des habilitations et l'authentification applicative de l'application externe. * Editer le fichier ``environments/group_vars/all/vitam_security.yml`` et ajouter le(s) entrée(s) supplémentaire(s) (sous forme répertoire/fichier.crt) dans la directive ``admin_context_certs`` * Déposer le certificat client de l'application dans `environments/certs/client-external/clients/external` .. Warning:: Bien vérifier qu'aucun certificat ou CA non souhaité ne soit présent dans `environments/certs/*` Lorsque l'authentification du client, par le protocole TLS, est réalisée, l'AC du certificat client doit être déployée dans le truststore des composants :term:`VITAM` ingest-external et access-external. SI le certificat client est passé dans le header http (cas de l'authentification applicative par header http X-SSL-CLIENT-CERT), le certificat client n'est alors pas utilisé dans la négociation TLS et il n'est donc pas nécéssaire d'inclure l'AC associée dans le truststore des composants :term:`VITAM` ingest-external et access-external. Vitam fournit une arborescence de répertoire permettant d'ajouter automatiquement la chaîne de certification client dans les bons keystores. * Déposer les certificats de la chaîne de certification client dans `environments/certs/client-external/ca`. Ensuite, si ce n'est pas déjà fait, il reste à positionner les autres certificats, puis générer les keystores. Pour cela, se référer au :term:`DIN`, chapitre concernant la gestion des certificats. Authentification *personae* --------------------------- Les exemple suivants permettent d'ajouter ou supprimer un certificat présent sous ``/path/to/certificate``. Ajout d'un certificat pour l'authentification Personae ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash curl -XPOST -H "Content-type: application/octet-stream" --data-binary @/path/to/certificate 'http://:/v1/api/personalCertificate' Suppression d'un certificat pour l'authentification Personae ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: bash curl -XDELETE -H "Content-type: application/octet-stream" --data-binary @/path/to/certificate 'http://:/v1/api/personalCertificate' Déploiement des keystores ========================= Vitam n'est pas encore déployé ------------------------------ Déployer Vitam en suivant la procédure indiquée dans le :term:`DIN`. Vitam est déjà déployé ---------------------- Suivre la procédure de la section :ref:`CertifAnchor`.