9. Intégration d’une application externe dans Vitam¶
9.1. Prérequis¶
L’application externe devra être en mesure de requêter les composants VITAM ingest-external
et access-external
sur leurs ports de service respectifs 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 VITAM ingest-external
et access-external
.
La sécurisation des connexions HTTP avec les applications externes est déléguée aux composants VITAM ingest-external
et access-external
(ou bien éventuellement à un reverse-proxy, selon l’infrastructure de déploiement 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 VITAM ingest-external et access-external.
9.2. Intégration de certificats clients de VITAM¶
Note
Cette section décrit l’ajout de certificats SIA ou personnels (Personae) dans le cadre des procédures d’exploitation de la solution logicielle VITAM. L’intégration de certificats clients de VITAM au déploiement est décrite dans le document d’installation (DIN).
9.2.1. Authentification applicative SIA¶
Le certificat client de l’application externe doit ê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.
L’exemple suivant permet d’ajouter un certificat présent sous /path/to/certificate
et associé au contexte applicatif portant l’identifiant contexte_identifier
.
9.2.1.1. Ajout d’un certificat pour l’authentification applicative SIA¶
curl -XPOST -H "Content-Type:application/json" 'http://<ip admin security-internal>:<port admin security-internal>/v1/api/identity' -d "
{
\"contextId\":\"contexte_identifier\",
\"certificate\":\"$(base64 /path/to/certificate)\"
}"
Note
Se repporter à la documentation sur la gestion des habilitations pour ce qui concerne l’ajout de contextes applicatifs.
Avertissement
Lorsque l’authentification du client, par le protocole TLS, est réalisée, la CA du certificat client doit être déployée dans le truststore des composants VITAM ingest-external
et access-external
. Dans ce cas de figure, suivre la procédure de la section Mise à jour des certificats, en ayant pris soin au préalable de déposer les certificats de la chaîne de certification client dans le répertoire environments/certs/client-external/ca. 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 la CA associée dans le truststore des composants VITAM ingest-external
et access-external
.
9.2.2. Authentification Personae¶
Le certificat personnel (Personae) doit être ajouté dans la base de données du composant security-internal
, afin de permettre l’authentification renforcée de l’utilisateur.
Les exemples suivants permettent d’ajouter ou supprimer un certificat présent sous /path/to/certificate
.
9.2.2.1. Ajout d’un certificat pour l’authentification Personae¶
curl -XPOST -H "Content-type: application/octet-stream" --data-binary @/path/to/certificate 'http://<ip admin security-internal>:<port admin security-internal>/v1/api/personalCertificate'
9.2.2.2. Suppression d’un certificat pour l’authentification Personae¶
curl -XDELETE -H "Content-type: application/octet-stream" --data-binary @/path/to/certificate 'http://<ip admin security-internal>:<port admin security-internal>/v1/api/personalCertificate'
9.3. Révocation de certificats clients de VITAM¶
La release « R8 » introduit une nouvelle fonctionnalité permettant la révocation des certificats SIA et Personae afin d’empecher des accès non autorisés aux API de la solution logicielle VITAM (vérification dans la couche https des CRL).
Le fonctionnement de la validation des certifcats de la solution logicielle VITAM SIA et Personae par CRL est le suivant :
L’administrateur transmet à la solution logicielle VITAM le CRL d’un CA qui a émis le certificat présent dans la solution logicielle VITAM, via le point d’API suivant
http://{{ hosts_security_internal }}:{{vitam.security_internal.port_admin}}/v1/api/crl
Prudence
La CRL fournie doit être obligatoirement au format DER (cf. http://www.ietf.org/rfc/rfc3280.txt »>RFC 3280: Internet X.509 Public Key Infrastructure Certificate and CRL Profile)
Exemple:
curl -v -X POST -u {{ admin_basic_auth_user }}:{{ admin_basic_auth_password }} http://{{ hosts_security_internal }}:{{vitam.security_internal.port_admin}}/v1/api/crl -H 'Content-Type: application/octet-stream' --data-binary @/path/to/crl/my.crl
Le paramètre adminUser
correspond à la valeur admin_basic_auth_user
déclarée dans le fichier vitam_security.yml
Le paramètre adminPassword
correspond à la valeur admin_basic_auth_password
déclarée dans le fichier vault-vitam.yml
- Le système va contrôler tous les certificats (collections
identity.Certificate
etidentity.PersonalCertificate
) émis par le IssuerDN correspondant à la CRL, en vérifiant si ces derniers sont révoqués ou non. Si c’est le cas, alors la solution logicielle VITAM positionne le statut du certificat révoqué à REVOKED. Cela a pour conséquence le rejet de tout accès aux API VITAM avec utilisation du certificat révoqué (les filtres de sécurité émettront des exceptions dans les journaux de log). - Une alerte de sécurité est émise dans les journaux en cas de révocation.
9.4. Déploiement des keystores¶
9.4.2. Vitam est déjà déployé¶
Suivre la procédure de la section Mise à jour des certificats.