Snowflake

Before You Begin

Introduction

This document describes how to configure Oracle Identity Cloud Service to provide Single Sign-On (SSO) for Snowflake using SAML.

About Snowflake

Snowflake Computing offers cloud-based data storage and analytics service. It allows organizations to store and analyze data using cloud-based hardware and software.

After integrating Snowflake with Oracle Identity Cloud Service:

  • Users can access Snowflake using their Oracle Identity Cloud Service login credentials.
  • Users can start Snowflake using the Oracle Identity Cloud Service My Apps console.
  • Admins can assign and revoke user access to the Snowflake app using the Oracle Identity Cloud Service administration console.

What Do You Need?

  • An Oracle Identity Cloud Service account with authorization rights to manage apps and users (Identity Domain Administrator or Application Administrator).
  • A Snowflake account with authorization rights to configure federated authentication.
  • Make sure that the username of each user in Snowflake matches the primary username in the Oracle Identity Cloud Service account.

Configuring the Snowflake App in Oracle Identity Cloud Service

Use this section to register and activate the Snowflake app, and then assign users to the app.

Prerequisite Steps

A dedicated account name and a CLI client is required before Snowflake registration in Oracle Identity Cloud Service and SSO configuration for Snowflake respectively. You obtain both from Snowflake.

  1. Access Snowflake as an administrator using the URL: https://<Account_ID>.<Regional_ID>.snowflakecomputing.com/console/login#/ that you received in an email from Snowflake to activate your account. The Snowflake home page appears.

  2. Make note of the Account ID (in uppercase) and Regional ID values in the following format: <Account ID>.<Regional ID> to obtain the account name.

    Note: Use this value as account name during Snowflake registration in the "Registering and Activating the Snowflake App" section.

  3. In the upper-right corner, click the help icon, select Download from the drop-down list. The Downloads dialog box appears.

  4. In the CLI Client (snowsql) tab, select the relevant installer as per your system specifications, and then click Done. Execute the downloaded installer to install the CLI Client.

    Note: This CLI Client must be installed before you configure SSO for Snowflake in the "Configuring SSO for Snowflake" section.

Registering and Activating the Snowflake App

  1. Access the Oracle Identity Cloud Service administration console, select Applications, and then click Add.

  2. Click App Catalog.

  3. Search for Snowflake, click Add, and then click Next.

  4. In the App Details section, enter your Snowflake Account Name, and then click Next.

    Tip: Use the account name value obtained by combining the Account ID and Regional ID values in the "Prerequisite Steps" section.

  5. Click Download Signing Certificate.

    Tip: Use this file later during the Snowflake configuration in the "Configuring SSO for Snowflake" section.

  6. Click Finish. Oracle Identity Cloud Service displays a confirmation message.

  7. Click Activate, and then click Activate Application. Oracle Identity Cloud Service displays a confirmation message.

Assigning Users to the Snowflake App

  1. On the Snowflake app page in Oracle Identity Cloud Service, select Users, and then click Assign. The Assign Users window appears.

  2. Select users that you want to assign to Snowflake, and then click OK. Oracle Identity Cloud Service displays a confirmation message stating that the Snowflake app is assigned to the users that you selected.

Configuring SSO for Snowflake

  1. Open a command prompt window, and execute the snowsql -a <Account_Name> command. Wait for the latest client version to be installed the first time you try to access the CLI client.

    Note: This is the account name that you obtained earlier while performing the steps in the "Prerequisite Steps" section.

  2. When prompted, enter the username and password of the administrator, and access the CLI CLient that you installed earlier by performing the steps in the "Prerequisite Steps" section.

  3. Execute the use role accountadmin;command to switch to the Account Admin role to have the rights to configure SSO for Snowflake.

  4. Execute the alter account set saml_identity_provider = '{ "certificate": "<IDP_Signing_Certificate>", "ssoUrl": "<Sign-in URL/SSO Endpoint>", "type" : "Custom", "label" : "<Text to appear in the single sign-on login button>" }'; command by replacing the following attributes in the command.

    This table lists the mandatory federated authentication attributes that you must set to complete the SSO configuration.
    Attribute Value
    <IDP_Signing_Certificate> Replace with the content between begin certificate and end certificate from the identity provider signing certificate that you obtained during Snowflake registration. See the "Registering and Activating the Snowflake App" section.
    <Sign-in URL/SSO Endpoint> Replace with the Sign-in URL/SSO Endpoint: https://<IDCS-Service-Instance>.identity.oraclecloud.com/fed/v1/idp/sso.
    <Text to appear in the single sign-on login button> Replace with the text that must be the label for the button used to initiate SSO from Snowflake. Make sure that the label contains only alphanumeric characters as blank spaces and special characters are not currently supported. If you do not wish to customize the label, Single Sign On is displayed by default.
  5. Execute the alter account set sso_login_page = true;command to enable SSO initiated from Snowflake.

    Note: For more information on the SSO integration using the CLI client, see the Configuring Snowflake to Use Federated Authentication page.

