Authentification des connexions¶
Pour vous authentifier auprès de Snowflake, vous pouvez utiliser l’une des options suivantes :
Authentification par mot de passe. Pour l’utiliser, définissez l’option
password
lors de l’établissement de la connexion.Connexion unique (SSO) via un navigateur Web.
SSO natif via Okta.
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 :
Définissez l’option
authenticator
surEXTERNALBROWSER
.Pour établir une connexion, appelez la méthode
connectAsync
plutôt que la méthodeconnect
.
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({...});
});
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 :
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
etpassword
sur le nom d’utilisateur et le mot de passe de votre fournisseur d’identité (IdP).
Pour établir une connexion, appelez la méthode
connectAsync
plutôt que la méthodeconnect
.
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({...});
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 :
Configurez l’authentification par paire de clés, comme expliqué dans Authentification par paire de clés et rotation de paires de clés.
Dans le code de votre application :
Définissez l’option
authenticator
surSNOWFLAKE_JWT
.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({...});L’exemple suivant définit l’option
privateKeyPath
sur un fichier de clé privée chiffré et définit l’optionprivateKeyPass
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({...});
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({...});
Pour plus d’informations, voir Clients, pilotes et connecteurs.