Autenticação de conexões

Para autenticar no Snowflake, você pode usar uma das seguintes opções:

Uso do login único (SSO) em um navegador da Web

Se você tiver configurado o Snowflake para usar o login único (SSO), pode configurar seu aplicativo cliente para usar o SSO baseado em navegador para autenticação.

Em seu código do aplicativo:

  1. Defina a opção authenticator como EXTERNALBROWSER.

  2. Para estabelecer uma conexão, chame o método connectAsync, ao invés do método connect.

Por exemplo:

// 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

Para obter mais informações sobre o uso de SSO para autenticação com base no navegador, ver SSO baseado em navegador.

Uso de SSO nativo através do Okta

Se você tiver configurado o Snowflake para usar o login único (SSO) através do Okta, pode configurar seu aplicativo cliente para usar a autenticação com SSO nativo através do Okta.

Em seu código do aplicativo:

  1. Defina as seguintes opções:

    • Defina a opção authenticator para o ponto de extremidade de URL do Okta para sua conta Okta (por exemplo, https://<nome_conta_okta>.okta.com).

    • Defina as opções username e password para o nome de usuário e senha de seu provedor de identidade (IdP).

  2. Para estabelecer uma conexão, chame o método connectAsync, ao invés do método connect.

Por exemplo:

// 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

Para obter mais informações sobre o uso da autenticação com SSO nativo através do Okta, consulte SSO nativo — Somente Okta.

Uso de autenticação de pares de chaves e rotação de pares de chaves

O driver suporta autenticação de par de chaves e rodízio de chaves. Para utilizar a autenticação de pares de chaves e o rodízio de chaves, siga os passos abaixo:

  1. Configure a autenticação de par de chaves, como explicado em Autenticação de pares de chaves e rotação de pares de chaves.

  2. Em seu código do aplicativo:

    1. Defina a opção authenticator como SNOWFLAKE_JWT.

    2. Use a chave privada para autenticar de uma das seguintes maneiras:

      • Defina a opção privateKey com a chave privada.

      • Defina a opção privateKeyPath com o caminho para o arquivo de chave privada.

        Se o arquivo for criptografado, você também deve definir a opção privateKeyPass com a senha para descriptografar a chave privada.

O exemplo a seguir carrega a chave privada de um arquivo e define a opção privateKey para a chave privada:

// 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

O exemplo a seguir define a opção privateKeyPath para um arquivo de chave privada criptografada e define a opção privateKeyPass para a senha usada para descriptografar a chave privada:

// 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

Uso de OAuth

Para conectar usando OAuth, defina a opção authenticator como OAUTH e a opção token com o token de acesso OAuth. Por exemplo:

// 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

Para obter mais informações, consulte Clientes, drivers e conectores.