こちらのページで基本的な使い方を把握した Snowflake に対して、外部の ID 基盤 (IdP; ID Provider) による認証でログインするための設定例を記載します。IdP としては Auth0 を用います。
参考資料:
Create Application をクリックします。
Native を選択します。
Settings をクリックします。
URL を設定して Save Changes をクリックします。例:
https://xxx12345.us-east-1.snowflakecomputing.com
https://xxx12345.us-east-1.snowflakecomputing.com,https://xxx12345.us-east-1.snowflakecomputing.com/fed/login
https://xxx12345.us-east-1.snowflakecomputing.com/fed/logout
SAML2 をクリックします。
以下の値を設定して Enable → Save をクリックします。
https://xxx12345.us-east-1.snowflakecomputing.com
{
"audience": "https://xxx12345.us-east-1.snowflakecomputing.com",
"recipient": "https://xxx12345.us-east-1.snowflakecomputing.com/fed/login",
"signatureAlgorithm": "rsa-sha256",
"digestAlgorithm": "sha256",
"destination": "https://xxx12345.us-east-1.snowflakecomputing.com/fed/login",
"nameIdentifierProbes": [
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
],
"logout": {
"callback": "https://xxx12345.us-east-1.snowflakecomputing.com/fed/logout"
},
"binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
}
Create User をクリックして、メールアドレスを指定します。
メールアドレスの認証を行います。
Auth0 Application の Settings をクリックします。
Advanced Settings の Certificates をクリックして、Signing Certificate をコピーします。
Endpoints をクリックします。
SAML Protocol URL をコピーします。
Snowflake で以下のクエリを実行します。certificate
には Certificates のヘッダとフッタ、および改行を除いて一行にした値を指定します。
ALTER ACCOUNT SET saml_identity_provider = '{
"certificate": "XXXXX",
"ssoUrl": "https://myauth.jp.auth0.com/samlp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"type": "Custom",
"label": "Auth0"
}';
更に、以下のパラメータも設定します。
ALTER ACCOUNT SET sso_login_page = true;
検証用のユーザを作成します。login_name
に Auth0 のユーザのメールアドレスを指定します。password
に NULL を設定することで、パスワードログインを無効化します。
CREATE USER ssotestuser
password = NULL
login_name = 'myuser@gmail.com'
default_role = SYSADMIN;
ログイン画面で Sign in using Auth0 が選択できるようになっています。
Auth0 で作成したユーザでログインします。