Authentification des connexions

Pour vous authentifier auprès de Snowflake, vous pouvez utiliser l’une des options suivantes :

Utilisation de l’authentification unique (SSO) via un navigateur Web

Si vous avez configuré Snowflake pour utiliser la connexion unique (SSO), vous pouvez configurer votre application cliente pour utiliser SSO sur navigateur pour l’authentification.

Dans le code de votre application :

  1. Définissez l’option authenticator sur EXTERNALBROWSER.

  2. Pour établir une connexion, appelez la méthode connectAsync plutôt que la méthode connect.

Par exemple :

// Use a browser to authenticate via SSO.
var connection = snowflake.createConnection({
  ...,
  authenticator: "EXTERNALBROWSER"
});
// Establish a connection. Use connectAsync, rather than connect.
connection.connectAsync(
  function (err, conn)
  {
    ... // Handle any errors.
  }
).then(() =>
{
  // Execute SQL statements.
  var statement = connection.execute({...});
});
Copy

Pour plus d’informations sur l’utilisation de SSO sur navigateur pour l’authentification, voir SSO basé sur le navigateur.

Utilisation de SSO natif via Okta

Si vous avez configuré Snowflake pour utiliser la connexion unique (SSO) via Okta, vous pouvez configurer votre application cliente pour utiliser l’authentification SSO native via Okta.

Dans le code de votre application :

  1. Définissez les options suivantes :

    • Définissez l’option authenticator sur le point de terminaison URL Okta de votre compte Okta (par exemple, https://<nom_compte_okta>.okta.com).

    • Définissez les options username et password sur le nom d’utilisateur et le mot de passe de votre fournisseur d’identité (IdP).

  2. Pour établir une connexion, appelez la méthode connectAsync plutôt que la méthode connect.

Par exemple :

// Use native SSO authentication through Okta.
var connection = snowflake.createConnection({
  ...,
  username: '<user_name_for_okta>',
  password: '<password_for_okta>',
  authenticator: "https://myaccount.okta.com"
});

// Establish a connection.
connection.connectAsync(
  function (err, conn)
  {
    ... // Handle any errors.
  }
);

// Execute SQL statements.
var statement = connection.execute({...});
Copy

Pour plus d’informations sur l’utilisation de l’authentification native SSO par Okta, voir Authentication SSO native — Okta uniquement.

Utilisation de l’authentification par paire de clés et rotation de paires de clés

Le pilote prend en charge l’authentification par paire de clés et la rotation des clés. Pour utiliser l’authentification par paire de clés et la rotation des clés, procédez comme suit :

  1. Configurez l’authentification par paire de clés, comme expliqué dans Authentification par paire de clés et rotation de paires de clés.

  2. Dans le code de votre application :

    1. Définissez l’option authenticator sur SNOWFLAKE_JWT.

    2. Utilisez la clé privée pour vous authentifier de l’une des manières suivantes :

      • Définissez l’option privateKey sur la clé privée.

      • Définissez l’option privateKeyPath comme le chemin d’accès au fichier de la clé privée.

        Si le fichier est chiffré, vous devez également définir l’option privateKeyPass sur la phrase secrète pour déchiffrer la clé privée.

L’exemple suivant charge la clé privée depuis un fichier et définit l’option privateKey sur la clé privée :

// Read the private key file from the filesystem.
var crypto = require('crypto');
var fs = require('fs');
var privateKeyFile = fs.readFileSync('<path_to_private_key_file>/rsa_key.p8');

// Get the private key from the file as an object.
const privateKeyObject = crypto.createPrivateKey({
  key: privateKeyFile,
  format: 'pem',
  passphrase: 'passphrase'
});

// Extract the private key from the object as a PEM-encoded string.
var privateKey = privateKeyObject.export({
  format: 'pem',
  type: 'pkcs8'
});

// Use the private key for authentication.
var connection = snowflake.createConnection({
  ...
  authenticator: "SNOWFLAKE_JWT",
  privateKey: privateKey
});

// Establish a connection.
connection.connect(
  function (err, conn)
  {
    ... // Handle any errors.
  }
);

// Execute SQL statements.
var statement = connection.execute({...});
Copy

L’exemple suivant définit l’option privateKeyPath sur un fichier de clé privée chiffré et définit l’option privateKeyPass sur la phrase secrète utilisée pour déchiffrer la clé privée :

// Use an encrypted private key file for authentication.
// Specify the passphrase for decrypting the key.
var connection = snowflake.createConnection({
  ...
  authenticator: "SNOWFLAKE_JWT",
  privateKeyPath: "<path-to-privatekey>/privatekey.p8",
  privateKeyPass: '<passphrase_to_decrypt_the_private_key>'
});

// Establish a connection.
connection.connect(
  function (err, conn)
  {
    ... // Handle any errors.
  }
);

// Execute SQL statements.
var statement = connection.execute({...});
Copy

Utilisation de OAuth

Pour se connecter en utilisant OAuth, définissez l’option authenticator sur OAUTH et l’option token sur le jeton d’accès OAuth. Par exemple :

// Use OAuth for authentication.
var connection = snowflake.createConnection({
  ...
  authenticator: "OAUTH",
  token: "<your_oauth_token>"
});

// Establish a connection.
connection.connect(
  function (err, conn)
  {
    ... // Handle any errors.
  }
);

// Execute SQL statements.
var statement = connection.execute({...});
Copy

Pour plus d’informations, voir Clients, pilotes et connecteurs.