Autenticação de conexões¶
Para autenticar no Snowflake, você pode usar uma das seguintes opções:
Autenticação baseada em senha. Para usar isto, defina a opção
password
ao estabelecer a conexão.Login único (SSO) em um navegador da Web.
SSO Nativo através do Okta.
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:
Defina a opção
authenticator
comoEXTERNALBROWSER
.Para estabelecer uma conexão, chame o método
connectAsync
, ao invés do métodoconnect
.
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({...});
});
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:
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
epassword
para o nome de usuário e senha de seu provedor de identidade (IdP).
Para estabelecer uma conexão, chame o método
connectAsync
, ao invés do métodoconnect
.
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({...});
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:
Configure a autenticação de par de chaves, como explicado em Autenticação de pares de chaves e rotação de pares de chaves.
Em seu código do aplicativo:
Defina a opção
authenticator
comoSNOWFLAKE_JWT
.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({...});O exemplo a seguir define a opção
privateKeyPath
para um arquivo de chave privada criptografada e define a opçãoprivateKeyPass
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({...});
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({...});
Para obter mais informações, consulte Clientes, drivers e conectores.