接続の認証¶
Snowflakeに対する認証には、次のいずれかのオプションを使用できます。
パスワードベースの認証。これを使用するには、接続を確立するときに
password
オプションを設定します。ウェブブラウザーを介した シングルサインオン(SSO)。
ウェブブラウザーを介したシングルサインオン(SSO)の使用¶
シングルサインオン(SSO)を使用するようにSnowflakeを構成 している場合は、認証にブラウザーベースの SSO を使用するようにクライアントアプリケーションを構成できます。
アプリケーションコード内で、
authenticator
オプションをEXTERNALBROWSER
に設定します。接続を確立するには、
connect
メソッドではなくconnectAsync
メソッドを呼び出します。
例:
// 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({...});
});
認証にブラウザーベースの SSO を使用する方法の詳細については、 ブラウザーベース SSO をご参照ください。
Oktaを介したネイティブ SSO の使用¶
Oktaを介して シングルサインオン(SSO)を使用するようにSnowflakeを構成 している場合は、Oktaを介してネイティブ SSO 認証を使用するようにクライアントアプリケーションを構成できます。
アプリケーションコード内で、
次のオプションを設定します。
authenticator
オプションをOktaアカウントのOkta URL エンドポイントに設定します(例:https://<Oktaアカウント名>.okta.com
)。username
およびpassword
オプションをIDプロバイダー(IdP)のユーザー名とパスワードに設定します。
接続を確立するには、
connect
メソッドではなくconnectAsync
メソッドを呼び出します。
例:
// 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({...});
Oktaを介したネイティブ SSO 認証の使用の詳細については、 ネイティブ SSO --- Oktaのみ をご参照ください。
キーペア認証とキーペアローテーションの使用¶
ドライバーは、キーペア認証とキーローテーションをサポートします。キーペア認証とキーローテーションを使用するには、次の手順に従います。
キーペア認証とキーペアローテーション で説明されているように、キーペア認証を構成します。
アプリケーションコード内で、
authenticator
オプションをSNOWFLAKE_JWT
に設定します。秘密キーを使用して、次のいずれかの方法で認証します。
privateKey
オプションを秘密キーに設定します。privateKeyPath
オプションを秘密キーファイルへのパスに設定します。ファイルが暗号化されている場合は、
privateKeyPass
オプションをパスフレーズに設定して秘密キーを復号化する必要もあります。
次の例では、ファイルから秘密キーをロードし、
privateKey
オプションを秘密キーに設定します。// 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({...});次の例では、
privateKeyPath
オプションを暗号化された秘密キーファイルに設定し、privateKeyPass
オプションを秘密キーの復号化に使用されるパスフレーズに設定します。// 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({...});
OAuth の使用¶
OAuth を使用して接続するには、 authenticator
オプションを OAUTH
に設定し、 token
オプションを OAuth アクセストークンに設定します。例:
// 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({...});
詳細については、 クライアント、ドライバー、およびコネクタ をご参照ください。