Snowflake
Snowflake is a cloud-native data platform that allows organizations to unify data warehousing, data lakes, and data engineering into a single service while independently scaling compute and storage across major public clouds.
The Advanced Identity Cloud Snowflake application allows you to manage users, grant and revoke roles and database roles, and synchronize data between Advanced Identity Cloud and the Snowflake platform.
Register the application
-
In the Advanced Identity Cloud admin console, go to Applications, and click Browse App Catalog.
-
In the Browse App Catalog modal, select an application, and click Next.
-
Review the Application Integration information, and click Next.
-
In the Application Details window, specify the name, description, application owners, and logo for the application.
-
To make the application an Authoritative source of identity data, select the Authoritative check box. This option is not available for every application.
-
Click Create Application.
Snowflake requirements
To configure the application, you need a Snowflake account with the SYSADMIN role. Complete the following steps to gather the required values, then use them to Configure provisioning.
| To modify the settings for an existing provisioning connection, in the Advanced Identity Cloud admin console, click the Provisioning tab, and then click Settings. |
-
Generate an unencrypted RSA key pair using OpenSSL:
-
Generate a private key:
openssl genrsa -out rsa_key.pem 2048 -
Extract the public key:
openssl rsa -in rsa_key.pem -pubout -out rsa_key.pub
-
-
In your Snowflake cloud platform:
-
Set
SYSADMINas the default role:ALTER USER YOUR_USERNAME SET DEFAULT_ROLE = 'SYSADMIN'; -
Set the public key for the user:
ALTER USER YOUR_USERNAME SET RSA_PUBLIC_KEY='-----BEGIN PUBLIC KEY-----YOUR_PUBLIC_KEY-----END PUBLIC_KEY----'; -
Run the following query to construct the account locator. An example value for an account locator is
MLTBITH-UI23983:SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME(); -
Define the claims:
-
Query the user and make a note of the
RSA_PUBLIC_KEY_FPfield in the result:DESCRIBE USER YOUR_USERNAME; -
Construct the claims using the account locator and
RSA_PUBLIC_KEY_FP:-
Issuer:
account_locator.username.RSA_PUBLIC_KEY_FP -
Subject:
account_locator.username
-
-
-
Construct the Snowflake service endpoint URI:
Snowflake URI examplehttps://ACCOUNT_LOCATOR.snowflakecomputing.com/api/v2
-
Configure provisioning
-
In the Advanced Identity Cloud admin console, configure the following fields:
Field Description Service URI
The service endpoint URI.
Role
The role for performing queries.
Private Key
The private key generated during the configuration Snowflake requirements.
JWT Claims
The claims to include in the payload to sign and get the access token. This object must contain the following keys:
-
iss: The issuer of the JWT, constructed from the account locator, username, and
RSA_PUBLIC_KEY_FP.Example issueracmecorp-prod_data_01.SVC_PING_PROVISIONING.SHA256:abc123def456ghi789jkl012mno345pqr815stu901v -
sub: The subject of the JWT, constructed from the account locator and username.
Example subjectacmecorp-prod_data_01.SVC_PING_PROVISIONING
Learn more about how to obtain these values in Snowflake requirements.
Warehouse
The warehouse name that provides computing resources.
Excluded Databases
A list of databases to exclude from operations.
JWT Expiration time
The access token expiration time in seconds.
-
-
(Optional) Click Show advanced settings to set any of the following options:
Application specific settings Field Description Connection Timeout
The timeout for the underlying HTTP connection in seconds. The default is 30 seconds.
Exclude Unmodified
Select this option to synchronize only the modified properties on a target resource.
Pool configuration Field Description Max idle and active container instances
The maximum number of idle and active container instances. The default value is
10.Max Idle Connector Instances
The maximum number of idle connector instances. The default value is
10.Set Timeout Period
Select to enable a timeout period for the connection. After enabling, configure the following:
-
Timeout period (ms): The timeout period in milliseconds.
Set Minimum Idle Time
Select to set a minimum time (in milliseconds) before an idle object is removed. After enabling, configure the following:
-
Min idle time (ms): The minimum idle time in milliseconds.
Min Idle Instances
The minimum number of idle connector instances.
Result Handler configuration Field Description Enable for connectors with the attribute normalizer interface
Enables the attribute normalizer interface for supported connectors.
Enable local filtering/search features
Enables local filtering and search capabilities.
Enable case insensitive filter
Configures filters to ignore case sensitivity.
Enable configuration of search attributes; disable for local connectors
Enables search attribute configuration. Disable this option for local connectors.
-
In the Operation Timeouts (ms) area, select the operations to enforce timeouts on and enter the duration in milliseconds.
Available operations include Create, Validate, Test, Enable a Script on the Connector, Schema, Delete, Update, Sync, Authenticate, Get, Enable a Script on the Target, and Search.
-
In the Operation Rate Limits area, select the operations to enforce rate limits on.
You can enforce limits on specific operations, including Create, Validate, Test, Script on Connector, Schema, Delete, Update, Sync, Authenticate, Get, Script on Target, and Search.
For each selected operation, configure the following fields:
Field Description Request Limit
Requests allowed over time.
Request Period
Limit resets after this time (ms).
Request Timeout
Time before exception thrown (ms).
-
-
Click Connect.
-
Verify the information in the Details tab.
Provision side tabs
The object type determines the side tabs that display on the Provisioning tab.
Use the object type list to select an object type, such as Group.
Afterward, you can configure properties in the different sub-tabs under the Provisioning tab.
| Provisioning tab | Description | Related sections |
|---|---|---|
Details |
View and manage an application, including name, ID, and native type. |
Select the specific application from Provision settings for an application. |
Properties |
View and manage properties for the selected object type. |
|
Data |
View data about the selected object type. |
|
Mapping |
View and manage mappings from the Advanced Identity Cloud admin console properties to external system properties and from external system properties to the Advanced Identity Cloud admin console properties. |
|
Reconciliation |
Preview mappings on target applications between external systems and the Advanced Identity Cloud admin console, and reconcile the data between the two systems. View and manage rules for the users and groups that use your application. View and manage schedules for Full and Incremental reconciliation. |
|
Privacy & Consent |
Manage end-user data sharing and synchronization. |
|
Rules |
View and manage provisioning rules for mappings between Advanced Identity Cloud and a target application. |
|
Advanced Sync |
Create and manage mappings between a managed object type and an application or between applications. |