Connexion d'une application externe

Vos applications et pilotes utilisent des chaînes de connexion pour établir une connexion à IBM Cloud® Databases for Redis. Le service fournit des chaînes de connexion spécifiquement pour des pilotes et des applications. Les chaînes de connexion sont affichées dans le panneau Endpoints de la page Overview de votre déploiement et peuvent également être récupérées à partir du plug-in CLI Cloud Databases et de l'API Cloud Databases.

Les chaînes de connexion peuvent être utilisées par n'importe laquelle des informations d'identification que vous créez dans votre déploiement. Bien que vous puissiez utiliser le nom d'administrateur pour toutes vos connexions et applications, il peut être préférable de créer des utilisateurs à utiliser spécifiquement pour vos applications. Pour plus d'informations, voir Obtenir des chaînes de connexion.

Chaînes de connexion pour les applications

Toutes les informations dont un pilote a besoin pour se connecter à votre déploiement se trouvent dans la sectionredis" d'un identifiant créé sur la page Service credentials. Le tableau ci-après est fourni à titre de référence.

informations de connexionredis
Nom de zone Index Description
Type Type de connexion - pour Redis, il s'agit de "URI".
Scheme Schéma pour un URI - pour Redis, il s'agit de "rediss".
Path Chemin d'accès à un URI - pour Redis, il s'agit du numéro de la base de données.
Authentication Username Nom d'utilisateur que vous utilisez pour vous connecter.
Authentication Password Le mot de passe de l'utilisateur - peut être affiché sous la forme $PASSWORD.
Authentication Method Méthode d'authentification. L'authentification "directe" est gérée par le pilote.
Hosts 0... Nom d'hôte et port auxquels se connecter.
Composed 0... URI combinant schéma, authentification, hôte et chemin d'accès.
Certificate Name Nom attribué au certificat propriétaire du service pour le déploiement de la base de données.
Certificate Base64 Version codée en base64 du certificat.
  • 0... indique qu'il peut y avoir une ou plusieurs de ces entrées dans un tableau.

Les pilotes Redis peuvent souvent établir une connexion avec votre déploiement lorsqu'ils disposent de la chaîne de connexion au format URI qui se trouve dans la zone "composed" des informations de connexion. Par exemple, si vous définissez la chaîne de connexion dans la variable d'environnement " REDIS_URL, comme dans l'exemple suivant :

export REDIS_URL=rediss://admin:$PASSWORD@e6b2c3f8-54a6-439e-8d8a-aa6c4a78df49.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud:32371/0

Ensuite, le client Node.js est en mesure d'établir une connexion avec.

let connectionString = process.env.REDIS_URL;

if (connectionString === undefined) {  
  console.error("Please set the REDIS_URL environment variable");
  process.exit(1);
}

let client = null;

client = redis.createClient(connectionString, {
  tls: { servername: new URL(connectionString).hostname }
});

Il est également possible d'analyser la chaîne de connexion et d'en envoyer les éléments au gestionnaire de connexion, comme dans l'exemple suivant du client Python:

parsed = urlparse(connection_string)

r = redis.StrictRedis(
    host=parsed.hostname,
    port=parsed.port,
    password=parsed.password,
    ssl=True,
    ssl_ca_certs='/etc/ssl/certs/ca-certificates.crt',
    decode_responses=True)

Redis dispose d'un ensemble de clients que les applications peuvent utiliser. Une liste assez complète est conservée sur le site Redis. Lors du choix d'un client, il est utile de garder à l'esprit les fonctionnalités qui vous permettent de concevoir facilement votre application pour le cloud, comme la configuration de la haute disponibilité, de la sécurité et de la prise en charge des certificats propriétaires de service.

Prise en charge des certificats TLS et des certificats propriétaires de service

TLS 1.2 est activé pour toutes les connexions à Databases for Redis, par conséquent, le pilote que vous utilisez pour la connexion doit pouvoir prendre en charge le chiffrement TLS.

Si votre pilote ne prend pas en charge le protocole rediss: ou les connexions TLS/SSL, il est toujours possible d'acheminer des connexions vers le noeud final de base de données Redis à l'aide d'une application tunnel TLS/SSL, telle que Stunnel. Un exemple d'utilisation de Stunnel peut être consulté sur la page Connexion avec un client de ligne de commande. Dans cet exemple, Stunnel est utilisé pour connecter l'application redis-cli.

Les déploiements sont également accompagnés d'un certificat propriétaire de service afin que vous puissiez vérifier le serveur lors de l'établissement d'une connexion. Bien que non obligatoire, cette étape de sécurité supplémentaire est recommandée si elle est prise en charge par le client.

Pour plus d'informations, voir la foire aux questions sur les certificatsCloud Databases.

Utilisation du certificat de propriété du service

  1. Copiez les informations relatives au certificat à partir du panneau Endpoints ou du champ Base64 des informations de connexion de la lettre de créance de service.
  2. Si besoin, décodez la chaîne Base64 en texte.
  3. Sauvegardez le certificat dans un fichier. (Vous pouvez utiliser le nom qui est fourni ou votre propre nom de fichier.)
  4. Indiquez le chemin d'accès au certificat au pilote ou au client.

Prise en charge du plug-in CLI pour le certificat propriétaire du service

Vous pouvez afficher le certificat décodé pour votre déploiement avec le plug-in CLI à l'aide d'une commande comme :

ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>

Cette commande décode le site Base64 en texte. Copiez et sauvegardez le résultat de la commande dans un fichier et indiquez le chemin du fichier au client.