Provisioning Snowflake with PingOne
By using the Snowflake connection in PingOne, you can synchronize users between Snowflake and PingOne through inbound and outbound provisioning. The Snowflake connection also supports Snowflake roles and database roles at the connection level.
Provisioning capabilities
The following table summarizes the inbound and outbound provisioning capabilities for each resource type:
| Resource | Capability | Description | Inbound | Outbound |
|---|---|---|---|---|
User |
Create |
Generates a new user record in the destination. |
Yes |
Yes |
Read |
Retrieves or polls user attributes for synchronization. |
Yes |
Yes |
|
Update |
Modifies existing attributes, such as |
Yes |
Yes |
|
Delete |
Deletes a user or temporarily suspends an account. |
Yes |
Yes |
|
Group |
Create |
Provisions a new group in the target application. |
No |
No |
Rename |
Updates the display name or identifier of an existing group. |
No |
No |
|
Delete |
Removes a group from the target application. |
No |
No |
|
Membership |
Add and remove |
Adds or removes users from groups. |
No |
No |
Before you begin
Make sure that you have:
-
A Snowflake account. Learn more in create a Snowflake account.
-
An authorization token or the following JWT token details from your Snowflake account:
-
JWT PEM
-
JWT Expiration
-
JWT Algorithm
-
Key Algorithm
-
JWT Claims (JSON)
-
-
Users created and assigned to a group specifically for Snowflake provisioning in PingOne. Learn more in Adding a user in PingOne and Managing groups.
Steps
-
Create a Snowflake connection:
-
In the PingOne admin console, go to Integrations > Provisioning.
-
Click and then click New Connection.
-
Click Select for Identity Store.
-
Click Select for the Snowflake connection, and click Next.
-
Enter a Name and Description for this provisioning connection.
-
Click Next.
-
In the Configure Authentication section, select the Authentication Method to apply to your Snowflake account.
Choose from:
-
For JWT_TOKEN, enter the following:
Configuration Example JWT PEM
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDbt7EyGhPuI3Vf1XDmXcrc4…JWT Expiration
60JWT Algorithm
RS256Key Algorithm
RSAJWT Claims (JSON)
{ "iss": "RAEYFEY-XL55718.DEVINTEGRATION.SHA256:WIH3ctNrf3k/6qyY2ckX3uLiiMrswwcsCCpipP4yCEE=", "sub": "RAEYFEY-XL55718.DEVINTEGRATION" } -
For TOKEN, enter the bearer token from your Snowflake account, such as
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.
-
-
Click Next.
-
In the User Actions section, enter the following as needed:
Field Description Enable users creation
Creates a user in the target identity store when the user is created in the source identity store.
Enable users updation
Updates user attributes in the target identity store when the user is updated in the source identity store.
Enable users deprovision
Deprovisions a user in the target identity store when the user is deprovisioned in the source identity store. If Enable users deprovision is selected, the following options appear:
-
Remove Action: Select Delete to remove a user in the target identity store when the user is deleted in the source identity store.
-
Deprovision on rule deletion: Deprovisions users if the associated provisioning rule is deleted.
-
-
Click Save.
-
To enable the connection, click the toggle at the top of the details panel to the right (blue).
You can disable the connection by clicking the toggle to the left (gray).
-
-
Create an inbound or outbound rule and select the existing Snowflake connection as the target or source. You can optionally add attribute mappings.
Use the following inbound mapping examples for the Snowflake rule configuration:
Snowflake PingOne Directory !disabledEnabledemailEmail Addresslast_nameFamily Namefirst_nameGiven NamenameUsernameUse the following outbound mapping examples for the Snowflake rule configuration:
PingOne Directory Snowflake UsernamenameGiven Namefirst_name!enableddisabledEmail Addressemail
Validation
Confirm users and groups are successfully provisioned to Snowflake. View the sync status to review synchronization results and any errors. You can find examples in Outbound provisioning sync summary examples.
Snowflake directory attributes
The following table lists common Snowflake attributes that can be mapped for user provisioning:
| Attribute | Description |
|---|---|
|
The Snowflake username attribute used for synchronization and required outbound username mapping. |
|
The user email attribute used for synchronization and email mapping. |
|
The user’s given name. |
|
The user’s family name. |
|
The Snowflake enabled or disabled state used in the current inbound and outbound mappings. |
Snowflake provisioning known limitations
The PingOne username attribute is mapped to the name attribute in Snowflake. Because the name attribute in Snowflake is immutable, any updates to a user’s username in PingOne during outbound synchronization will fail to update the corresponding value in Snowflake.