Skip to content

Commit 3a23fbd

Browse files
committed
Updated Snowflake SCIM Configuration.
1 parent f97c70b commit 3a23fbd

File tree

8 files changed

+47
-34
lines changed

8 files changed

+47
-34
lines changed
1.11 KB
Loading
4.8 KB
Loading
5.88 KB
Loading
2.66 KB
Loading

articles/active-directory/saas-apps/snowflake-provisioning-tutorial.md

Lines changed: 47 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ This tutorial demonstrates the steps that you perform in Snowflake and Azure Act
2121
> This connector is currently in public preview. For information about terms of use, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
2222
2323
## Capabilities supported
24+
2425
> [!div class="checklist"]
26+
>
2527
> * Create users in Snowflake
2628
> * Remove users in Snowflake when they don't require access anymore
2729
> * Keep user attributes synchronized between Azure AD and Snowflake
@@ -38,6 +40,7 @@ The scenario outlined in this tutorial assumes that you already have the followi
3840
* A user account in Snowflake with admin permissions
3941

4042
## Step 1: Plan your provisioning deployment
43+
4144
1. Learn about [how the provisioning service works](../app-provisioning/user-provisioning.md).
4245
1. Determine who will be in [scope for provisioning](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
4346
1. Determine what data to [map between Azure AD and Snowflake](../app-provisioning/customize-application-attributes.md).
@@ -46,76 +49,83 @@ The scenario outlined in this tutorial assumes that you already have the followi
4649

4750
Before you configure Snowflake for automatic user provisioning with Azure AD, you need to enable System for Cross-domain Identity Management (SCIM) provisioning on Snowflake.
4851

49-
1. Sign in to your Snowflake admin console. Enter the following query in the highlighted worksheet, and then select **Run**.
52+
1. Sign in to Snowflake as an administrator and execute the following from either the Snowflake worksheet interface or SnowSQL.
5053

51-
![Screenshot of the Snowflake admin console with query and Run button.](media/Snowflake-provisioning-tutorial/image00.png)
52-
5354
```
5455
use role accountadmin;
5556
56-
create or replace role aad_provisioner;
57-
grant create user on account to aad_provisioner;
58-
grant create role on account to aad_provisioner;
57+
create role if not exists aad_provisioner;
58+
grant create user on account to role aad_provisioner;
59+
grant create role on account to role aad_provisioner;
5960
grant role aad_provisioner to role accountadmin;
60-
create or replace security integration aad_provisioning type=scim scim_client=azure run_as_role='AAD_PROVISIONER';
61-
62-
select SYSTEM$GENERATE_SCIM_ACCESS_TOKEN('AAD_PROVISIONING');
61+
create or replace security integration aad_provisioning
62+
type = scim
63+
scim_client = 'azure'
64+
run_as_role = 'AAD_PROVISIONER';
65+
select system$generate_scim_access_token('AAD_PROVISIONING');
6366
```
6467

65-
1. A SCIM access token is generated for your Snowflake tenant. To retrieve it, select the link highlighted in the following screenshot.
68+
2. Use the ACCOUNTADMIN role.
69+
70+
![Screenshot of a worksheet in the Snowflake UI with the SCIM access token called out.](media/Snowflake-provisioning-tutorial/step2.png)
71+
72+
3. Create the custom role AAD_PROVISIONER. All users and roles in Snowflake created by Azure AD will be owned by the scoped down AAD_PROVISIONER role.
6673

67-
![Screenshot of a worksheet in the Snowflake U I with the S C I M access token called out.](media/Snowflake-provisioning-tutorial/image01.png)
74+
![Screenshot showing the custom role.](media/Snowflake-provisioning-tutorial/step3.png)
6875

69-
1. Copy the generated token value and select **Done**. This value is entered in the **Secret Token** box on the **Provisioning** tab of your Snowflake application in the Azure portal.
76+
4. Let the ACCOUNTADMIN role create the security integration using the AAD_PROVISIONER custom role.
7077

71-
![Screenshot of the Details section, showing the token copied into the text field and the Done option called out.](media/Snowflake-provisioning-tutorial/image02.png)
78+
![Screenshot showing the security integrations.](media/Snowflake-provisioning-tutorial/step4.png)
79+
80+
5. Create and copy the authorization token to the clipboard and store securely for later use. Use this token for each SCIM REST API request and place it in the request header. The access token expires after six months and a new access token can be generated with this statement.
81+
82+
![Screenshot showing the token generation.](media/Snowflake-provisioning-tutorial/step5.png)
7283

7384
## Step 3: Add Snowflake from the Azure AD application gallery
7485

75-
Add Snowflake from the Azure AD application gallery to start managing provisioning to Snowflake. If you previously set up Snowflake for single sign-on (SSO), you can use the same application. However, we recommend that you create a separate app when you're initially testing the integration. [Learn more about adding an application from the gallery](../manage-apps/add-application-portal.md).
86+
Add Snowflake from the Azure AD application gallery to start managing provisioning to Snowflake. If you previously set up Snowflake for single sign-on (SSO), you can use the same application. However, we recommend that you create a separate app when you're initially testing the integration. [Learn more about adding an application from the gallery](../manage-apps/add-application-portal.md).
7687

77-
## Step 4: Define who will be in scope for provisioning
88+
## Step 4: Define who will be in scope for provisioning
7889

79-
The Azure AD provisioning service allows you to scope who will be provisioned based on assignment to the application, or based on attributes of the user or group. If you choose to scope who will be provisioned to your app based on assignment, you can use the [steps to assign users and groups to the application](../manage-apps/assign-user-or-group-access-portal.md). If you choose to scope who will be provisioned based solely on attributes of the user or group, you can [use a scoping filter](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
90+
The Azure AD provisioning service allows you to scope who will be provisioned based on assignment to the application, or based on attributes of the user or group. If you choose to scope who will be provisioned to your app based on assignment, you can use the [steps to assign users and groups to the application](../manage-apps/assign-user-or-group-access-portal.md). If you choose to scope who will be provisioned based solely on attributes of the user or group, you can [use a scoping filter](../app-provisioning/define-conditional-rules-for-provisioning-user-accounts.md).
8091

8192
Keep these tips in mind:
8293

83-
* When you're assigning users and groups to Snowflake, you must select a role other than Default Access. Users with the Default Access role are excluded from provisioning and will be marked as not effectively entitled in the provisioning logs. If the only role available on the application is the Default Access role, you can [update the application manifest](../develop/howto-add-app-roles-in-azure-ad-apps.md) to add more roles.
94+
* When you're assigning users and groups to Snowflake, you must select a role other than Default Access. Users with the Default Access role are excluded from provisioning and will be marked as not effectively entitled in the provisioning logs. If the only role available on the application is the Default Access role, you can [update the application manifest](../develop/howto-add-app-roles-in-azure-ad-apps.md) to add more roles.
8495

8596
* If you need additional roles, you can [update the application manifest](../develop/howto-add-app-roles-in-azure-ad-apps.md) to add new roles.
8697

87-
88-
## Step 5: Configure automatic user provisioning to Snowflake
98+
## Step 5: Configure automatic user provisioning to Snowflake
8999

90100
This section guides you through the steps to configure the Azure AD provisioning service to create, update, and disable users and groups in Snowflake. You can base the configuration on user and group assignments in Azure AD.
91101

92102
To configure automatic user provisioning for Snowflake in Azure AD:
93103

94104
1. Sign in to the [Azure portal](https://portal.azure.com). Select **Enterprise applications** > **All applications**.
95105

96-
![Screenshot that shows the Enterprise applications pane.](common/enterprise-applications.png)
106+
![Screenshot that shows the Enterprise applications pane.](common/enterprise-applications.png)
97107

98108
2. In the list of applications, select **Snowflake**.
99109

100-
![Screenshot that shows a list of applications.](common/all-applications.png)
110+
![Screenshot that shows a list of applications.](common/all-applications.png)
101111

102112
3. Select the **Provisioning** tab.
103113

104-
![Screenshot of the Manage options with the Provisioning option called out.](common/provisioning.png)
114+
![Screenshot of the Manage options with the Provisioning option called out.](common/provisioning.png)
105115

106116
4. Set **Provisioning Mode** to **Automatic**.
107117

108-
![Screenshot of the Provisioning Mode drop-down list with the Automatic option called out.](common/provisioning-automatic.png)
118+
![Screenshot of the Provisioning Mode drop-down list with the Automatic option called out.](common/provisioning-automatic.png)
109119

110-
5. In the **Admin Credentials** section, enter the SCIM 2.0 base URL and authentication token that you retrieved earlier in the **Tenant URL** and **Secret Token** boxes, respectively.
120+
5. In the **Admin Credentials** section, enter the SCIM 2.0 base URL and authentication token that you retrieved earlier in the **Tenant URL** and **Secret Token** boxes, respectively.
111121

112122
Select **Test Connection** to ensure that Azure AD can connect to Snowflake. If the connection fails, ensure that your Snowflake account has admin permissions and try again.
113123

114-
![Screenshot that shows boxes for tenant U R L and secret token, along with the Test Connection button.](common/provisioning-testconnection-tenanturltoken.png)
124+
![Screenshot that shows boxes for tenant URL and secret token, along with the Test Connection button.](common/provisioning-testconnection-tenanturltoken.png)
115125

116126
6. In the **Notification Email** box, enter the email address of a person or group who should receive the provisioning error notifications. Then select the **Send an email notification when a failure occurs** check box.
117127

118-
![Screenshot that shows boxes for notification email.](common/provisioning-notification-email.png)
128+
![Screenshot that shows boxes for notification email.](common/provisioning-notification-email.png)
119129

120130
7. Select **Save**.
121131

@@ -147,43 +157,46 @@ To configure automatic user provisioning for Snowflake in Azure AD:
147157

148158
13. To enable the Azure AD provisioning service for Snowflake, change **Provisioning Status** to **On** in the **Settings** section.
149159

150-
![Screenshot that shows Provisioning Status switched on.](common/provisioning-toggle-on.png)
160+
![Screenshot that shows Provisioning Status switched on.](common/provisioning-toggle-on.png)
151161

152162
14. Define the users and groups that you want to provision to Snowflake by choosing the desired values in **Scope** in the **Settings** section.
153163

154164
If this option is not available, configure the required fields under **Admin Credentials**, select **Save**, and refresh the page.
155165

156-
![Screenshot that shows choices for provisioning scope.](common/provisioning-scope.png)
166+
![Screenshot that shows choices for provisioning scope.](common/provisioning-scope.png)
157167

158168
15. When you're ready to provision, select **Save**.
159169

160-
![Screenshot of the button for saving a provisioning configuration.](common/provisioning-configuration-save.png)
170+
![Screenshot of the button for saving a provisioning configuration.](common/provisioning-configuration-save.png)
161171

162172
This operation starts the initial synchronization of all users and groups defined in **Scope** in the **Settings** section. The initial sync takes longer to perform than subsequent syncs. Subsequent syncs occur about every 40 minutes, as long as the Azure AD provisioning service is running.
163173

164174
## Step 6: Monitor your deployment
175+
165176
After you've configured provisioning, use the following resources to monitor your deployment:
166177

167-
- Use the [provisioning logs](../reports-monitoring/concept-provisioning-logs.md) to determine which users have been provisioned successfully or unsuccessfully.
168-
- Check the [progress bar](../app-provisioning/application-provisioning-when-will-provisioning-finish-specific-user.md) to see the status of the provisioning cycle and how close it is to completion.
169-
- If the provisioning configuration seems to be in an unhealthy state, the application will go into quarantine. [Learn more about quarantine states](../app-provisioning/application-provisioning-quarantine-status.md).
178+
* Use the [provisioning logs](../reports-monitoring/concept-provisioning-logs.md) to determine which users have been provisioned successfully or unsuccessfully.
179+
* Check the [progress bar](../app-provisioning/application-provisioning-when-will-provisioning-finish-specific-user.md) to see the status of the provisioning cycle and how close it is to completion.
180+
* If the provisioning configuration seems to be in an unhealthy state, the application will go into quarantine. [Learn more about quarantine states](../app-provisioning/application-provisioning-quarantine-status.md).
170181

171182
## Connector limitations
172183

173-
Snowflake-generated SCIM tokens expire in 6 months. Be aware that you need to refresh these tokens before they expire, to allow the provisioning syncs to continue working.
184+
Snowflake-generated SCIM tokens expire in 6 months. Be aware that you need to refresh these tokens before they expire, to allow the provisioning syncs to continue working.
174185

175186
## Troubleshooting tips
176187

177-
The Azure AD provisioning service currently operates under particular [IP ranges](../app-provisioning/use-scim-to-provision-users-and-groups.md#ip-ranges). If necessary, you can restrict other IP ranges and add these particular IP ranges to the allow list of your application. That technique will allow traffic flow from the Azure AD provisioning service to your application.
188+
The Azure AD provisioning service currently operates under particular [IP ranges](../app-provisioning/use-scim-to-provision-users-and-groups.md#ip-ranges). If necessary, you can restrict other IP ranges and add these particular IP ranges to the allowlist of your application. That technique will allow traffic flow from the Azure AD provisioning service to your application.
178189

179190
## Change log
180191

181192
* 07/21/2020: Enabled soft-delete for all users (via the active attribute).
193+
* 10/12/2022: Updated Snowflake SCIM Configuration.
182194

183195
## Additional resources
184196

185197
* [Managing user account provisioning for enterprise apps](../app-provisioning/configure-automatic-user-provisioning-portal.md)
186198
* [What are application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
187199

188200
## Next steps
201+
189202
* [Learn how to review logs and get reports on provisioning activity](../app-provisioning/check-status-user-account-provisioning.md)

0 commit comments

Comments
 (0)