Documentation Index
Fetch the complete documentation index at: https://docs.omni.co/llms.txt
Use this file to discover all available pages before exploring further.
For authenticating Snowflake users directly through Snowflake, see Snowflake native OAuth.
Requirements
To follow the steps in this guide, you’ll need:- Permissions in Microsoft Entra ID that allow you to register applications and configure OAuth settings
- In Omni:
- To have the OAuth database connection feature enabled
- Organization Admin permissions
- An existing Snowflake connection. Refer to Connecting a Snowflake database before continuing.
- In Snowflake:
ACCOUNTADMINorSECURITYADMINprivileges to create a security integration- A service account with access to all schemas and tables you want to use in Omni. This is required even when OAuth is enabled, because Omni uses the service account to build the model.
- To assign regular user roles to your Snowflake users. Snowflake blocks
ACCOUNTADMIN,ORGADMIN, andSECURITYADMINfrom external OAuth authentication by default.
Setup
Register an Entra OAuth resource app
1
Create the app
- In the Azure portal, navigate to Microsoft Entra ID > App registrations.
- Click New registration.
- Enter a name (e.g., Omni Snowflake OAuth Resource).
- Set Supported account types to Single tenant.
- Click Register.
2
Set the Application ID URI
- Navigate to Expose an API.
- Click the link next the Application ID URI to add the Application ID URI. This value must be unique within your directory (e.g.,
https://<your-domain>/<app-guid>).
3
Configure app permissions
- Click Add a scope.
- Select who can consent.
- In the Value field, enter
session:role-any. This allows the token to work with any role the user holds in Snowflake. - Optional. Add a description.
- Save the role.
Register an Entra OAuth client app
1
Create the app
- In the Azure portal, navigate to Microsoft Entra ID > App registrations.
- Click New registration.
- Enter a name (e.g., Omni Snowflake OAuth Client).
- Set Supported account types to Single tenant.
- Click Register.
2
Retrieve your OAuth information
- On the page that displays after registering the app, copy the Application (client) ID. This is your OAuth Client ID for Omni.
- Navigate to Certificates & secrets > New client secret.
- Copy the secret value. This is your OAuth Client Secret for Omni.
3
Configure app permissions
- Navigate to Manage API permissions > Add a permission > My APIs.
- Select the Omni resource app you created in the previous section.
- Select the Delegated Permissions box.
- Confirm that the scope permissions (
session:role-any) for the resource app are present and correct. - Click Add permissions.
- Click Grant admin consent to grant the permissions to the client.
- Click Yes.
4
Add the redirect URI
- Navigate to Manage > Authentication.
- Add a web platform.
-
Add the following Redirect URI, replacing
<your-omni-domain>with the name of your Omni instance:
Collect Entra ID metadata
In your resource app registration, go to the Endpoints tab and collect the following values:
| Value | Where to find it |
|---|---|
| Authorization endpoint | OAuth 2.0 authorization endpoint (v2) |
| Token endpoint | OAuth 2.0 token endpoint (v2) |
| JWK Set URI | Open the OpenID Connect metadata document URL in a browser and find the jwks_uri value |
| Issuer | Open the Federation metadata document URL in a browser and find the entityID value (format: https://sts.windows.net/<tenant-id>/) |
Create a Snowflake security integration
Run this in Snowflake as When filling in the placeholder values, keep in mind that:
ACCOUNTADMIN or SECURITYADMIN, substituting the values from the previous step.- The
EXTERNAL_OAUTH_ISSUERvalue is case-sensitive and must match exactly. Include the trailing slash (https://sts.windows.net/<tenant-id>/). - The
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM: upn(User Principal Name) claim maps Entra ID users to Snowflake. Each user’s UPN in Entra ID must exactly match theLOGIN_NAMEon their Snowflake user record. Verify this before going live.
Configure the connection in Omni
You must still configure a service account on this connection. Omni uses the service account to build the model, which provides the foundation for all user queries.
- In Omni, navigate to Settings > Connections and click on the Snowflake connection you want to use.
- Under Authentication type, select External OAuth User Authentication.
-
Fill in the fields as follows:
Field Value Authorization URL Authorization endpoint from Entra ID Token URL Token endpoint from Entra ID OAuth Client ID Application (client) ID from the client app OAuth Client Secret Client secret from the client app Audience Application ID URI from the resource app - Save the connection.
Troubleshooting
Authentication failures
Authentication failures
Double-check that each user’s UPN (User Principal Name) in Entra ID matches their Snowflake
LOGIN_NAME exactly (case-sensitive). Mismatches are the most common cause of auth failures.Token expiration issues
Token expiration issues
If users experience frequent re-authentication prompts, verify that:
- The refresh token lifetime in Entra ID is sufficient
- The Snowflake security integration is correctly configured with the IdP’s token endpoint
Next steps
To ensure database permissions align with what users see in Omni, we recommend implementing:- Access grants to control which fields and tables are visible to each user in the model and field browser
- Content permissions to control which dashboards and documents users can access