Verifying the Integration

Use this section to verify that SSO/SLO works when initiated from Oracle Identity Cloud Service (IdP initiated SSO/SLO) or from Snowflake (SP initiated SSO).

Verifying Identity Provider Initiated SSO from Oracle Identity Cloud Service

  1. Access the Oracle Identity Cloud Service My Profile console using the URL: https://<IDCS-Service-Instance>.identity.oraclecloud.com/ui/v1/myconsole.

  2. Log in using credentials for a user that is assigned to the Snowflake app. Oracle Identity Cloud Service displays a shortcut to Snowflake under My Apps.

  3. Click Snowflake. The Snowflake home page appears.

  4. In the upper-right corner, confirm that the user that is logged in is the same for both Snowflake and Oracle Identity Cloud Service.

    This confirms that SSO that is initiated from Oracle Identity Cloud Service works.

Verifying Service Provider Initiated SSO from Snowflake

  1. Access Snowflake using the URL: https://<Account_Name>.snowflakecomputing.com/console/login#/. The Snowflake login page appears.

  2. Click Log in using <label>. You are redirected to the Oracle Identity Cloud Service login page.

    Note: The value configured for label field is displayed in the button. See the "Configuring SSO for Snowflake" section.

  3. Log in using credentials for a user that is assigned to the Snowflake app. The Snowflake home page appears.

  4. In the upper-right corner, confirm that the user that is logged in is the same for both Snowflake and Oracle Identity Cloud Service.

    This confirms that SSO that is initiated from Snowflake works.

Verifying Single Log-Out (SLO) from Oracle Identity Cloud Service

  1. Access Snowflake from the Oracle Identity Cloud Service My Profile console using the URL: https://<IDCS-Service-Instance>.identity.oraclecloud.com/ui/v1/myconsole. The Snowflake home page appears.

  2. In the upper-right corner of the Oracle Identity Cloud Service My Profile console, click the user drop-down list, and then click Sign Out. The Snowflake login page appears.

  3. Confirm that the user is logged out of the Snowflake app.

    Note: The user is logged out of both Oracle Identity Cloud Service and the Snowflake app when log out is initiated from Oracle Identity Cloud Service.

    This confirms that SLO that is initiated from Oracle Identity Cloud Service works.

Troubleshooting

Use this section to locate solutions to common integration issues.

Known Issues

Snowflake displays the message, "SAML response is invalid or matching user is not found. Contact your local system administrator."

Cause: The username attribute sent by Oracle Identity Cloud Service during SSO doesn't match any existing user in Snowflake.

Solution: Ensure that the user that you assign to the Snowflake app has an account in both Oracle Identity Cloud Service and Snowflake with the same username.

Oracle Identity Cloud Service displays the message, "You are not authorized to access the app. Contact your system administrator."

Cause 1: The SAML 2.0 integration between the Oracle Identity Cloud Service Snowflake app and Snowflake is deactivated.

Solution 1:

  • Access the Oracle Identity Cloud Service administration console, select Applications, and then select Snowflake.
  • In the App Details section, click Activate, and then click Activate Application. Oracle Identity Cloud Service displays a confirmation message.

Cause 2: The administrator revokes access for the user at the same time that the user tries to access the Snowflake app using Oracle Identity Cloud Service.

Solution 2:

  • Access the Oracle Identity Cloud Service administration console, select Applications, and then select Snowflake.
  • In the App Details section, select Users, and then click Assign to re-assign the user.

Unknown Issues

For unknown issues, contact Oracle Support:

  1. Go to https://support.oracle.com.

  2. Select Cloud Support, and then sign in with your support credentials.

  3. In the Cloud Dashboard, confirm that there are no planned outages in Oracle Identity Cloud Service, and then click Create Service Request.

  4. Select Oracle Identity Cloud Service as the service type.

  5. Complete your service request.