Utilisation de TLS mutuel
L'authentification mTLS (Mutual Transport Layer Security) garantit que le trafic entre un client et un serveur est sécurisé et digne de confiance dans les deux sens. Il n'est accessible qu'aux clients ayant souscrit un plan d'entreprise, quel qu'il soit.
Lorsque mTLS est configuré, l'accès est accordé uniquement aux demandes avec un certificat client correspondant. Lorsqu'une demande parvient à votre application, CIS répond en demandant le certificat du client. Si le client ne parvient pas à présenter le certificat, la demande n'est pas autorisée à continuer. Sinon, l'échange de clé se poursuit.

Configuration de TLS mutuel
Le protocole TLS mutuel n'est pas activé par défaut. Il s'agit d'un service supplémentaire qui nécessite une autorisation et une habilitation préalables et qui est activé par domaine.
Pour obtenir une autorisation, créez un dossier d'assistance.
Une fois le protocole mTLS activé pour votre compte, procédez comme suit pour l'activer.
- Naviguez jusqu'à la page Sécurité dans la console CIS.
- Sélectionnez l'onglet TLS mutuel.
- Cliquez sur Activer pour activer la fonction.
Une fois que mTLS est activé, il ne peut plus être désactivé.
Pour configurer l'authentification mTLS dans la console IBM CIS pour un point de terminaison particulier :
-
Dans la table Certificats racine, cliquez sur Ajouter pour définir un nouveau certificat racine.
-
Collez le contenu du certificat dans le champ de contenu. Indiquez le nom de l'autorité de certification racine et ajoutez un ou plusieurs noms de domaine complets (FQDN) des terminaux qui doivent utiliser ce certificat. Ces FQDN sont les noms d'hôtes utilisés pour les ressources protégées par la stratégie d'application. Vous devez associer l'autorité de certification racine au FQDN utilisé par l'application à protéger.
-
Cliquez sur Sauvegarder.
Si votre zone utilise un certificat intermédiaire en plus du certificat racine, téléchargez la chaîne entière.
-
Dans la table des stratégies d'accès MTLS, créez une application d'accès qui applique l'authentification mTLS. L'application doit être générée avec un nom d'hôte associé à la fenêtre modale de téléchargement du certificat. La section de la stratégie est prédéfinie pour appliquer une décision
non_identity
et une règleinclude
pour qu'elle corresponde à un certificat valide.
Test de l'accès à mTLS
L'exemple suivant utilise curl
pour tester l'authentification mTLS en effectuant des requêtes avec et sans certificat client.
-
Tentative d'accès au site sans certificat client.
Cet exemple montre comment utiliser curl pour tester l'accès à un site qui impose mTLS. La cible URL dans cet exemple est
https://auth.example.com
.curl -sv https://auth.example.com
Comme aucun certificat de client n'est fourni, la demande est censée échouer avec une réponse
403 Forbidden
. -
Ajoutez votre certificat client et votre clé privée à la demande :
curl -sv https://auth.example.com --cert example.pem --key key.pem
Si le client est correctement authentifié, la réponse comprend un en-tête
CF_Authorization Set-Cookie
, indiquant que l'authentification mTLS est réussie.
Validation de TLS mutuel
Lorsque vous activez cette politique d'accès, utilisez le flux de travail suivant pour valider les certificats des clients :
Toutes les demandes envoyées à l'origine sont évaluées à la recherche d'un certificat client valide.
- Le client établit une connexion en envoyant un message
Hello
. - L'application d'accès répond par un
Hello
et demande le certificat du client. - Le client envoie son certificat pour validation.
- Le certificat du client est authentifié par rapport à l'autorité de certification racine configurée.
- Si une chaîne de certificats est utilisée, le système vérifie également si des certificats ont expiré et valide l'ensemble de la chaîne.
- Si le certificat du client est fiable, un jeton Web JSON (JWT) signé est généré pour le client, ce qui permet à la demande et aux demandes ultérieures d'être traitées.
- Si le client ne présente pas de certificat valide, le serveur renvoie une réponse
403 Forbidden
.
Pour récupérer les certificats d'accès avec l'API, voir Liste des certificats d'accès.