dremiojs 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +14 -0
- package/.prettierrc +7 -0
- package/README.md +59 -0
- package/dremiodocs/dremio-cloud/cloud-api-reference.md +748 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-about.md +225 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-admin.md +3754 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-bring-data.md +6098 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-changelog.md +32 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-developer.md +1147 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-explore-analyze.md +2522 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-get-started.md +300 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-help-support.md +869 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-manage-govern.md +800 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-overview.md +36 -0
- package/dremiodocs/dremio-cloud/dremio-cloud-security.md +1844 -0
- package/dremiodocs/dremio-cloud/sql-docs.md +7180 -0
- package/dremiodocs/dremio-software/dremio-software-acceleration.md +1575 -0
- package/dremiodocs/dremio-software/dremio-software-admin.md +884 -0
- package/dremiodocs/dremio-software/dremio-software-client-applications.md +3277 -0
- package/dremiodocs/dremio-software/dremio-software-data-products.md +560 -0
- package/dremiodocs/dremio-software/dremio-software-data-sources.md +8701 -0
- package/dremiodocs/dremio-software/dremio-software-deploy-dremio.md +3446 -0
- package/dremiodocs/dremio-software/dremio-software-get-started.md +848 -0
- package/dremiodocs/dremio-software/dremio-software-monitoring.md +422 -0
- package/dremiodocs/dremio-software/dremio-software-reference.md +677 -0
- package/dremiodocs/dremio-software/dremio-software-security.md +2074 -0
- package/dremiodocs/dremio-software/dremio-software-v25-api.md +32637 -0
- package/dremiodocs/dremio-software/dremio-software-v26-api.md +36757 -0
- package/jest.config.js +10 -0
- package/package.json +25 -0
- package/src/api/catalog.ts +74 -0
- package/src/api/jobs.ts +105 -0
- package/src/api/reflection.ts +77 -0
- package/src/api/source.ts +61 -0
- package/src/api/user.ts +32 -0
- package/src/client/base.ts +66 -0
- package/src/client/cloud.ts +37 -0
- package/src/client/software.ts +73 -0
- package/src/index.ts +16 -0
- package/src/types/catalog.ts +31 -0
- package/src/types/config.ts +18 -0
- package/src/types/job.ts +18 -0
- package/src/types/reflection.ts +29 -0
- package/tests/integration_manual.ts +95 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,1844 @@
|
|
|
1
|
+
# Security and Compliance | Dremio Documentation
|
|
2
|
+
|
|
3
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/
|
|
4
|
+
|
|
5
|
+
On this page
|
|
6
|
+
|
|
7
|
+
Dremio offers extensive security measures to help protect the integrity of your data, including access control and the ability to use external identity providers (IdPs). Dremio provides flexible native security features and integration with a wide range of third-party tools so that your organization can adhere to compliance and regulatory standards, enforce fine-grained permissions for your users, and retain your existing tools for authentication and authorization.
|
|
8
|
+
|
|
9
|
+
## Authentication and Identity Management
|
|
10
|
+
|
|
11
|
+
Dremio supports industry-standard [authentication](/dremio-cloud/security/authentication/) and single sign-on (SSO) services, including OAuth 2.0/OpenID Connect. Organizations can configure integrated authentication (Active Directory or OpenID Connect) to centrally manage user accounts with strong password policies and SSO/multi-factor authentication (MFA).
|
|
12
|
+
|
|
13
|
+
## Access Control
|
|
14
|
+
|
|
15
|
+
Dremio provides a comprehensive hierarchical privilege system for fine-grained access control across your organization.
|
|
16
|
+
|
|
17
|
+
* **Privileges** – Complete [privilege system](/dremio-cloud/security/privileges) with hierarchical inheritance from organization to individual objects.
|
|
18
|
+
* **Role-Based Access Control (RBAC)** – Manage access [through roles](/dremio-cloud/security/roles) rather than individual user grants for easier administration.
|
|
19
|
+
* **Hierarchical Inheritance** – Privileges granted at higher levels (Organization → Projects → Sources → Folders → Tables) automatically apply to nested objects.
|
|
20
|
+
* **Object Ownership** – Automatic ownership assignment when creating objects, with transferable ownership capabilities.
|
|
21
|
+
* **Open Catalog Security** – Structured access control for managed catalog systems.
|
|
22
|
+
|
|
23
|
+
## Data Protection
|
|
24
|
+
|
|
25
|
+
* **Encryption in Transit** – Your content is transmitted using TLS 1.2 or higher between client and control plane, and between control plane and data plane.
|
|
26
|
+
* **Encryption at Rest** – Your data is encrypted at rest within the control plane using AES-256 or higher.
|
|
27
|
+
* **Customer-Managed Encryption** – Deploy and manage your encryption keys for enhanced security.
|
|
28
|
+
|
|
29
|
+
## Compliance and Certifications
|
|
30
|
+
|
|
31
|
+
* **Compliance** – Review current [compliance measures](/dremio-cloud/security/compliance) and audits Dremio has completed.
|
|
32
|
+
|
|
33
|
+
**Current Certifications:**
|
|
34
|
+
|
|
35
|
+
* **ISO 27001** – Information security management systems.
|
|
36
|
+
* **SOC 2 Type II** – Security, availability, and confidentiality controls.
|
|
37
|
+
* **HIPAA** – Healthcare data protection compliance.
|
|
38
|
+
|
|
39
|
+
**Privacy Regulations:**
|
|
40
|
+
|
|
41
|
+
* **GDPR** – General Data Protection Regulation compliance.
|
|
42
|
+
* **CCPA** – California Consumer Privacy Act compliance.
|
|
43
|
+
|
|
44
|
+
Was this page helpful?
|
|
45
|
+
|
|
46
|
+
* Authentication and Identity Management
|
|
47
|
+
* Access Control
|
|
48
|
+
* Data Protection
|
|
49
|
+
* Compliance and Certifications
|
|
50
|
+
|
|
51
|
+
<div style="page-break-after: always;"></div>
|
|
52
|
+
|
|
53
|
+
# Roles | Dremio Documentation
|
|
54
|
+
|
|
55
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/roles
|
|
56
|
+
|
|
57
|
+
On this page
|
|
58
|
+
|
|
59
|
+
Roles are a set of [privileges](/dremio-cloud/security/privileges) that can be assigned to users as needed. Roles can also be assigned to other roles to create a child-role hierarchy, where child roles inherit all privileges from their parent roles. This hierarchical system allows you to organize privileges at scale rather than managing privileges for each individual user (also called members).
|
|
60
|
+
|
|
61
|
+
You can define roles based on the types of users in your organization. For example, *Data\_Analyst* and *Security\_Admin* roles can be created to manage privileges for users with different job functions within an organization.
|
|
62
|
+
|
|
63
|
+
See the following role design guidelines:
|
|
64
|
+
|
|
65
|
+
* Keep the number of ADMIN role members to 1-2 administrators for security.
|
|
66
|
+
* Begin with 2-3 custom roles based on primary job functions.
|
|
67
|
+
* Create parent roles for common privilege sets, then add specific child roles as needed.
|
|
68
|
+
* Choose clear names that reflect the role's purpose (e.g., Sales\_Analyst, Data\_Engineer).
|
|
69
|
+
* Use prefixes such as DEPT\_, PROJ\_, or TEAM\_ for consistency.
|
|
70
|
+
* Use the description field to explain each role's intent.
|
|
71
|
+
|
|
72
|
+
## How Role Inheritance Works
|
|
73
|
+
|
|
74
|
+
Child roles automatically inherit all privileges from their parent roles, creating a cascading effect that simplifies privilege management.
|
|
75
|
+
|
|
76
|
+
Example Role Hierarchy
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Data_Viewer (SELECT on public datasets only)
|
|
80
|
+
└── Data_Analyst (inherits Data_Viewer + SELECT on specific datasets)
|
|
81
|
+
└── Data_Engineer (inherits Data_Analyst + CREATE, ALTER privileges)
|
|
82
|
+
└── Data_Admin (inherits Data_Engineer + admin privileges on data sources)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
In this example, a Data\_Engineer automatically gets all the privileges of Data\_Analyst and Data\_Viewer, plus their own additional CREATE and ALTER privileges.
|
|
86
|
+
|
|
87
|
+
## System Roles
|
|
88
|
+
|
|
89
|
+
Dremio has two predefined system roles: ADMIN and PUBLIC. These roles can be used to manage privileges.
|
|
90
|
+
|
|
91
|
+
### ADMIN
|
|
92
|
+
|
|
93
|
+
The ADMIN role is designed for administrative users who require superuser/global access. Users who are assigned this role are granted every privilege across all objects and resources in an organization. The privileges for the ADMIN role are immutable by users.
|
|
94
|
+
|
|
95
|
+
The first user in an organization is automatically assigned the ADMIN role.
|
|
96
|
+
|
|
97
|
+
Be cautious when assigning the ADMIN role. Users with ADMIN privileges can modify any data, delete objects, and manage other users' access.
|
|
98
|
+
|
|
99
|
+
### PUBLIC
|
|
100
|
+
|
|
101
|
+
The PUBLIC role is assigned by default to all new users added to the organization and cannot be revoked from any user. Think of PUBLIC as the baseline access level that every user in your organization receives.
|
|
102
|
+
|
|
103
|
+
This role grants the following privileges to its members:
|
|
104
|
+
|
|
105
|
+
* USAGE on all engines
|
|
106
|
+
* USAGE on any predefined [OAuth apps](/dremio-cloud/security/authentication/app-authentication/oauth-apps) and [External Token Providers](/dremio-cloud/security/authentication/app-authentication/external-token).
|
|
107
|
+
|
|
108
|
+
SELECT and ALTER privileges are not granted for any sources and must be assigned by a user with the ADMIN role or through additional custom roles.
|
|
109
|
+
|
|
110
|
+
Additional privileges can be granted to the PUBLIC role to provide organization-wide baseline access.
|
|
111
|
+
|
|
112
|
+
## Custom Roles
|
|
113
|
+
|
|
114
|
+
Custom roles can be created by any user or role that has the [CREATE ROLE](/dremio-cloud/security/privileges#organization-privileges) organization privilege, or by members of the ADMIN role.
|
|
115
|
+
|
|
116
|
+
You can assign a custom role to users or other roles (to create a child role). The custom role can then be assigned a set of privileges.
|
|
117
|
+
|
|
118
|
+
### View All Roles
|
|
119
|
+
|
|
120
|
+
#### Use the Dremio Console
|
|
121
|
+
|
|
122
|
+
1. Click  in the side navigation bar and choose **Organization settings**.
|
|
123
|
+
2. Select **Roles** in the organization settings sidebar.
|
|
124
|
+
|
|
125
|
+
#### Use SQL
|
|
126
|
+
|
|
127
|
+
ADMIN users can also list all roles using the [`sys.organization.roles`](/dremio-cloud/sql/system-tables/roles) system table:
|
|
128
|
+
|
|
129
|
+
Review all roles and their owners
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
SELECT r.role_name,
|
|
133
|
+
r.role_type,
|
|
134
|
+
r.owner_type,
|
|
135
|
+
u.user_name as owner_name
|
|
136
|
+
FROM sys.organization.roles r
|
|
137
|
+
LEFT JOIN sys.organization.users u ON r.owner_id = u.user_id
|
|
138
|
+
ORDER BY r.role_name;
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Create a Custom Role
|
|
142
|
+
|
|
143
|
+
#### Use the Dremio Console
|
|
144
|
+
|
|
145
|
+
1. Click  in the side navigation bar and choose **Organization settings**.
|
|
146
|
+
2. Select **Roles** in the organization settings sidebar.
|
|
147
|
+
3. Click **Add Role** at the top-right corner of the screen.
|
|
148
|
+
4. In the Add Role dialog, for **Name**, enter the name to associate with the role, such as the position title or employee type that will be associated with the role.
|
|
149
|
+
5. (Optional) For **Description**, provide any details regarding the purpose of the role or its associated privileges.
|
|
150
|
+
6. Click **Add**.
|
|
151
|
+
|
|
152
|
+
#### Use SQL
|
|
153
|
+
|
|
154
|
+
You can also create custom roles using the [`CREATE ROLE`](/dremio-cloud/sql/commands/create-role/) command.
|
|
155
|
+
|
|
156
|
+
### Edit a Custom Role
|
|
157
|
+
|
|
158
|
+
#### Use the Dremio Console
|
|
159
|
+
|
|
160
|
+
1. Click  in the side navigation bar and choose **Organization settings**.
|
|
161
|
+
2. Select **Roles** in the organization settings sidebar.
|
|
162
|
+
3. On the Roles page, select the role.
|
|
163
|
+
4. On the Edit Role page, make any desired changes, such as adding or removing a child role and adding or removing a member.
|
|
164
|
+
5. Click **Save**.
|
|
165
|
+
|
|
166
|
+
#### Use SQL
|
|
167
|
+
|
|
168
|
+
You can also add or remove child roles and members using the [GRANT ROLE](/dremio-cloud/sql/commands/grant-role) and [REVOKE ROLE](/dremio-cloud/sql/commands/revoke-role) SQL commands.
|
|
169
|
+
|
|
170
|
+
### Remove a Custom Role
|
|
171
|
+
|
|
172
|
+
Removing a role will immediately revoke all associated privileges from its members. Ensure users have alternative access before deleting roles.
|
|
173
|
+
|
|
174
|
+
#### Use the Dremio Console
|
|
175
|
+
|
|
176
|
+
1. Click  in the side navigation bar and choose **Organization settings**.
|
|
177
|
+
2. Select **Roles** in the organization settings sidebar.
|
|
178
|
+
3. On the Roles page, hover over the row of the role and click  that appears next to the role.
|
|
179
|
+
4. Confirm that you want to delete the role.
|
|
180
|
+
|
|
181
|
+
Once confirmed, the role is deleted and cannot be retrieved.
|
|
182
|
+
|
|
183
|
+
#### Use SQL
|
|
184
|
+
|
|
185
|
+
You can also remove custom roles using the [`DROP ROLE`](/dremio-cloud/sql/commands/drop-role/) command.
|
|
186
|
+
|
|
187
|
+
### Add a Child Role
|
|
188
|
+
|
|
189
|
+
Child roles inherit all privileges from their parent roles. This creates a hierarchy where more specific roles build upon broader ones.
|
|
190
|
+
|
|
191
|
+
#### Use the Dremio Console
|
|
192
|
+
|
|
193
|
+
1. Click  in the side navigation bar and choose **Organization settings**.
|
|
194
|
+
2. Select **Roles** in the organization settings sidebar.
|
|
195
|
+
3. On the Roles page, select the parent role, then select the **Roles** tab.
|
|
196
|
+
4. Click the dropdown multi-select field and either select the desired role or enter a role name to search for it.
|
|
197
|
+
5. Click *Add*\* when you have selected the desired entry or entries. When a child role is added, it will display below the dropdown in a list.
|
|
198
|
+
6. Click **Save**.
|
|
199
|
+
|
|
200
|
+
The child role appears in the table along the left side of the screen.
|
|
201
|
+
|
|
202
|
+
#### Use SQL
|
|
203
|
+
|
|
204
|
+
You can also add child roles to parent roles using the [`GRANT ROLE`](/dremio-cloud/sql/commands/grant-role) SQL command:
|
|
205
|
+
|
|
206
|
+
Example Association of a Child Role
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
-- Make Data_Analyst a child role of Analytics_Team
|
|
210
|
+
GRANT ROLE Data_Analyst TO ROLE Analytics_Team;
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Remove a Child Role
|
|
214
|
+
|
|
215
|
+
#### Use the Dremio Console
|
|
216
|
+
|
|
217
|
+
1. Click  in the side navigation bar and choose **Organization settings**.
|
|
218
|
+
2. Select **Roles** in the organization settings sidebar.
|
|
219
|
+
3. On the Roles page, select the parent role, then select the **Roles** tab.
|
|
220
|
+
4. Hover over the row of the role and click  that appears next to the role.
|
|
221
|
+
5. Click **Save**.
|
|
222
|
+
|
|
223
|
+
#### Use SQL
|
|
224
|
+
|
|
225
|
+
You can also remove child roles from parent roles using the [`REVOKE ROLE`](/dremio-cloud/sql/commands/revoke-role) SQL command.
|
|
226
|
+
|
|
227
|
+
### Add a Member
|
|
228
|
+
|
|
229
|
+
#### Use the Dremio Console
|
|
230
|
+
|
|
231
|
+
1. Click  in the side navigation bar and choose **Organization settings**.
|
|
232
|
+
2. Select **Roles** in the organization settings sidebar.
|
|
233
|
+
3. On the Roles page, select the role, then select the **Members** tab.
|
|
234
|
+
4. Click the dropdown multi-select field and either select the desired user (listed by email address) or enter an email address to search for it.
|
|
235
|
+
5. Click **Add** when you have selected the desired entry or entries. When a member is added, it will display below the dropdown in a list.
|
|
236
|
+
6. Click **Save**.
|
|
237
|
+
|
|
238
|
+
#### Use SQL
|
|
239
|
+
|
|
240
|
+
You can also add members to roles using the [`GRANT ROLE`](/dremio-cloud/sql/commands/grant-role) SQL command:
|
|
241
|
+
|
|
242
|
+
Example creating a role member
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
-- Assign Data_Analyst role to a user
|
|
246
|
+
GRANT ROLE Data_Analyst TO USER 'jane.doe@company.com';
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Remove a Member
|
|
250
|
+
|
|
251
|
+
Users cannot remove themselves from the ADMIN role. If you are a member of the ADMIN role and wish to be removed from it, another user who has the necessary privileges must remove you.
|
|
252
|
+
|
|
253
|
+
#### Use the Dremio Console
|
|
254
|
+
|
|
255
|
+
1. Click  in the side navigation bar and choose **Organization settings**.
|
|
256
|
+
2. Select **Roles** in the organization settings sidebar.
|
|
257
|
+
3. On the Roles page, select the role, then select the **Members** tab.
|
|
258
|
+
4. Hover over the row of the member and click  that appears next to the member.
|
|
259
|
+
5. Click **Save**.
|
|
260
|
+
|
|
261
|
+
This removes them as a member of this role, and they will no longer possess the privileges associated with that role. However, the user still retains privileges associated with any other roles where they are members.
|
|
262
|
+
|
|
263
|
+
#### Use SQL
|
|
264
|
+
|
|
265
|
+
You can also remove members from roles using the [`REVOKE ROLE`](/dremio-cloud/sql/commands/revoke-role) SQL command.
|
|
266
|
+
|
|
267
|
+
## Limits and Considerations
|
|
268
|
+
|
|
269
|
+
* There is a limit of 10 nested roles in a hierarchy. For more information, see [Limits](/dremio-cloud/help-support/limits/).
|
|
270
|
+
|
|
271
|
+
Was this page helpful?
|
|
272
|
+
|
|
273
|
+
* How Role Inheritance Works
|
|
274
|
+
* System Roles
|
|
275
|
+
+ ADMIN
|
|
276
|
+
+ PUBLIC
|
|
277
|
+
* Custom Roles
|
|
278
|
+
+ View All Roles
|
|
279
|
+
+ Create a Custom Role
|
|
280
|
+
+ Edit a Custom Role
|
|
281
|
+
+ Remove a Custom Role
|
|
282
|
+
+ Add a Child Role
|
|
283
|
+
+ Remove a Child Role
|
|
284
|
+
+ Add a Member
|
|
285
|
+
+ Remove a Member
|
|
286
|
+
* Limits and Considerations
|
|
287
|
+
|
|
288
|
+
<div style="page-break-after: always;"></div>
|
|
289
|
+
|
|
290
|
+
# Compliance | Dremio Documentation
|
|
291
|
+
|
|
292
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/compliance
|
|
293
|
+
|
|
294
|
+
On this page
|
|
295
|
+
|
|
296
|
+
Dremio meets the IT control requirements for several compliance frameworks and certifications, as described below.
|
|
297
|
+
|
|
298
|
+
## SOC 2 Type II Report
|
|
299
|
+
|
|
300
|
+
Dremio maintains compliance with the American Institute of Certified Public Accountants (AICPA) System and Organization Controls - Trust Services Criteria, commonly known as SOC 2.
|
|
301
|
+
|
|
302
|
+
### Key Benefits
|
|
303
|
+
|
|
304
|
+
[SOC 2 Type II reports](https://us.aicpa.org/interestareas/frc/assuranceadvisoryservices/aicpasoc2report) provide an in-depth analysis of cloud service providers regarding the safeguards used to protect data and how controls are performed. These reports are issued by independent, third-party auditors and cover the key areas of security, availability, confidentiality, and privacy.
|
|
305
|
+
|
|
306
|
+
This independent assessment of Dremio provides a detailed report regarding the environments used to provide security and data privacy. The report includes descriptions of these controls, the tests performed to assess their effectiveness, the results of those tests, and an overall opinion regarding the design and operational effectiveness of the environments.
|
|
307
|
+
|
|
308
|
+
## ISO 27001 Certification
|
|
309
|
+
|
|
310
|
+
ISO 27001 is an internationally recognized specification for an Information Security Management System (ISMS). ISO 27001 is the only auditable standard that addresses the overall management of information security rather than just which technical controls to implement.
|
|
311
|
+
|
|
312
|
+
### Key Benefits
|
|
313
|
+
|
|
314
|
+
Obtaining [ISO 27001:2022 certification](https://www.iso.org/isoiec-27001-information-security.html) demonstrates that Dremio employs a comprehensive framework of legal, physical, and technical controls for information risk management.
|
|
315
|
+
|
|
316
|
+
## GDPR Compliance
|
|
317
|
+
|
|
318
|
+
Dremio is compliant with the storage and security of its data according to Article 27 of the General Data Protection Regulation (GDPR). Please see [Dremio's Privacy Policy](https://www.dremio.com/legal/privacy-policy/) for additional information regarding our appointed European Data Protection Officer (EDPO) in the EU.
|
|
319
|
+
|
|
320
|
+
### Key Benefits
|
|
321
|
+
|
|
322
|
+
As part of the European Union, specific regulations exist that require companies to [maintain compliance with GDPR](https://gdpr.org/). This regulation governs the way user data is stored, processed, and utilized on Dremio. Specifically, it prevents the exploitation of user data and standardizes the data protection laws that services must follow throughout Europe.
|
|
323
|
+
|
|
324
|
+
## CCPA Compliance
|
|
325
|
+
|
|
326
|
+
Dremio maintains compliance with the California Consumer Privacy Act (CCPA), which regulates the handling of personal data and prevents any unauthorized use or sale. Please see [Dremio's Privacy Notice for California Residents](https://www.dremio.com/legal/privacy-policy/) for additional information.
|
|
327
|
+
|
|
328
|
+
### Key Benefits
|
|
329
|
+
|
|
330
|
+
Adherence to [CCPA](https://oag.ca.gov/privacy/ccpa) by an organization ensures that California residents have the right to opt out of having their data sold to third parties, request disclosure of data collected, and request deletion of that data.
|
|
331
|
+
|
|
332
|
+
## HIPAA Compliance
|
|
333
|
+
|
|
334
|
+
Dremio is compliant with the Health Insurance Portability and Accountability Act (HIPAA), a series of federal regulatory standards that outline the lawful use and disclosure of protected health information in the United States. HIPAA compliance is regulated by the Department of Health and Human Services (HHS) and enforced by the Office for Civil Rights (OCR).
|
|
335
|
+
|
|
336
|
+
### Key Benefits
|
|
337
|
+
|
|
338
|
+
Adherence to [HIPAA](https://www.cdc.gov/phlp/publications/topic/hipaa.html) ensures that healthcare providers, health plans, healthcare clearinghouses, and business associates of HIPAA-covered entities must implement multiple safeguards to protect sensitive personal and health information.
|
|
339
|
+
|
|
340
|
+
Was this page helpful?
|
|
341
|
+
|
|
342
|
+
* SOC 2 Type II Report
|
|
343
|
+
+ Key Benefits
|
|
344
|
+
* ISO 27001 Certification
|
|
345
|
+
+ Key Benefits
|
|
346
|
+
* GDPR Compliance
|
|
347
|
+
+ Key Benefits
|
|
348
|
+
* CCPA Compliance
|
|
349
|
+
+ Key Benefits
|
|
350
|
+
* HIPAA Compliance
|
|
351
|
+
+ Key Benefits
|
|
352
|
+
|
|
353
|
+
<div style="page-break-after: always;"></div>
|
|
354
|
+
|
|
355
|
+
# Privileges | Dremio Documentation
|
|
356
|
+
|
|
357
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/privileges
|
|
358
|
+
|
|
359
|
+
On this page
|
|
360
|
+
|
|
361
|
+
Dremio provides a range of privileges for each type of securable object. These privileges work together to control access across your organization.
|
|
362
|
+
|
|
363
|
+
## Key Concepts
|
|
364
|
+
|
|
365
|
+
### Grants
|
|
366
|
+
|
|
367
|
+
Dremio privileges are granted to users and roles. Users possess all the privileges granted to their user identity and their roles. See [`GRANT TO USER`](/dremio-cloud/sql/commands/grant-to-user) and [`GRANT TO ROLE`](/dremio-cloud/sql/commands/grant-to-role) for example grants.
|
|
368
|
+
|
|
369
|
+
### Privilege Inheritance
|
|
370
|
+
|
|
371
|
+
Dremio uses a hierarchical privilege system where most higher-level privileges apply to all objects within their scope:
|
|
372
|
+
|
|
373
|
+
**Organization** → **Projects** → **Sources** → **Folders** → **Tables and Views**
|
|
374
|
+
|
|
375
|
+
When you grant a privilege at a higher level, it applies to all relevant objects at lower levels. For example, granting SELECT at the project level gives SELECT access to all datasets in that project across all sources.
|
|
376
|
+
|
|
377
|
+
### Ownership and Object Creation
|
|
378
|
+
|
|
379
|
+
The OWNERSHIP privilege is unique—it applies only to the specific object where it's assigned and is never inherited by nested objects. When you create any object, you automatically become its owner. This design maintains clear ownership boundaries, so a project owner doesn't automatically own every table in that project. OWNERSHIP grants full control of the specific object. Ownership can be transferred using the [`GRANT OWNERSHIP`](/dremio-cloud/sql/commands/grant-to-role) command.
|
|
380
|
+
|
|
381
|
+
### Sharing Data Through Views
|
|
382
|
+
|
|
383
|
+
When you create a view based on a table, you become the owner of that view. Your privileges as the view owner determine whether the view can access the underlying table—creating a privilege chain. You can then grant other users access to your view, allowing them to see the table's data even though they don't have direct permission to access that table themselves. However, if you (or whoever last modified the view) lose access to the underlying table, the entire privilege chain breaks and the view stops working for everyone.
|
|
384
|
+
|
|
385
|
+
## Organization Privileges
|
|
386
|
+
|
|
387
|
+
Organization privileges are the highest level in the hierarchy and control organization-wide operations and resources.
|
|
388
|
+
|
|
389
|
+
| Privilege Type | Description |
|
|
390
|
+
| --- | --- |
|
|
391
|
+
| ALL | Shorthand to grant all supported privileges except OWNERSHIP. |
|
|
392
|
+
| CALL MODEL | Use the AI models available across all model providers. The PUBLIC role has this privilege on the organization by default, but it can be revoked. |
|
|
393
|
+
| CONFIGURE BILLING | Create and manage billing accounts for usage invoices. |
|
|
394
|
+
| CONFIGURE SECURITY | Configure organization security features including [identity providers](/dremio-cloud/security/authentication/idp), [external token providers](/dremio-cloud/security/authentication/app-authentication/external-token), and custom [OAuth applications](/dremio-cloud/security/authentication/app-authentication/oauth-apps). |
|
|
395
|
+
| CREATE MODEL PROVIDER | Create model providers for the organization. |
|
|
396
|
+
| CREATE PROJECT | Create new projects, each including an Open Catalog. |
|
|
397
|
+
| CREATE ROLE | Create and edit roles. See [Custom Roles](/dremio-cloud/security/roles#custom-roles) for details. |
|
|
398
|
+
| CREATE USER | Create and edit users. See [Add a User](/dremio-cloud/admin/users#add-a-user) for details. |
|
|
399
|
+
| MANAGE GRANTS | Grant or revoke privileges on the organization and all objects it contains. |
|
|
400
|
+
| OWNERSHIP | Full control of the organization; not inherited by nested objects. |
|
|
401
|
+
|
|
402
|
+
## Project Privileges
|
|
403
|
+
|
|
404
|
+
Project privileges control access to projects and apply to different categories of objects within the project. These privileges provide broad control across all sources, catalogs, and engines in the project.
|
|
405
|
+
|
|
406
|
+
| Privilege Type | Applies To | Description |
|
|
407
|
+
| --- | --- | --- |
|
|
408
|
+
| OWNERSHIP | Project | Full control of the project. |
|
|
409
|
+
| USAGE | Project | Access the project and its engines. Required for any other project operations. |
|
|
410
|
+
| VIEW JOB HISTORY | Project | View the job history page for all users across the entire project. |
|
|
411
|
+
| CREATE SOURCE | Sources | Create new data sources and modify source configurations throughout the project. |
|
|
412
|
+
| EXTERNAL QUERY | Sources | Run [external queries](/dremio-cloud/bring-data/connect/databases/#external-queries) on compatible sources. |
|
|
413
|
+
| ALTER | Datasets | Edit definitions, settings, wikis, and manage metadata. Create or remove folders and datasets where supported. |
|
|
414
|
+
| CREATE TABLE | Datasets | Create tables using [`CREATE TABLE`](/dremio-cloud/sql/commands/create-table) and [`CREATE TABLE AS`](/dremio-cloud/sql/commands/create-table-as) on sources that support table creation. |
|
|
415
|
+
| DELETE INSERT TRUNCATE UPDATE | Datasets | Execute DML operations on Apache Iceberg tables in compatible object storage. |
|
|
416
|
+
| DROP | Datasets | Remove tables and folders from all sources that support deletion operations. |
|
|
417
|
+
| SELECT | Datasets | Query contained datasets and view schema definitions, lineages, wikis, and labels. |
|
|
418
|
+
| ALTER REFLECTION | Reflections | Create, edit, and view all Reflections across the project. Includes access to Reflection pages, API endpoints, and job history. |
|
|
419
|
+
| VIEW REFLECTION | Reflections | View all Reflections across the project, including pages, API endpoints, and job history. |
|
|
420
|
+
| MODIFY | Engines | Complete engine management including workload settings, routing, and queues. Includes MONITOR and OPERATE. |
|
|
421
|
+
| MONITOR | Engines | View all engine settings including replicas, auto-stop settings, time limits, and tags across all engines. |
|
|
422
|
+
| OPERATE | Engines | Start, stop, enable, and disable all engines in the project. |
|
|
423
|
+
| MANAGE GRANTS | All Objects | Grant and revoke privileges on the project and all objects it contains. |
|
|
424
|
+
|
|
425
|
+
## Open Catalog Privileges
|
|
426
|
+
|
|
427
|
+
[Open Catalog](/dremio-cloud/bring-data/connect/catalogs/open-catalog/) is a specialized source whose privileges control access to folders and datasets within the catalog.
|
|
428
|
+
|
|
429
|
+
You can grant each of these privileges at the indicated scopes:
|
|
430
|
+
|
|
431
|
+
* **Catalog scope:** Privileges are granted on the catalog and apply to all the catalog folders and datasets.
|
|
432
|
+
* **Folder scope:** Privileges are granted to a specific folder and apply to all contained folders and datasets.
|
|
433
|
+
* **Dataset scope:** Privileges are granted to a single table or view and apply only to that dataset.
|
|
434
|
+
|
|
435
|
+
| Privilege Type | Catalog Scope | Folder Scope | Dataset Scope | Description |
|
|
436
|
+
| --- | --- | --- | --- | --- |
|
|
437
|
+
| ALL | ✔ | ✔ | ✔ | Shorthand to grant all supported privileges except OWNERSHIP. |
|
|
438
|
+
| ALTER | ✔ | ✔ | ✔ | Edit contained table definitions, settings, wikis, and manage metadata operations. Add or remove folders. |
|
|
439
|
+
| ALTER REFLECTION | ✔ | ✔ | ✔ | Create, edit, and view Reflections on contained datasets, including pages, APIs, and job history. |
|
|
440
|
+
| DROP | ✔ | ✔ | | Remove contained datasets and folders. |
|
|
441
|
+
| MANAGE GRANTS | ✔ | ✔ | ✔ | Grant and revoke privileges on contained objects. |
|
|
442
|
+
| OWNERSHIP | ✔ | ✔ | ✔ | Full control; not inherited by nested objects. |
|
|
443
|
+
| READ METADATA | ✔ | ✔ | ✔ | View metadata including column information and job history, limited to jobs you have permission to see. |
|
|
444
|
+
| SELECT | ✔ | ✔ | ✔ | Query contained datasets and view schema definitions, lineages, wikis, and labels. |
|
|
445
|
+
| USAGE | ✔ | ✔ | | Use the immediate namespace or folder. Must be granted on every folder in the hierarchy path. |
|
|
446
|
+
| VIEW REFLECTION | ✔ | ✔ | ✔ | View Reflections on contained datasets, including pages, APIs, and job history. |
|
|
447
|
+
| WRITE | ✔ | ✔ | ✔ | Execute write operations [`INSERT`](/dremio-cloud/sql/commands/insert), [`UPDATE`](/dremio-cloud/sql/commands/update), [`TRUNCATE`](/dremio-cloud/sql/commands/truncate), [`DELETE`](/dremio-cloud/sql/commands/delete) on contained Apache Iceberg tables. |
|
|
448
|
+
|
|
449
|
+
## Source Privileges
|
|
450
|
+
|
|
451
|
+
Source privileges control access to external data sources and datasets. All sources and other catalogs utilize these privileges in Dremio.
|
|
452
|
+
|
|
453
|
+
You can grant each of these privileges at the indicated scopes:
|
|
454
|
+
|
|
455
|
+
* **Source scope:** Privileges are granted on the source and apply to all the source folders and datasets.
|
|
456
|
+
* **Folder scope:** Privileges are granted to a specific folder and apply to all contained folders and datasets.
|
|
457
|
+
* **Dataset scope:** Privileges are granted to a specific table or view and apply only to that dataset.
|
|
458
|
+
|
|
459
|
+
| Privilege Type | Source Scope | Folder Scope | Dataset Scope | Description |
|
|
460
|
+
| --- | --- | --- | --- | --- |
|
|
461
|
+
| ALL | ✔ | ✔ | ✔ | Shorthand to grant all supported privileges except OWNERSHIP. |
|
|
462
|
+
| ALTER | ✔ | ✔ | ✔ | Edit contained dataset definitions, settings, wikis, and manage metadata. Add or remove folders, promote or demote tables. |
|
|
463
|
+
| ALTER REFLECTION | ✔ | ✔ | ✔ | Create, edit, and view all Reflections on contained datasets, including pages, APIs, and job history. |
|
|
464
|
+
| CREATE TABLE | ✔ | ✔ | | Create new tables using [`CREATE TABLE`](/dremio-cloud/sql/commands/create-table) and [`CREATE TABLE AS`](/dremio-cloud/sql/commands/create-table-as) (requires source to support table creation). |
|
|
465
|
+
| DELETE INSERT TRUNCATE UPDATE | ✔ | ✔ | ✔ | Execute associated DML operations [`DELETE`](/dremio-cloud/sql/commands/delete), [`INSERT`](/dremio-cloud/sql/commands/insert), [`TRUNCATE`](/dremio-cloud/sql/commands/truncate), [`UPDATE`](/dremio-cloud/sql/commands/update) on all contained Apache Iceberg tables (requires compatible object storage). |
|
|
466
|
+
| DROP | ✔ | ✔ | | Remove contained datasets and folders (requires source deletion support). |
|
|
467
|
+
| EXTERNAL QUERY | ✔ | | | Run [external queries](/dremio-cloud/bring-data/connect/databases/#external-queries) on compatible sources. |
|
|
468
|
+
| MANAGE GRANTS | ✔ | ✔ | ✔ | Grant and revoke privileges on contained objects. |
|
|
469
|
+
| MODIFY | ✔ | | | Access and modify configuration settings, connection parameters, and source-level properties. |
|
|
470
|
+
| OWNERSHIP | ✔ | ✔ | ✔ | Full control; not inherited by nested objects. |
|
|
471
|
+
| READ METADATA | ✔ | ✔ | ✔ | View metadata including column information and job history, limited to jobs you have permission to see. |
|
|
472
|
+
| SELECT | ✔ | ✔ | ✔ | Query contained datasets and view schema definitions, lineages, wikis, and labels. |
|
|
473
|
+
| VIEW REFLECTION | ✔ | ✔ | ✔ | View Reflections on contained datasets, including pages, APIs, and job history. |
|
|
474
|
+
|
|
475
|
+
## User-Defined Function Privileges
|
|
476
|
+
|
|
477
|
+
User-defined functions (UDFs) allow you to create reusable custom functions using SQL expressions.
|
|
478
|
+
|
|
479
|
+
| Privilege Type | Description |
|
|
480
|
+
| --- | --- |
|
|
481
|
+
| ALL | Shorthand to grant all supported privileges except OWNERSHIP. |
|
|
482
|
+
| ALTER | Edit the function's wiki, definitions, and settings. |
|
|
483
|
+
| EXECUTE | Ability to run the UDF. Use the function as row-access and column-masking policies for tables and views. |
|
|
484
|
+
| MANAGE GRANTS | Grant and revoke privileges on the UDF. |
|
|
485
|
+
| OWNERSHIP | Full control of the UDF; not inherited by nested objects. |
|
|
486
|
+
|
|
487
|
+
## Engine Privileges
|
|
488
|
+
|
|
489
|
+
Engine privileges control access to specific named engines. Use engine privileges at the project level to manage all engines collectively.
|
|
490
|
+
|
|
491
|
+
| Privilege Type | Description |
|
|
492
|
+
| --- | --- |
|
|
493
|
+
| ALL | Shorthand to grant all supported privileges except OWNERSHIP. |
|
|
494
|
+
| MANAGE GRANTS | Grant and revoke privileges on the specific engine. |
|
|
495
|
+
| MODIFY | Access and modify all engine settings including replicas, auto-stop configuration, time limits, and tags. |
|
|
496
|
+
| MONITOR | View all engine settings and configuration details without modification rights. |
|
|
497
|
+
| OPERATE | Start, stop, enable, and disable the engine. |
|
|
498
|
+
| OWNERSHIP | Full control of the engine; not inherited by nested objects. |
|
|
499
|
+
| USAGE | Execute queries using the engine. The PUBLIC role has this privilege on all engines by default, but it can be revoked. |
|
|
500
|
+
|
|
501
|
+
## Model Provider Privileges
|
|
502
|
+
|
|
503
|
+
Model provider privileges control access to AI model providers configured at the organization level. These privileges determine who can use, manage, and configure model providers for your organization.
|
|
504
|
+
|
|
505
|
+
| Privilege Type | Description |
|
|
506
|
+
| --- | --- |
|
|
507
|
+
| CALL MODEL | Use the AI models available. |
|
|
508
|
+
| MODIFY | Access and modify all model provider settings. |
|
|
509
|
+
| MANAGE GRANTS | Grant and revoke privileges on the model provider. |
|
|
510
|
+
| OWNERSHIP | Full control of the model provider. |
|
|
511
|
+
|
|
512
|
+
## Script Privileges
|
|
513
|
+
|
|
514
|
+
Script privileges enable sharing of individual saved scripts with other users and roles.
|
|
515
|
+
|
|
516
|
+
| Privilege Type | Description |
|
|
517
|
+
| --- | --- |
|
|
518
|
+
| ALL | Shorthand to grant all supported privileges except OWNERSHIP. |
|
|
519
|
+
| DELETE | Remove the script permanently. |
|
|
520
|
+
| MANAGE GRANTS | Grant and revoke privileges on the script. |
|
|
521
|
+
| MODIFY | Edit the script content and settings. |
|
|
522
|
+
| OWNERSHIP | Full control of the script; not inherited by nested objects. |
|
|
523
|
+
| VIEW | Access, view, and execute the script. |
|
|
524
|
+
|
|
525
|
+
## Identity Provider Privileges
|
|
526
|
+
|
|
527
|
+
[Identity provider](/dremio-cloud/security/authentication/idp) privileges control access to organization-level authentication and identity management settings.
|
|
528
|
+
|
|
529
|
+
| Privilege Type | Description |
|
|
530
|
+
| --- | --- |
|
|
531
|
+
| ALL | Shorthand to grant all supported privileges except OWNERSHIP. |
|
|
532
|
+
| MODIFY | Access and modify identity provider settings, including configuration changes and updates. |
|
|
533
|
+
| MONITOR | View all identity provider settings and configuration details without modification rights. |
|
|
534
|
+
| OWNERSHIP | Full control of the identity provider; not inherited by nested objects. |
|
|
535
|
+
|
|
536
|
+
## Related Topics
|
|
537
|
+
|
|
538
|
+
* [Security Pillar](/dremio-cloud/help-support/well-architected-framework/security) – See the security design principles and best practices of the Dremio Well-Architected Framework.
|
|
539
|
+
|
|
540
|
+
Was this page helpful?
|
|
541
|
+
|
|
542
|
+
* Key Concepts
|
|
543
|
+
+ Grants
|
|
544
|
+
+ Privilege Inheritance
|
|
545
|
+
+ Ownership and Object Creation
|
|
546
|
+
+ Sharing Data Through Views
|
|
547
|
+
* Organization Privileges
|
|
548
|
+
* Project Privileges
|
|
549
|
+
* Open Catalog Privileges
|
|
550
|
+
* Source Privileges
|
|
551
|
+
* User-Defined Function Privileges
|
|
552
|
+
* Engine Privileges
|
|
553
|
+
* Model Provider Privileges
|
|
554
|
+
* Script Privileges
|
|
555
|
+
* Identity Provider Privileges
|
|
556
|
+
* Related Topics
|
|
557
|
+
|
|
558
|
+
<div style="page-break-after: always;"></div>
|
|
559
|
+
|
|
560
|
+
# PrivateLink | Dremio Documentation
|
|
561
|
+
|
|
562
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/privatelink
|
|
563
|
+
|
|
564
|
+
On this page
|
|
565
|
+
|
|
566
|
+
Dremio PrivateLink enables secure, private connectivity between your AWS VPC and Dremio services without exposing traffic to the public internet. This service allows you to access all Dremio control plane services, including the UI, REST APIs, and query execution endpoints.
|
|
567
|
+
|
|
568
|
+
When you enable PrivateLink for your Dremio organization, all Dremio services are accessible only through your VPC endpoint. However, the following Dremio services remain publicly accessible:
|
|
569
|
+
|
|
570
|
+
* `login.dremio.cloud` – OAuth server for programmatic authentication (API clients, JDBC/ODBC)
|
|
571
|
+
* `scim.dremio.cloud` – SCIM provisioning endpoint for identity provider integration (Microsoft Entra ID, Okta, etc.)
|
|
572
|
+
* `sql.dremio.cloud` – Dremio JDBC driver (Legacy) endpoint.
|
|
573
|
+
|
|
574
|
+
If your organization restricts outbound internet access, ensure the `accounts.dremio.cloud` (or `accounts.eu.dremio.cloud` for EU regions) domain is allowed in your firewall rules for authentication to function properly. This authentication service is used during single sign-on (SSO) login flows.
|
|
575
|
+
|
|
576
|
+
Upon activation of PrivateLink, Dremio console sessions terminate immediately, JDBC/ODBC/API sessions terminate within one hour, and running queries may be interrupted.
|
|
577
|
+
|
|
578
|
+
Before activating PrivateLink in your Dremio organization:
|
|
579
|
+
|
|
580
|
+
* Verify your VPC endpoint is available.
|
|
581
|
+
* Confirm DNS resolution is working and connections through the endpoint are functioning.
|
|
582
|
+
* Schedule a maintenance window and notify users.
|
|
583
|
+
|
|
584
|
+
PrivateLink uses a **service-based routing** approach with the following domain structure:
|
|
585
|
+
|
|
586
|
+
`<orgAlias>.<resource>.privatelink.dremio.cloud`
|
|
587
|
+
|
|
588
|
+
### Domain Components
|
|
589
|
+
|
|
590
|
+
* **orgAlias** – Your organization's unique identifier that routes connections to your Dremio organization. Requirements:
|
|
591
|
+
+ Starts with a letter (a-z, A-Z)
|
|
592
|
+
+ Contains only letters, digits, and hyphens
|
|
593
|
+
+ Ends with a letter or digit (not a hyphen)
|
|
594
|
+
+ Length: 3-63 characters
|
|
595
|
+
+ Case-insensitive (stored as lowercase)
|
|
596
|
+
+ Follows RFC 1035 DNS naming conventions
|
|
597
|
+
* **resource** – The [Dremio services](/dremio-cloud/about/regions/#connection-endpoints) in the connection. The following interfaces are not supported by PrivateLink:
|
|
598
|
+
+ `sql.dremio.cloud` for the Dremio JDBC driver (Legacy). Dremio recommends the Arrow Flight SQL JDBC driver using the `data.dremio.cloud` service endpoint when using PrivateLink.
|
|
599
|
+
+ `mcp.dremio.cloud` for AI agent integration. Once PrivateLink is activated, this endpoint will not be available.
|
|
600
|
+
* **privatelink.dremio.cloud** – The PrivateLink domain suffix for all private connections
|
|
601
|
+
|
|
602
|
+
**Examples:**
|
|
603
|
+
|
|
604
|
+
* `acme-corp.app.privatelink.dremio.cloud` – Routes to the Dremio console at `app.dremio.cloud`
|
|
605
|
+
* `acme-corp.api.privatelink.dremio.cloud` – Routes to the REST API at `api.dremio.cloud`
|
|
606
|
+
|
|
607
|
+
### Network Components
|
|
608
|
+
|
|
609
|
+
PrivateLink uses a VPC endpoint in your AWS VPC to provide secure, private connectivity to Dremio services. Users and applications within the VPC connect through the VPC endpoint using your privately hosted DNS name resolution. Remote users connect via VPN to access the VPC and its resources.
|
|
610
|
+
|
|
611
|
+
### Certificate Management
|
|
612
|
+
|
|
613
|
+
Dremio uses wildcard certificates for `*.privatelink.dremio.cloud`. No additional certificate management is required. Server certificates are managed by Dremio, and standard TLS verification applies to client vertification. All certificates are publicly logged.
|
|
614
|
+
|
|
615
|
+
## Prerequisites
|
|
616
|
+
|
|
617
|
+
Before setting up PrivateLink, ensure you have:
|
|
618
|
+
|
|
619
|
+
* AWS Requirements
|
|
620
|
+
+ **VPC**: Your VPC in the same region as your Dremio service, where you want to enable PrivateLink connectivity.
|
|
621
|
+
+ **Subnets**: At least one subnet in your VPC. When you create a VPC endpoint, you select one or more subnets, and AWS creates an Elastic Network Interface (ENI) in each selected subnet. All ENIs belong to the same VPC endpoint. Select subnets in multiple availability zones for high availability—if one availability zone fails, traffic continues to flow through ENIs in other zones.
|
|
622
|
+
+ **VPC Endpoints**: Permission to create and manage VPC endpoints.
|
|
623
|
+
+ **Security Groups**: Ability to create or modify security groups.
|
|
624
|
+
* Network Requirements
|
|
625
|
+
+ **DNS Resolution**: Ability to configure private DNS (such as Route 53 Private Hosted Zones) or CNAME records in your VPC. You will need to create CNAME records that map PrivateLink URLs like `acme-corp.app.privatelink.dremio.cloud` to your VPC endpoint DNS name. While you could technically connect using the VPC endpoint DNS name directly, DNS configuration is required for proper TLS certificate validation and to enable host-based routing to different Dremio services, including `app`, `api`, `data`, and `login`.
|
|
626
|
+
+ **TLS/SSL**: Your environment must support TLS 1.2 or higher.
|
|
627
|
+
* Client Requirements
|
|
628
|
+
+ **Arrow Flight Drivers**: All SQL clients and BI tools must use Arrow Flight-based drivers. Some clients and tools provide their own embedded drivers, but you must use the Dremio Arrow Flight JDBC and ODBC drivers in place of those embedded drivers.
|
|
629
|
+
|
|
630
|
+
## Configuration Steps
|
|
631
|
+
|
|
632
|
+
To create a PrivateLink connection:
|
|
633
|
+
|
|
634
|
+
1. **Create a VPC Endpoint** – In the Amazon Management Console, create a VPC endpoint for [connecting to an endpoint service as the service consumer](https://docs.aws.amazon.com/vpc/latest/privatelink/create-endpoint-service.html#connect-to-endpoint-service), using the steps defined by AWS.
|
|
635
|
+
|
|
636
|
+
* For **Type**, choose **Endpoint services that use NLBs and GWLBs**.
|
|
637
|
+
* For **Service Name**, enter the Dremio service name for your Dremio region:
|
|
638
|
+
+ us-east-1: `com.amazonaws.vpce.us-east-1.vpce-svc-0c795b359782ac685`
|
|
639
|
+
+ us-west-2: `com.amazonaws.vpce.us-west-2.vpce-svc-0b42aeb4681d6f4a4`
|
|
640
|
+
* Select your VPC, subnets, and additional configurations.
|
|
641
|
+
* Optionally define a DNS name for your VPC endpoint and enter that name in your privately hosted DNS.
|
|
642
|
+
* Click **Create endpoint**.
|
|
643
|
+
2. **Configure a Security Group** – Attach a security group with the following rules:
|
|
644
|
+
|
|
645
|
+
* Inbound Rules:
|
|
646
|
+
|
|
647
|
+
| Type | Protocol | Port Range | Source | Description |
|
|
648
|
+
| --- | --- | --- | --- | --- |
|
|
649
|
+
| HTTPS | TCP | 443 | Your VPC CIDR or specific security groups | Allow HTTPS traffic from your resources |
|
|
650
|
+
* Outbound Rules:
|
|
651
|
+
|
|
652
|
+
| Type | Protocol | Port Range | Destination | Description |
|
|
653
|
+
| --- | --- | --- | --- | --- |
|
|
654
|
+
| HTTPS | TCP | 443 | 0.0.0.0/0 | Allow outbound HTTPS (required for SSO authentication) |
|
|
655
|
+
3. **Configure Private DNS** – Create CNAME records in your private DNS (Route 53 Private Hosted Zone or equivalent) to map Dremio service domains to your VPC endpoint DNS name. See AWS documentation for [creating a private hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html). Create one CNAME record for each PrivateLink URL associated with a Dremio service. Replace `<orgAlias>` with your organization alias and `<vpc-endpoint-dns-name>` with the DNS name of your VPC endpoint (found in the AWS Console under VPC > Endpoints).
|
|
656
|
+
|
|
657
|
+
* `<orgAlias>.app.privatelink.dremio.cloud` → `<vpc-endpoint-dns-name>`
|
|
658
|
+
* `<orgAlias>.api.privatelink.dremio.cloud` → `<vpc-endpoint-dns-name>`
|
|
659
|
+
* `<orgAlias>.data.privatelink.dremio.cloud` → `<vpc-endpoint-dns-name>`
|
|
660
|
+
* `<orgAlias>.login.privatelink.dremio.cloud` → `<vpc-endpoint-dns-name>`
|
|
661
|
+
4. **Configure Client Tools** – Configure client applications to use the PrivateLink endpoints:
|
|
662
|
+
|
|
663
|
+
* **Power BI Desktop** - See [Connect to Dremio via PrivateLink](/dremio-cloud/explore-analyze/client-apps/microsoft-power-bi#connect-to-dremio-via-privatelink).
|
|
664
|
+
* **JDBC/ODBC Drivers** - Update connection strings to use `<orgAlias>.data.privatelink.dremio.cloud`.
|
|
665
|
+
* **REST API Clients** - Update base URL to `https://<orgAlias>.api.privatelink.dremio.cloud`.
|
|
666
|
+
5. **Verify Connectivity** – Test connectivity to Dremio using the VPC endpoint and private DNS:
|
|
667
|
+
|
|
668
|
+
* Test DNS resolution using `nslookup <orgAlias>.app.privatelink.dremio.cloud`. This should resolve to private IP addresses in your VPC.
|
|
669
|
+
* From a system within your VPC, test access to the Dremio console by navigating to `https://<orgAlias>.app.privatelink.dremio.cloud`. You should see the Dremio login page.
|
|
670
|
+
* From a system within your VPC, test API access by calling an API endpoint with a base URL of `curl https://<orgAlias>.api.privatelink.dremio.cloud/api/v0/`.
|
|
671
|
+
6. **Enable PrivateLink** – Enable PrivateLink by filing a support ticket with Dremio Support at the [Dremio Support Portal](https://support.dremio.com/). In the support ticket, provide:
|
|
672
|
+
|
|
673
|
+
* Your **orgAlias**
|
|
674
|
+
* Your Dremio **Organization ID** by clicking  in the side navigation bar, choosing **Organization Settings**, and then copying the **Organization ID**.
|
|
675
|
+
* Your VPC endpoint ID from the AWS Console.
|
|
676
|
+
* Confirmation that connectivity works using your new VPC endpoint.
|
|
677
|
+
7. **Resume Operation** – Resume operation utilizing your PrivateLink connections.
|
|
678
|
+
|
|
679
|
+
Was this page helpful?
|
|
680
|
+
|
|
681
|
+
* Domain Components
|
|
682
|
+
* Network Components
|
|
683
|
+
* Certificate Management
|
|
684
|
+
* Prerequisites
|
|
685
|
+
* Configuration Steps
|
|
686
|
+
|
|
687
|
+
<div style="page-break-after: always;"></div>
|
|
688
|
+
|
|
689
|
+
# Authentication | Dremio Documentation
|
|
690
|
+
|
|
691
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/
|
|
692
|
+
|
|
693
|
+
On this page
|
|
694
|
+
|
|
695
|
+
Dremio supports multiple authentication methods for different connection types and user scenarios.
|
|
696
|
+
|
|
697
|
+
| Use Case | Connection Type | Recommended Method |
|
|
698
|
+
| --- | --- | --- |
|
|
699
|
+
| **Interactive web access** | Dremio console | Single Sign-On or Username/Password |
|
|
700
|
+
| **SQL clients** | JDBC/ODBC clients | Personal Access Tokens (PAT) or Username/Password |
|
|
701
|
+
| **Development & testing** | Client applications, REST API | Personal Access Tokens (PAT) |
|
|
702
|
+
| **Production scripts & automation** | Client applications, REST API | OAuth access tokens via PAT Exchange |
|
|
703
|
+
| **Custom apps with existing IdP** | Client applications, REST API | OAuth access tokens via External JWT Exchange |
|
|
704
|
+
|
|
705
|
+
### Username/Password
|
|
706
|
+
|
|
707
|
+
Username and password authentication allows users to sign in directly to Dremio using their email address and a password managed within Dremio. This method is suitable for users who don't have access to an enterprise identity provider or need standalone accounts. Users can reset their passwords through the Dremio console or via email reset links.
|
|
708
|
+
|
|
709
|
+
### Single Sign-On
|
|
710
|
+
|
|
711
|
+
Users authenticate through configured identity providers using OIDC protocols. Dremio supports all OIDC-compliant enterprise identity providers, such as Microsoft Entra ID and Okta, as well as social identity providers like Google and GitHub. Users experience automatic login if already signed in to their identity provider.
|
|
712
|
+
|
|
713
|
+
### Personal Access Tokens (PAT)
|
|
714
|
+
|
|
715
|
+
[Personal access tokens](/dremio-cloud/security/authentication/personal-access-token) are long-lived authentication credentials that allow programmatic access to Dremio without using passwords. PATs function like API keys and can be used in scripts, applications, and automated processes to authenticate requests.
|
|
716
|
+
|
|
717
|
+
**Token lifespan:** PATs can be configured with custom expiration periods up to 180 days or set to never expire. You control the lifespan when creating the token.
|
|
718
|
+
|
|
719
|
+
**Security considerations:**
|
|
720
|
+
|
|
721
|
+
* PATs can have lifespans up to 180 days, making them convenient but potentially risky if compromised.
|
|
722
|
+
* Store PATs securely using environment variables or secret management systems.
|
|
723
|
+
* Never include PATs in code repositories or logs.
|
|
724
|
+
* Regularly rotate PATs and revoke unused tokens.
|
|
725
|
+
* Consider using PAT Exchange for enhanced security in production environments.
|
|
726
|
+
|
|
727
|
+
Users can create and manage PATs through their Account Settings in the Dremio console.
|
|
728
|
+
|
|
729
|
+
### OAuth Access Tokens
|
|
730
|
+
|
|
731
|
+
[OAuth access tokens](/dremio-cloud/api/oauth-token) are short-lived credentials obtained by exchanging other authentication methods (such as PATs or external JWTs). These tokens provide several security advantages:
|
|
732
|
+
|
|
733
|
+
* **Limited lifespan:** Tokens expire after 1 hour, reducing risk if compromised.
|
|
734
|
+
* **Reduced credential exposure:** Your primary credentials (PAT or password) are only used to obtain the token.
|
|
735
|
+
* **Standardized format:** Compatible with OAuth 2.0 standards and tooling.
|
|
736
|
+
* **Automatic refresh:** Can be programmatically renewed without re-entering credentials.
|
|
737
|
+
|
|
738
|
+
**Token lifespan:** OAuth access tokens expire after 1 hour. Applications should implement refresh logic to obtain new tokens before expiration. When a token expires, API requests will return an authentication error, requiring your application to exchange credentials again for a new token.
|
|
739
|
+
|
|
740
|
+
OAuth access tokens are the recommended authentication method for production applications accessing Dremio's REST API and client drivers. You can obtain OAuth access tokens through [PAT Exchange](/dremio-cloud/api/oauth-token#exchange-a-pat) or [External JWT Exchange](/dremio-cloud/api/oauth-token#exchange-an-external-jwt).
|
|
741
|
+
|
|
742
|
+
#### PAT Exchange
|
|
743
|
+
|
|
744
|
+
Converting PATs to short-lived OAuth access tokens improves security by reducing exposure windows for compromised tokens. This is the [recommended method](/dremio-cloud/api/oauth-token/#exchange-a-pat) for obtaining OAuth access tokens for REST API access.
|
|
745
|
+
|
|
746
|
+
The process:
|
|
747
|
+
|
|
748
|
+
1. Create a PAT in your Dremio account settings.
|
|
749
|
+
2. Exchange the PAT for an OAuth access token via the `/oauth/token` REST API.
|
|
750
|
+
3. Use the OAuth access token for all subsequent API requests.
|
|
751
|
+
4. Refresh the token before it expires (within 1 hour).
|
|
752
|
+
|
|
753
|
+
#### External JWT Exchange
|
|
754
|
+
|
|
755
|
+
Applications can exchange JSON Web Tokens (JWTs) from [external token providers](/dremio-cloud/security/authentication/app-authentication/external-token) for Dremio OAuth access tokens, enabling authentication without exposing user credentials. This method is useful for custom applications that need to authenticate users through their existing identity provider (such as Microsoft Entra ID or Okta) and then [access Dremio](/dremio-cloud/api/oauth-token/#exchange-an-external-jwt) on their behalf.
|
|
756
|
+
|
|
757
|
+
The process:
|
|
758
|
+
|
|
759
|
+
1. User authenticates with the external identity provider.
|
|
760
|
+
2. Application receives a JWT from the identity provider.
|
|
761
|
+
3. Application exchanges the JWT for a Dremio OAuth access token via the `/oauth/token` REST API.
|
|
762
|
+
4. Application uses the Dremio OAuth access token to make authenticated requests.
|
|
763
|
+
5. Application refreshes the token before it expires.
|
|
764
|
+
|
|
765
|
+
This approach allows applications to maintain a seamless authentication experience while securing access to Dremio resources.
|
|
766
|
+
|
|
767
|
+
Was this page helpful?
|
|
768
|
+
|
|
769
|
+
* Username/Password
|
|
770
|
+
* Single Sign-On
|
|
771
|
+
* Personal Access Tokens (PAT)
|
|
772
|
+
* OAuth Access Tokens
|
|
773
|
+
|
|
774
|
+
<div style="page-break-after: always;"></div>
|
|
775
|
+
|
|
776
|
+
# Identity Providers | Dremio Documentation
|
|
777
|
+
|
|
778
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/idp/
|
|
779
|
+
|
|
780
|
+
On this page
|
|
781
|
+
|
|
782
|
+
Identity providers (IdPs) are services that store and manage digital identities. An IdP authenticates users via username-password combinations and other credentials, as typically used for cloud computing and managing user identities. The following IdPs are supported with Dremio:
|
|
783
|
+
|
|
784
|
+
* Enterprise identity providers, including [Microsoft Entra ID](/dremio-cloud/security/authentication/idp/microsoft-entra-id), [Okta](/dremio-cloud/security/authentication/idp/okta), and other [OpenID Connect (OIDC) providers](/dremio-cloud/security/authentication/idp/generic-oidc-provider).
|
|
785
|
+
* [Social identity providers](/dremio-cloud/security/authentication/idp/social-idp/), including GitHub, Microsoft, and Google.
|
|
786
|
+
|
|
787
|
+
## View an IdP
|
|
788
|
+
|
|
789
|
+
To view an IdP configured for Dremio:
|
|
790
|
+
|
|
791
|
+
1. In the Dremio console, click  in the side navigation bar and then select **Organization settings**.
|
|
792
|
+
2. Select **Authentication** from the organization settings sidebar.
|
|
793
|
+
|
|
794
|
+
## Remove an IdP
|
|
795
|
+
|
|
796
|
+
You can only remove enterprise IdPs. Social IdPs cannot be removed as they are preconfigured with Dremio.
|
|
797
|
+
|
|
798
|
+
To remove an enterprise IdP:
|
|
799
|
+
|
|
800
|
+
1. Click  in the side navigation bar and then select **Organization settings**.
|
|
801
|
+
2. Select **Authentication** from the organization settings sidebar.
|
|
802
|
+
3. Click  on the row of the IdP to remove. Removing an activated IdP removes it as a login option for all users within your organization. You must manually reconfigure the IdP if you want to use it again as a login option.
|
|
803
|
+
4. Confirm that you want to remove the IdP. The IdP is then deleted along with any associated settings.
|
|
804
|
+
|
|
805
|
+
## SCIM
|
|
806
|
+
|
|
807
|
+
System for Cross-domain Identity Management (SCIM) automates the synchronization of user accounts between your identity provider (IdP) and Dremio, eliminating the need for manual user management. When configured, IdPs send the credentials of assigned users securely via SCIM to your Dremio organization, automatically creating new user accounts if needed. These new users, also referred to as external users, can then log in to Dremio according to the policies set by your credential manager.
|
|
808
|
+
|
|
809
|
+
You cannot reset or change an external user's email address or password from Dremio because these tasks are governed by your organization's credential manager. If you delete an external user from Dremio, the IdP automatically re-adds the user's account the next time that user attempts to log in. To properly revoke access to Dremio, follow the steps for [Microsoft Entra ID](/dremio-cloud/security/authentication/idp/microsoft-entra-id#revoke-microsoft-entra-id-sso-login-for-a-user-or-group) or [Okta](/dremio-cloud/security/authentication/idp/okta#revoke-okta-sso-login-for-a-user-or-group).
|
|
810
|
+
|
|
811
|
+
### Configure Microsoft Entra ID with SCIM
|
|
812
|
+
|
|
813
|
+
You can use Microsoft Entra ID to securely provision external users in Dremio with SCIM. See [SCIM Provisioning with Microsoft Entra ID](/dremio-cloud/security/authentication/idp/microsoft-entra-id#configure-microsoft-entra-id-with-scim) for more information and instructions.
|
|
814
|
+
|
|
815
|
+
### Configure Okta with SCIM
|
|
816
|
+
|
|
817
|
+
Dremio supports the Okta SCIM provisioning feature, which allows you to automatically create Dremio user accounts if they do not already exist, update user attributes in Dremio, and deactivate user accounts, all from Okta.
|
|
818
|
+
|
|
819
|
+
Before you can configure Okta SCIM provisioning, you must configure Okta as an IdP in Dremio. Follow the instructions in [Okta as an Identity Provider](/dremio-cloud/security/authentication/idp/okta/) to integrate the Dremio application in your Okta organization and add Okta as an OpenID Connect (OIDC) IdP in Dremio.
|
|
820
|
+
|
|
821
|
+
After you configure Okta as an IdP, you can configure [Okta to use SCIM](/dremio-cloud/security/authentication/idp/okta#configure-okta-with-scim) for secure user provisioning.
|
|
822
|
+
|
|
823
|
+
## Limits and Considerations
|
|
824
|
+
|
|
825
|
+
* To provide a consistent experience, Dremio uses rate limits for SCIM provisioning requests. For more information, see [Limits](/dremio-cloud/help-support/limits#rate-limits).
|
|
826
|
+
* Dremio allows one update to a user or group at a time. While the update is in progress, Dremio locks the user or group and rejects concurrent requests to update the same user or group.
|
|
827
|
+
|
|
828
|
+
Was this page helpful?
|
|
829
|
+
|
|
830
|
+
* View an IdP
|
|
831
|
+
* Remove an IdP
|
|
832
|
+
* SCIM
|
|
833
|
+
+ Configure Microsoft Entra ID with SCIM
|
|
834
|
+
+ Configure Okta with SCIM
|
|
835
|
+
* Limits and Considerations
|
|
836
|
+
|
|
837
|
+
<div style="page-break-after: always;"></div>
|
|
838
|
+
|
|
839
|
+
# Okta | Dremio Documentation
|
|
840
|
+
|
|
841
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/idp/okta
|
|
842
|
+
|
|
843
|
+
On this page
|
|
844
|
+
|
|
845
|
+
Dremio supports Okta as an enterprise identity provider. Okta administrators can enable single sign-on (SSO) authentication using Okta as the trusted third party.
|
|
846
|
+
|
|
847
|
+
## Prerequisites
|
|
848
|
+
|
|
849
|
+
Configuring OIDC SSO in Okta requires:
|
|
850
|
+
|
|
851
|
+
* [Super Administrator](https://help.okta.com/en-us/Content/Topics/Security/administrators-super-admin.htm) access in Okta
|
|
852
|
+
* The CONFIGURE SECURITY [organization-level privilege](/dremio-cloud/security/privileges#organization-privileges) or membership in the [ADMIN role](/dremio-cloud/security/roles#admin).
|
|
853
|
+
|
|
854
|
+
## Supported Features
|
|
855
|
+
|
|
856
|
+
Dremio supports the following Okta SSO features:
|
|
857
|
+
|
|
858
|
+
* **Service provider-initiated (SP-initiated) SSO**: Dremio uses the [OpenID Connect (OIDC)](https://www.okta.com/openid-connect/) protocol for SP-initiated SSO. When users provide their email address to log in to Dremio, Dremio sends an authentication request to Okta. Okta then authenticates the user's identity, and the user is logged in to Dremio.
|
|
859
|
+
* **SCIM**: Dremio also allows you to take advantage of Okta's System for Cross-domain Identity Management (SCIM) provisioning feature and manage Dremio user access from Okta. After you configure Okta for OIDC SSO in this guide, see [SCIM with Okta](/dremio-cloud/security/authentication/idp/okta#configure-okta-with-scim) to configure SCIM provisioning.
|
|
860
|
+
|
|
861
|
+
## Configure OIDC SSO
|
|
862
|
+
|
|
863
|
+
To configure Okta OIDC SSO for Dremio users:
|
|
864
|
+
|
|
865
|
+
1. In Okta, navigate to **Applications** > **Applications** and click **Browse App Catalog**.
|
|
866
|
+
2. Type `Dremio` in the search field and select **Dremio** from the list of search results.
|
|
867
|
+
3. Click **Add Integration**.
|
|
868
|
+
4. (Optional) Type a custom label in the *Application label* field.
|
|
869
|
+
5. Select your Dremio [control plane region](/dremio-cloud/about/regions) from the *Region* dropdown menu: US or EU.
|
|
870
|
+
6. Click **Done**. Okta creates the Dremio application and displays the application's *Assignments* tab.
|
|
871
|
+
7. Click the **Sign On** tab.
|
|
872
|
+
8. Copy and save the client ID and client secret listed under *OpenID Connect*. The client ID and client secret are sensitive information and should be kept secure. You will use them to configure authentication in Dremio later in this procedure.
|
|
873
|
+
9. Click the **OpenID Provider Metadata** link to open the OpenID configuration for the application.
|
|
874
|
+
10. Copy and save the URL value for the `issuer` key at the top of the OpenID configuration. You will use it to configure authentication in Dremio later in this procedure.
|
|
875
|
+
11. In the Dremio console, click  in the side navigation bar and select **Organization settings**.
|
|
876
|
+
12. Select **Authentication** in the organization settings sidebar.
|
|
877
|
+
13. In the Enterprise section, click **Add Provider** to open the Add Provider dialog.
|
|
878
|
+
14. In Step 1, select **Okta** from the dropdown menu.
|
|
879
|
+
15. In Step 3, enter the issuer URL, client ID, and client secret information that you copied from Okta in the corresponding fields.
|
|
880
|
+
16. Click **Add**. After the page loads, you should see Okta as an authentication provider in the *Enterprise* section.
|
|
881
|
+
17. Click the **Enabled** toggle to activate the Okta authentication provider.
|
|
882
|
+
|
|
883
|
+
Okta is now configured as an enterprise authentication provider. **Log in with Okta** appears in the list of login options for your Dremio users.
|
|
884
|
+
|
|
885
|
+
### Assign People and Groups to the Dremio Application
|
|
886
|
+
|
|
887
|
+
Follow the instructions in the Okta documentation to [assign people](https://help.okta.com/en-us/Content/Topics/Provisioning/lcm/lcm-assign-app-user.htm) or [assign groups](https://help.okta.com/en-us/Content/Topics/Provisioning/lcm/lcm-assign-app-groups.htm) to the Dremio application to ensure that users can use Okta for SSO login. The users you assign, whether individually or through their membership in an assigned group, can use **Log in with Okta** immediately.
|
|
888
|
+
|
|
889
|
+
Use [privileges](/dremio-cloud/security/privileges/) and [roles](/dremio-cloud/security/roles/) to manage user access to objects in Dremio.
|
|
890
|
+
|
|
891
|
+
### Use Okta SSO to Log In to Dremio
|
|
892
|
+
|
|
893
|
+
Any Okta user who is assigned to the Dremio application can log in with Okta immediately. To use Okta SSO to log in to Dremio:
|
|
894
|
+
|
|
895
|
+
1. Open the Dremio login page.
|
|
896
|
+
2. Type your email address in the *Email* field and click **Continue**.
|
|
897
|
+
3. Click **Log in with Okta**.
|
|
898
|
+
4. When you are redirected to the Okta website for authentication, enter your Okta username and password and click **Sign In**.
|
|
899
|
+
|
|
900
|
+
Okta authenticates your identity and redirects you to Dremio, which then logs you in.
|
|
901
|
+
|
|
902
|
+
To configure Okta's SCIM provisioning feature and use Okta to manage access for Dremio users, see [SCIM with Okta](/dremio-cloud/security/authentication/idp/okta#configure-okta-with-scim).
|
|
903
|
+
|
|
904
|
+
### Revoke Okta SSO Login for a User or Group
|
|
905
|
+
|
|
906
|
+
To revoke users' access to Okta SSO login for Dremio:
|
|
907
|
+
|
|
908
|
+
1. In Okta, open your Dremio application and select the **Assignments** tab.
|
|
909
|
+
2. In the left menu, under *Filters*, select **People** to deactivate a user or **Groups** to deactivate a group of users.
|
|
910
|
+
3. Find the row for the user or group you want to deactivate and click the **X** on the right side of the row.
|
|
911
|
+
4. In the confirmation dialog that appears, click **OK**.
|
|
912
|
+
|
|
913
|
+
Starting immediately, the deactivated users cannot use Okta OIDC SSO to log in to Dremio. To completely delete Dremio users, you must also [manually remove their user accounts in Dremio](/dremio-cloud/admin/users#remove-a-user).
|
|
914
|
+
|
|
915
|
+
### Troubleshoot
|
|
916
|
+
|
|
917
|
+
This section describes some things to keep in mind about OIDC SSO in Okta.
|
|
918
|
+
|
|
919
|
+
* To add the Dremio application in Okta and configure OIDC SSO, you must be a [super administrator](https://help.okta.com/en-us/Content/Topics/Security/administrators-super-admin.htm) in the Okta organization.
|
|
920
|
+
* If you revoke a user's access to use Okta SSO login in Okta, the user can still log in to Dremio with their Dremio username and password. To completely delete the user so that they cannot log in to Dremio at all, you must [manually remove their user accounts in Dremio](/dremio-cloud/admin/users#remove-a-user).
|
|
921
|
+
|
|
922
|
+
## Configure Okta with SCIM
|
|
923
|
+
|
|
924
|
+
System for Cross-domain Identity Management (SCIM) automates the synchronization of user accounts between your identity provider (IdP) and Dremio, eliminating the need for manual user management. When configured, your IdP securely sends user credentials to Dremio via SCIM, automatically creating accounts for new users as needed. These users can then log in to Dremio according to your organization's authentication policies.
|
|
925
|
+
|
|
926
|
+
Before you can configure SCIM provisioning, you must configure Okta as an identity provider (IdP) in Dremio. See [Okta as an Identity Provider](/dremio-cloud/security/authentication/idp/okta/) to integrate the Dremio application in your Okta organization and add Okta as an OpenID Connect (OIDC) single sign-on (SSO) IdP in Dremio. When that is complete, follow this guide to configure Okta to use SCIM for secure user provisioning.
|
|
927
|
+
|
|
928
|
+
### Prerequisites
|
|
929
|
+
|
|
930
|
+
Configuring SCIM provisioning in Okta requires:
|
|
931
|
+
|
|
932
|
+
* [Super Administrator](https://help.okta.com/en-us/Content/Topics/Security/administrators-super-admin.htm) access in Okta
|
|
933
|
+
* The CONFIGURE SECURITY [organization-level privilege](/dremio-cloud/security/privileges#organization-privileges) or membership in the [ADMIN role](/dremio-cloud/security/roles#admin).
|
|
934
|
+
* A Dremio [personal access token (PAT)](/dremio-cloud/security/authentication/personal-access-token/#create-a-pat)
|
|
935
|
+
* You must configure [Okta as an identity provider](/dremio-cloud/security/authentication/idp/okta/) using the Dremio application **before** you proceed with SCIM provisioning.
|
|
936
|
+
|
|
937
|
+
### Supported Features
|
|
938
|
+
|
|
939
|
+
Dremio supports the following Okta SCIM provisioning features:
|
|
940
|
+
|
|
941
|
+
* **Create Users**: Automatically create a new user account in Dremio for Okta users who are assigned to the Dremio application, whether they are assigned individually or as members of a group that is assigned to the application.
|
|
942
|
+
* **Update User Attributes**: Automatically update user information in Dremio when a user's profile information is updated in Okta.
|
|
943
|
+
* **Deactivate Users**: Prevent users from logging in to Dremio when they are deactivated in Okta.
|
|
944
|
+
* **Group Push**: Push Okta groups and their members to Dremio to automatically create Dremio roles and members.
|
|
945
|
+
|
|
946
|
+
### Configure SCIM Provisioning
|
|
947
|
+
|
|
948
|
+
To configure and enable SCIM provisioning in Okta:
|
|
949
|
+
|
|
950
|
+
1. Confirm that you have configured [Okta as an identity provider](/dremio-cloud/security/authentication/idp/okta/) using the Dremio application.
|
|
951
|
+
2. In Okta, navigate to **Applications** > **Applications**.
|
|
952
|
+
3. Find the Dremio application in the list of applications and click to open it.
|
|
953
|
+
4. Click the **Provisioning** tab.
|
|
954
|
+
5. Click **Configure API Integration**.
|
|
955
|
+
6. Select **Enable API integration**.
|
|
956
|
+
7. Enter the Dremio PAT in the *API Token* field.
|
|
957
|
+
8. Click **Test API Credentials**. You should see a confirmation message that the connection was verified successfully.
|
|
958
|
+
9. Click **Save**. Okta displays the *Provisioning to App* page.
|
|
959
|
+
10. Click **Edit**.
|
|
960
|
+
11. Select **Enable** for the *Create Users*, *Update User Attributes*, and *Deactivate Users* options.
|
|
961
|
+
12. Click **Save**.
|
|
962
|
+
|
|
963
|
+
SCIM provisioning is now configured and enabled. You can create new users, update user attributes, and deactivate users in Dremio, all from Okta.
|
|
964
|
+
|
|
965
|
+
### Create Users
|
|
966
|
+
|
|
967
|
+
After you configure Okta's SCIM provisioning and enable the *Create Users* option, Dremio automatically creates a new Dremio user account for anyone you assign to Dremio who does not already have an account. New Dremio users can log in to Dremio with Okta SSO immediately, and administrators can [view their user accounts in Dremio](/dremio-cloud/admin/users#view-all-users).
|
|
968
|
+
|
|
969
|
+
* New users are automatically members of the PUBLIC role in Dremio.
|
|
970
|
+
* User email addresses are controlled by Okta rather than Dremio. If a user's email address changes, you must create a new user in Okta and assign them to the Dremio application. Then, the user can use the new email address to log in to Dremio as a new user.
|
|
971
|
+
|
|
972
|
+
### Update User Attributes
|
|
973
|
+
|
|
974
|
+
With SCIM provisioning configured, updates to user attributes in Okta are propagated to the user account in Dremio. Follow the instructions in the Okta documentation to [edit user attributes](https://help.okta.com/oie/en-us/Content/Topics/users-groups-profiles/usgp-edit-user-attributes.htm).
|
|
975
|
+
|
|
976
|
+
The *First name* and *Last name* attributes are mapped to user accounts in Dremio. After you configure Okta's SCIM provisioning and enable the *Update User Attributes* option, you can change these user attributes in Okta to update the corresponding user information in Dremio.
|
|
977
|
+
|
|
978
|
+
### Deactivate Users
|
|
979
|
+
|
|
980
|
+
When you [revoke a user or group](/dremio-cloud/security/authentication/idp/okta/#revoke-okta-sso-login-for-a-user-or-group) in Okta, the affected users cannot use Okta OIDC SSO to log in to Dremio. After you configure Okta's SCIM provisioning and enable the *Deactivate Users* option, deactivated users become inactive in Dremio and cannot log in to Dremio at all, whether with Okta OIDC SSO or username and password.
|
|
981
|
+
|
|
982
|
+
To completely delete Dremio users, you must also [manually remove their user accounts in Dremio](/dremio-cloud/admin/users#remove-a-user).
|
|
983
|
+
|
|
984
|
+
### Group Push
|
|
985
|
+
|
|
986
|
+
If you enable the group push feature, Okta pushes your designated groups to Dremio as roles and populates the roles with the Okta group's members. Follow the instructions in the Okta documentation to [enable group push](https://help.okta.com/en-us/Content/Topics/users-groups-profiles/usgp-enable-group-push.htm).
|
|
987
|
+
|
|
988
|
+
Before you enable group push, make sure to follow Okta's instructions to [assign the group](https://help.okta.com/en-us/Content/Topics/Provisioning/lcm/lcm-assign-app-groups.htm) to the Dremio application.
|
|
989
|
+
|
|
990
|
+
Use Okta to manage any roles you create with group push. Any changes you make to a role or its membership in Dremio are immediately overwritten by the next push from Okta. Making changes in Dremio can result in synchronization errors.
|
|
991
|
+
|
|
992
|
+
To remove a Dremio role created by group push, unlink the pushed group in the Dremio application. Unlinking the pushed group deletes the corresponding role in Dremio but does not delete the group members' Dremio user accounts.
|
|
993
|
+
|
|
994
|
+
### Troubleshoot
|
|
995
|
+
|
|
996
|
+
This section describes some things to keep in mind about SCIM provisioning in Okta with the Dremio application.
|
|
997
|
+
|
|
998
|
+
* Group push is not supported for groups that do not have any members. Pushing a group that does not have any members will result in an error.
|
|
999
|
+
* In Okta, it is possible to change a user's username. Dremio does not allow username updates. If you change a user's Okta username after the user is assigned to the Dremio application, Okta sends a request to update the username in Dremio. Dremio denies the request because Dremio username changes are not allowed.
|
|
1000
|
+
* Changing an existing user's primary email address in Okta has no effect on the user's account in Dremio. To permit a user to authenticate to Dremio with the new email address, add the user to Okta as a new person using the new email address. Then, assign the new Okta user to the Dremio application, either individually or by adding them to an assigned group. Okta creates a new Dremio user who can use Okta SSO to log in to Dremio with the new email address.
|
|
1001
|
+
* If you remove a user from an assigned group and the user is still listed as ACTIVE in Dremio, check the *Assignments* tab in the Dremio application to make sure the user isn't separately assigned as a person. Okta only sends deactivate requests for users who are both unassigned as a person and removed from assigned groups.
|
|
1002
|
+
|
|
1003
|
+
Was this page helpful?
|
|
1004
|
+
|
|
1005
|
+
* Prerequisites
|
|
1006
|
+
* Supported Features
|
|
1007
|
+
* Configure OIDC SSO
|
|
1008
|
+
+ Assign People and Groups to the Dremio Application
|
|
1009
|
+
+ Use Okta SSO to Log In to Dremio
|
|
1010
|
+
+ Revoke Okta SSO Login for a User or Group
|
|
1011
|
+
+ Troubleshoot
|
|
1012
|
+
* Configure Okta with SCIM
|
|
1013
|
+
+ Prerequisites
|
|
1014
|
+
+ Supported Features
|
|
1015
|
+
+ Configure SCIM Provisioning
|
|
1016
|
+
+ Create Users
|
|
1017
|
+
+ Update User Attributes
|
|
1018
|
+
+ Deactivate Users
|
|
1019
|
+
+ Group Push
|
|
1020
|
+
+ Troubleshoot
|
|
1021
|
+
|
|
1022
|
+
<div style="page-break-after: always;"></div>
|
|
1023
|
+
|
|
1024
|
+
# Social Identity Providers | Dremio Documentation
|
|
1025
|
+
|
|
1026
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/idp/social-idp
|
|
1027
|
+
|
|
1028
|
+
On this page
|
|
1029
|
+
|
|
1030
|
+
A social identity provider (IdP) enables users to log in to Dremio using their existing accounts from these services. You can use the following providers:
|
|
1031
|
+
|
|
1032
|
+
* GitHub
|
|
1033
|
+
* Google
|
|
1034
|
+
* Microsoft
|
|
1035
|
+
|
|
1036
|
+
By default, these options are preconfigured and active, which means they are immediately available as login options for users unless deactivated by an admin.
|
|
1037
|
+
|
|
1038
|
+
## Log In with a Social IdP
|
|
1039
|
+
|
|
1040
|
+
Follow these steps to log in to your organization with an enabled social IdP:
|
|
1041
|
+
|
|
1042
|
+
1. Navigate to Dremio's login screen, enter your email address, and proceed to the next screen.
|
|
1043
|
+
2. Click the icon of the desired social IdP (GitHub, Google, or Microsoft) that you want to use. You will be redirected to the corresponding provider's login page.
|
|
1044
|
+
|
|
1045
|
+

|
|
1046
|
+
3. Enter your credentials. If successful, you will be redirected to the Dremio homepage.
|
|
1047
|
+
|
|
1048
|
+
## Activate and Deactivate Social IdPs
|
|
1049
|
+
|
|
1050
|
+
You must be an admin to activate or deactivate a social IdP. Follow these steps to deactivate or activate social providers:
|
|
1051
|
+
|
|
1052
|
+
1. In the Dremio console, click  in the side navigation bar and then select **Organization settings**.
|
|
1053
|
+
2. Select **Authentication** from the organization settings sidebar.
|
|
1054
|
+
3. To deactivate a provider, toggle **Enabled** to off. Deactivating a social IdP removes this IdP as a login option for all users in your organization.
|
|
1055
|
+
4. To activate a deactivated, toggle **Enabled** to on.
|
|
1056
|
+
|
|
1057
|
+
Was this page helpful?
|
|
1058
|
+
|
|
1059
|
+
* Log In with a Social IdP
|
|
1060
|
+
* Activate and Deactivate Social IdPs
|
|
1061
|
+
|
|
1062
|
+
<div style="page-break-after: always;"></div>
|
|
1063
|
+
|
|
1064
|
+
# Application Authentication | Dremio Documentation
|
|
1065
|
+
|
|
1066
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/app-authentication/
|
|
1067
|
+
|
|
1068
|
+
On this page
|
|
1069
|
+
|
|
1070
|
+
Application authentication enables programmatic access to Dremio for automated workflows, integrations, and service-to-service communication. Unlike user authentication, which is designed for interactive sessions, application authentication provides secure, token-based access for applications, scripts, and third-party tools.
|
|
1071
|
+
|
|
1072
|
+
Application authentication is essential for:
|
|
1073
|
+
|
|
1074
|
+
* **API Integrations**: Connecting BI tools, ETL pipelines, and custom applications.
|
|
1075
|
+
* **Automated Workflows**: Scheduled data processing and reporting tasks.
|
|
1076
|
+
* **Service-to-Service Communication**: Microservices accessing Dremio resources.
|
|
1077
|
+
* **CI/CD Pipelines**: Automated testing and deployment processes.
|
|
1078
|
+
|
|
1079
|
+
Dremio supports two primary application authentication methods that differ fundamentally in their authentication flow and token issuance:
|
|
1080
|
+
|
|
1081
|
+
| Method | Authentication Flow | Token Issuer | Best For |
|
|
1082
|
+
| --- | --- | --- | --- |
|
|
1083
|
+
| **OAuth Applications** | Redirect to Dremio login, user authenticates, redirect back with token | OAuth access token from Dremio | Third-party applications, custom applications requiring standard OAuth |
|
|
1084
|
+
| **External Token Providers** | User authenticates with enterprise IdP, JWT used directly with Dremio | JWT from your identity provider, OAuth access token from Dremio | Enterprise SSO environments, existing JWT infrastructure |
|
|
1085
|
+
|
|
1086
|
+
### OAuth Applications
|
|
1087
|
+
|
|
1088
|
+
OAuth 2.0 provides secure, standardized authorization for third-party applications. This method is ideal when you need user consent or want to integrate with applications that already support OAuth flows.
|
|
1089
|
+
|
|
1090
|
+
**Key Features:**
|
|
1091
|
+
|
|
1092
|
+
* Supports industry-standard OAuth 2.0 flows
|
|
1093
|
+
* Manages granular permissions through Dremio [role-based access control](/dremio-cloud/security/privileges) and [access policies](/dremio-cloud/manage-govern/row-column-policies)
|
|
1094
|
+
* Logs user activity
|
|
1095
|
+
|
|
1096
|
+
### External Token Providers
|
|
1097
|
+
|
|
1098
|
+
External token providers allow you to use JSON Web Tokens (JWTs) issued by your existing OAuth server or identity provider. This approach is ideal for enterprises with established identity infrastructure.
|
|
1099
|
+
|
|
1100
|
+
**Key Features:**
|
|
1101
|
+
|
|
1102
|
+
* Leverages existing identity systems
|
|
1103
|
+
* Supports custom claims and token validation
|
|
1104
|
+
* Integrates with enterprise SSO
|
|
1105
|
+
* Manages centralized tokens
|
|
1106
|
+
|
|
1107
|
+
Was this page helpful?
|
|
1108
|
+
|
|
1109
|
+
* OAuth Applications
|
|
1110
|
+
* External Token Providers
|
|
1111
|
+
|
|
1112
|
+
<div style="page-break-after: always;"></div>
|
|
1113
|
+
|
|
1114
|
+
# Personal Access Tokens | Dremio Documentation
|
|
1115
|
+
|
|
1116
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/personal-access-token
|
|
1117
|
+
|
|
1118
|
+
On this page
|
|
1119
|
+
|
|
1120
|
+
Personal access tokens (PATs) are randomly generated tokens associated with a user that are used in place of a password to authenticate with Dremio. PATs can last up to 180 days before they expire and provide a secure way to enable programmatic access, automation, and CI/CD workflows.
|
|
1121
|
+
|
|
1122
|
+
When using a PAT, you have the same [privileges](/dremio-cloud/security/privileges) and [roles](/dremio-cloud/security/roles) as the user who created the token. This means a PAT can only access what the user can access.
|
|
1123
|
+
|
|
1124
|
+
## When to Use PATs
|
|
1125
|
+
|
|
1126
|
+
Dremio recommends using [OAuth access tokens](/dremio-cloud/api/oauth-token) for most use cases, as they provide enhanced security through shorter lifespans and centralized management. PATs should primarily be used in scenarios where OAuth tokens are not supported or practical.
|
|
1127
|
+
|
|
1128
|
+
PATs may be appropriate for:
|
|
1129
|
+
|
|
1130
|
+
* **Legacy systems:** Applications that cannot support OAuth authentication flows.
|
|
1131
|
+
* **Simple scripts:** Quick automation tasks where OAuth setup overhead is not justified.
|
|
1132
|
+
* **Development and testing:** Temporary access for development workflows.
|
|
1133
|
+
* **ODBC/JDBC connections:** When OAuth is not supported by the client application.
|
|
1134
|
+
|
|
1135
|
+
## Create a PAT
|
|
1136
|
+
|
|
1137
|
+
To create a PAT:
|
|
1138
|
+
|
|
1139
|
+
1. Click the User icon (user initials) on the side navigation bar and select **Account Settings**.
|
|
1140
|
+
2. Select **Personal Access Tokens** in the account settings sidebar.
|
|
1141
|
+
3. On the Personal Access Tokens page, click **Generate Token** in the top-right corner of the screen.
|
|
1142
|
+
4. In the Generate Token dialog, for **Label**, add a descriptive identifier explaining what the PAT is for (e.g., "CI Pipeline - Data Tests" or "Tableau Integration").
|
|
1143
|
+
5. For **Lifetime**, enter the number of days the PAT will be valid. The default PAT lifetime is 30 days, and the maximum lifetime is 180 days.
|
|
1144
|
+
6. Click **Generate**.
|
|
1145
|
+
7. **Important:** Copy the generated PAT immediately and save it to a secure location. The token is shown only once and cannot be retrieved later.
|
|
1146
|
+
|
|
1147
|
+
## Manage PATs
|
|
1148
|
+
|
|
1149
|
+
### View PAT Metadata
|
|
1150
|
+
|
|
1151
|
+
A PAT is shown only once during creation. However, you can view the token ID, label, creation date, and expiration status for all PATs in your account.
|
|
1152
|
+
|
|
1153
|
+
To view the metadata for all the PATs you have created:
|
|
1154
|
+
|
|
1155
|
+
1. Click the User icon (user initials) on the side navigation bar and select **Account Settings**.
|
|
1156
|
+
2. Select **Personal Access Tokens** from the settings sidebar.
|
|
1157
|
+
|
|
1158
|
+
The Personal Access Tokens page displays all the metadata for PATs, both active and expired, for your account.
|
|
1159
|
+
|
|
1160
|
+
### Delete a PAT
|
|
1161
|
+
|
|
1162
|
+
Each user can delete PATs in their own account.
|
|
1163
|
+
|
|
1164
|
+
To delete an existing PAT:
|
|
1165
|
+
|
|
1166
|
+
1. Click the User icon (user initials) on the side navigation bar and select **Account Settings**.
|
|
1167
|
+
2. Select **Personal Access Tokens** in the account settings sidebar.
|
|
1168
|
+
3. On the Personal Access Tokens page, click  for the PAT that you want to delete.
|
|
1169
|
+
4. In the Delete Token dialog, click **Delete** to confirm. The PAT is deleted and cannot be retrieved.
|
|
1170
|
+
|
|
1171
|
+
### Delete All PATs
|
|
1172
|
+
|
|
1173
|
+
Any user can delete all PATs from their own account. ADMIN users cannot delete PATs on behalf of other users.
|
|
1174
|
+
|
|
1175
|
+
To delete all PATs for your account:
|
|
1176
|
+
|
|
1177
|
+
1. Click the User icon (user initials) on the side navigation bar and select **Account Settings**.
|
|
1178
|
+
2. Select **Personal Access Tokens** in the account settings sidebar.
|
|
1179
|
+
3. On the Personal Access Tokens page, click **Delete All** in the top-right corner of the screen.
|
|
1180
|
+
4. In the Delete All Tokens dialog, click **Delete** to confirm that you want to delete all PATs in the list. After a PAT has been deleted, it cannot be retrieved.
|
|
1181
|
+
|
|
1182
|
+
## Use PATs
|
|
1183
|
+
|
|
1184
|
+
PATs can be used to authenticate with various Dremio interfaces:
|
|
1185
|
+
|
|
1186
|
+
* **[REST API](/dremio-cloud/api):** Use PATs for programmatic access and automation.
|
|
1187
|
+
* **[JDBC](/dremio-cloud/explore-analyze/client-apps/drivers/arrow-flight-sql-jdbc):** Connect applications using JDBC drivers.
|
|
1188
|
+
* **[ODBC](/dremio-cloud/explore-analyze/client-apps/drivers/arrow-flight-sql-odbc):** Connect applications using ODBC drivers.
|
|
1189
|
+
* **Dremio web application:** Use your PAT as a password to log in.
|
|
1190
|
+
|
|
1191
|
+
For specific connection details and examples, see the documentation for each connection method.
|
|
1192
|
+
|
|
1193
|
+
## Limits and Considerations
|
|
1194
|
+
|
|
1195
|
+
* **Self-service only:** Users can only create and manage PATs for themselves—even ADMIN users cannot create or manage PATs on behalf of other users.
|
|
1196
|
+
* **User permissions:** PATs are tied to user accounts—if a user is deactivated, their PATs stop working.
|
|
1197
|
+
* **No privilege restriction:** PATs cannot be scoped to fewer privileges than the user has.
|
|
1198
|
+
* **Token management:** Use descriptive labels and set appropriate expiration times for each token.
|
|
1199
|
+
|
|
1200
|
+
Was this page helpful?
|
|
1201
|
+
|
|
1202
|
+
* When to Use PATs
|
|
1203
|
+
* Create a PAT
|
|
1204
|
+
* Manage PATs
|
|
1205
|
+
+ View PAT Metadata
|
|
1206
|
+
+ Delete a PAT
|
|
1207
|
+
+ Delete All PATs
|
|
1208
|
+
* Use PATs
|
|
1209
|
+
* Limits and Considerations
|
|
1210
|
+
|
|
1211
|
+
<div style="page-break-after: always;"></div>
|
|
1212
|
+
|
|
1213
|
+
# Microsoft Entra ID | Dremio Documentation
|
|
1214
|
+
|
|
1215
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/idp/microsoft-entra-id
|
|
1216
|
+
|
|
1217
|
+
On this page
|
|
1218
|
+
|
|
1219
|
+
Dremio supports Microsoft Entra ID as an enterprise identity provider. Microsoft Entra ID administrators can follow these instructions to enable single sign-on (SSO) authentication and allow users to log in to Dremio using Microsoft Entra ID as the trusted third party.
|
|
1220
|
+
|
|
1221
|
+
## Prerequisites
|
|
1222
|
+
|
|
1223
|
+
Configuring SSO in Microsoft Entra ID requires:
|
|
1224
|
+
|
|
1225
|
+
* Privileges in Microsoft Entra ID that permit you to add, configure, and register applications.
|
|
1226
|
+
* The CONFIGURE SECURITY [organization-level privilege](/dremio-cloud/security/privileges/#organization-privileges) or membership in the [ADMIN role](/dremio-cloud/security/roles/).
|
|
1227
|
+
|
|
1228
|
+
## Configure an Application for SSO
|
|
1229
|
+
|
|
1230
|
+
To configure SSO in Microsoft Entra ID for Dremio users:
|
|
1231
|
+
|
|
1232
|
+
1. In the [Azure portal](https://portal.azure.com/#home) under **Azure services**, click the **Microsoft Entra ID** tile.
|
|
1233
|
+
2. In the left navigation menu under **Manage**, click **App registrations**.
|
|
1234
|
+
3. Click **New registration**.
|
|
1235
|
+
4. Type a name for the application in the **Name** field.
|
|
1236
|
+
5. Select your desired account type in the **Supported account types** list. The default selection is `Accounts in this organizational directory only (<your org> only - Single tenant)`.
|
|
1237
|
+
6. Under **Redirect URI**, in the **Select a platform** dropdown list, select **Web** and enter the following URI in the provided field:
|
|
1238
|
+
|
|
1239
|
+
* US region: <https://accounts.dremio.cloud/login/callback>
|
|
1240
|
+
* EMEA region: <https://accounts.eu.dremio.cloud/login/callback>
|
|
1241
|
+
7. Click **Register**.
|
|
1242
|
+
8. Copy and save the value for the `Application (client) ID`. You will use it to configure authentication in Dremio later in this procedure.
|
|
1243
|
+
9. In the left navigation menu under **Manage**, click **Certificates & secrets**.
|
|
1244
|
+
10. Click **New client secret**.
|
|
1245
|
+
11. In the **Add a client secret** panel, type a description for the secret in the **Description** field and select your desired lifespan for the secret in the **Expires** dropdown list.
|
|
1246
|
+
12. Click **Add**.
|
|
1247
|
+
13. Copy and save the value for the secret. The secret value is sensitive information and should be kept private. You will use it to configure authentication in Dremio later in this procedure.
|
|
1248
|
+
14. In the left navigation menu under **Manage**, click **API permissions**.
|
|
1249
|
+
15. Confirm that the following permission is listed under \**API / Permissions name*:
|
|
1250
|
+
|
|
1251
|
+
* **User.Read**: Permits users to log in to the application and permits the application to read the profiles and basic company information for logged-in users.
|
|
1252
|
+
16. Click **Add a permission**.
|
|
1253
|
+
17. In the **Request API permissions** panel, click the **Microsoft Graph** tile.
|
|
1254
|
+
18. Click the **Delegated permissions** tile.
|
|
1255
|
+
19. Under **OpenId permissions**, click the checkboxes next to the following options:
|
|
1256
|
+
|
|
1257
|
+
* **email**: Permits the application to read users' primary email addresses.
|
|
1258
|
+
* **openid**: Permits users to sign in to the application with their work or school accounts and permits the application to view basic user profile information.
|
|
1259
|
+
* **profile**: Permits the application to view basic user profile information (name, avatar, and email address).
|
|
1260
|
+
20. Click **Add permissions**. The list of configured permissions should now include the following permissions:
|
|
1261
|
+
|
|
1262
|
+
* email
|
|
1263
|
+
* openid
|
|
1264
|
+
* profile
|
|
1265
|
+
21. In the left navigation menu under **Manage**, click **Branding & properties**.
|
|
1266
|
+
22. Copy and save the **Publisher domain** (`<domain_name>.onmicrosoft.com`). You will use it to configure authentication in Dremio later in this procedure.
|
|
1267
|
+
23. In the Dremio console, click  on the left navigation bar and then select **Organization settings**.
|
|
1268
|
+
24. Click the **Authentication** tab in the left sidebar.
|
|
1269
|
+
25. In the **Enterprise** section, click **Add Provider** to open the Add Provider dialog.
|
|
1270
|
+
26. In Step 1, select **Microsoft Entra ID** in the dropdown list.
|
|
1271
|
+
27. In Step 3, enter the domain, client ID, and secret information that you copied from Microsoft Entra ID in the corresponding fields.
|
|
1272
|
+
28. Click **Add**. After the page loads, you should see Microsoft Entra ID listed as an authentication provider in the **Enterprise** section.
|
|
1273
|
+
29. Click the **Enabled** toggle to activate the Microsoft Entra ID authentication provider.
|
|
1274
|
+
|
|
1275
|
+
Microsoft Entra ID is now configured as an enterprise authentication provider. **Log in with Microsoft Entra ID** appears in the list of login options for your Dremio users. Any Microsoft Entra ID user in your organization can use **Log in with Microsoft Entra ID** for SSO login.
|
|
1276
|
+
|
|
1277
|
+
### Assign People and Groups to the Microsoft Entra ID Application
|
|
1278
|
+
|
|
1279
|
+
The Microsoft Entra ID application is configured to allow SSO login for any Microsoft Entra ID user in your organization. To adjust the application settings so that only users who are assigned to the app can use Microsoft Entra ID SSO to log in to Dremio:
|
|
1280
|
+
|
|
1281
|
+
1. In the [Azure portal](https://portal.azure.com/#home) under **Azure services**, click the **Microsoft Entra ID** tile.
|
|
1282
|
+
2. In the left navigation menu under **Manage**, click **Enterprise applications**.
|
|
1283
|
+
3. Click the name of the SSO application.
|
|
1284
|
+
4. In the left navigation menu under **Manage**, click **Properties**.
|
|
1285
|
+
5. Find the **Assignment required?** toggle and click **Yes**.
|
|
1286
|
+
6. Click **Save**.
|
|
1287
|
+
|
|
1288
|
+
With user assignment required, users who are not assigned to the application receive an error message from Microsoft when they try to use Microsoft Entra ID SSO for Dremio.
|
|
1289
|
+
|
|
1290
|
+
Follow the instructions in the Microsoft Entra ID documentation to [assign users and groups](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-user-or-group-access-portal?pivots=portal) to your application.
|
|
1291
|
+
|
|
1292
|
+
Before the user can click **Log in with Microsoft Entra ID** in the list of login options for Dremio, one of the following conditions must be met:
|
|
1293
|
+
|
|
1294
|
+
* The user has been invited by an admin and has activated their account through an email link.
|
|
1295
|
+
* An admin has set up SCIM provisioning and synced the user via SCIM.
|
|
1296
|
+
|
|
1297
|
+
Use [privileges](/dremio-cloud/security/privileges/) and [roles](/dremio-cloud/security/roles/) to manage user access to objects in Dremio.
|
|
1298
|
+
|
|
1299
|
+
### Use Microsoft Entra ID SSO to Log in to Dremio
|
|
1300
|
+
|
|
1301
|
+
To use Microsoft Entra ID SSO to log in to Dremio:
|
|
1302
|
+
|
|
1303
|
+
1. Open the Dremio console login page:
|
|
1304
|
+
|
|
1305
|
+
* US region: <https://app.dremio.cloud/>
|
|
1306
|
+
* EMEA region: <https://app.eu.dremio.cloud/>
|
|
1307
|
+
2. Type your email address in the **Email** field and click **Continue**.
|
|
1308
|
+
3. Click **Log in with Microsoft Entra ID**.
|
|
1309
|
+
4. You will be redirected to the Microsoft website for authentication.
|
|
1310
|
+
5. Microsoft Entra ID authenticates your identity and redirects you to Dremio, which then logs you in.
|
|
1311
|
+
|
|
1312
|
+
You can use the Microsoft Entra ID SCIM provisioning feature to sync groups and memberships from Microsoft Entra ID to Dremio and manage access for Dremio users and groups. To configure, see Configure Microsoft Entra ID with SCIM.
|
|
1313
|
+
|
|
1314
|
+
### Revoke Microsoft Entra ID SSO Login for a User or Group
|
|
1315
|
+
|
|
1316
|
+
To revoke users' access to Microsoft Entra ID SSO login for Dremio:
|
|
1317
|
+
|
|
1318
|
+
1. In Microsoft Entra ID, navigate to your application.
|
|
1319
|
+
2. Find the row for the user or group you want to deactivate and click to select the checkbox for the user or group.
|
|
1320
|
+
3. Click **Remove**.
|
|
1321
|
+
4. In the confirmation dialog, click **Yes**.
|
|
1322
|
+
|
|
1323
|
+
Starting immediately, the users cannot use Microsoft Entra ID SSO to log in to Dremio.
|
|
1324
|
+
|
|
1325
|
+
If you revoke a user's access to use Microsoft Entra ID SSO login in Microsoft Entra ID and the user has created a Dremio password for login, they can still log in to Dremio with their Dremio username and password. To completely delete Dremio users so that they cannot log in to Dremio at all, you must also delete or deactivate the user through SCIM provisioning or [manually remove their user accounts in Dremio](/dremio-cloud/admin/users#remove-a-user).
|
|
1326
|
+
|
|
1327
|
+
## Configure Microsoft Entra ID with SCIM
|
|
1328
|
+
|
|
1329
|
+
System for Cross-domain Identity Management (SCIM) automates the synchronization of user accounts between your identity provider (IdP) and Dremio, eliminating the need for manual user management. When configured, your IdP securely sends user credentials to Dremio via SCIM, automatically creating accounts for new users as needed. These users can then log in to Dremio according to your organization's authentication policies.
|
|
1330
|
+
|
|
1331
|
+
### Prerequisites
|
|
1332
|
+
|
|
1333
|
+
Configuring SCIM provisioning in Microsoft Entra ID requires:
|
|
1334
|
+
|
|
1335
|
+
* Privileges in Microsoft Entra ID that permit you to register and configure applications.
|
|
1336
|
+
* A Dremio [personal access token (PAT)](/dremio-cloud/security/authentication/personal-access-token#create-a-pat) for a Dremio user who is a member of the ADMIN role.
|
|
1337
|
+
|
|
1338
|
+
### Configure an Application for SCIM Provisioning
|
|
1339
|
+
|
|
1340
|
+
To create an application for SCIM provisioning in Microsoft Entra ID:
|
|
1341
|
+
|
|
1342
|
+
1. In the [Azure portal](https://portal.azure.com/#home) under **Azure services**, click the **Microsoft Entra ID** tile.
|
|
1343
|
+
2. In the left navigation menu under **Manage**, click **Enterprise applications**.
|
|
1344
|
+
3. Click **New application**.
|
|
1345
|
+
4. Click **Create your own application**.
|
|
1346
|
+
5. In the **Create your own application** panel, type a name for the application in the provided field.
|
|
1347
|
+
6. Under **What are you looking to do with your application?** select the **Integrate any other application you don't find in the gallery (Non-gallery)** option.
|
|
1348
|
+
7. Click **Create**.
|
|
1349
|
+
8. In the left navigation menu under **Manage**, click **Provisioning**.
|
|
1350
|
+
9. Click **Get started**.
|
|
1351
|
+
10. In the **Provisioning Mode** dropdown list, select **Automatic**.
|
|
1352
|
+
11. Under **Admin Credentials**, enter the correct **Tenant URL** for your control plane:
|
|
1353
|
+
|
|
1354
|
+
* US control plane: `https://scim.dremio.cloud/scim/v2/?aadOptscim062020`
|
|
1355
|
+
* EU control plane: `https://scim.eu.dremio.cloud/scim/v2/?aadOptscim062020`
|
|
1356
|
+
|
|
1357
|
+
note
|
|
1358
|
+
|
|
1359
|
+
The Tenant URL must include the `aadOptscim062020` query parameter due to a [Microsoft Entra ID issue with SCIM 2.0 compliance](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/application-provisioning-config-problem-scim-compatibility).
|
|
1360
|
+
|
|
1361
|
+
If you previously configured a SCIM app with Microsoft Entra ID, SCIM syncing may fail for requests to deactivate users, add and update user attributes, and remove group members. If you observe these failures, follow the Microsoft documentation to [upgrade from the older customappsso job to the SCIM job](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/application-provisioning-config-problem-scim-compatibility#upgrading-from-the-older-customappsso-job-to-the-scim-job).
|
|
1362
|
+
12. Enter your Dremio PAT in the **Secret Token** field.
|
|
1363
|
+
13. (Optional) Click **Test Connection** to confirm that Microsoft Entra ID can connect to the tenant URL.
|
|
1364
|
+
14. Click **Save**.
|
|
1365
|
+
15. (Optional) Click the down arrow next to **Settings** and adjust the settings as desired. Click **Save** when you are finished.
|
|
1366
|
+
16. Return to the **Provisioning Overview** page for the application.
|
|
1367
|
+
17. In the left navigation menu under **Manage**, click **Provisioning**.
|
|
1368
|
+
18. Under **Provisioning Status**, toggle the setting to **On**.
|
|
1369
|
+
19. Click **Save**.
|
|
1370
|
+
|
|
1371
|
+
SCIM provisioning is now configured and enabled. You can create users, update user attributes, and deactivate users in Dremio, all from Microsoft Entra ID.
|
|
1372
|
+
|
|
1373
|
+
Read Microsoft's documentation about [how long it takes to provision users](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/application-provisioning-when-will-provisioning-finish-specific-user#how-long-will-it-take-to-provision-users) for details about Microsoft Entra ID's initial and incremental provisioning cycles.
|
|
1374
|
+
|
|
1375
|
+
If desired, you can use Microsoft Entra ID's scoping filters to apply attribute-based rules for user provisioning. Read [Scoping users or groups to be provisioned with scoping filters](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/define-conditional-rules-for-provisioning-user-accounts?pivots=app-provisioning) in the Microsoft documentation for more information.
|
|
1376
|
+
|
|
1377
|
+
### Create Users
|
|
1378
|
+
|
|
1379
|
+
After you configure a Microsoft Entra ID application for SCIM provisioning, you must assign users and groups to the application. Dremio automatically creates a new Dremio user account for anyone you assign to the SCIM application who does not already have an account. Follow the instructions in the Microsoft documentation to [assign users and groups to an application](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-user-or-group-access-portal?pivots=portal).
|
|
1380
|
+
|
|
1381
|
+
### Create Roles
|
|
1382
|
+
|
|
1383
|
+
If you add a group to your SCIM application in Microsoft Entra ID, your designated group becomes a role in Dremio populated with the group's members. Follow the instructions in the Microsoft documentation to [assign users and groups to an application](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/assign-user-or-group-access-portal?pivots=portal).
|
|
1384
|
+
|
|
1385
|
+
Use Microsoft Entra ID to manage any roles you create with groups. Any changes you make to a role or its membership in Dremio are immediately overwritten by the next provisioning cycle from Microsoft Entra ID. Making changes in Dremio can result in synchronization errors.
|
|
1386
|
+
|
|
1387
|
+
### Update User Attributes
|
|
1388
|
+
|
|
1389
|
+
With SCIM provisioning configured, updates to user attributes in Microsoft Entra ID are propagated to the user account in Dremio. Follow the instructions in the Microsoft documentation to [edit user profile information](https://learn.microsoft.com/en-us/entra/fundamentals/how-to-manage-user-profile-info).
|
|
1390
|
+
|
|
1391
|
+
* **First name** and **Last name** attributes in Microsoft Entra ID are mapped to user accounts in Dremio. After you configure an application for SCIM provisioning in Microsoft Entra ID and assign users to it, you can change these user attributes in Microsoft Entra ID to update the corresponding user information in Dremio.
|
|
1392
|
+
* Microsoft Entra ID controls user **email addresses**. If a user's email address changes, you must create a new user in Microsoft Entra ID and assign them to the application for SCIM provisioning. Then, assign the new Microsoft Entra ID user to the SCIM application (either individually as a user or by adding them to an assigned group). Microsoft Entra ID creates a new Dremio user who can log in to Dremio with the new email address as a new user.
|
|
1393
|
+
|
|
1394
|
+
### Deactivate Users
|
|
1395
|
+
|
|
1396
|
+
When you delete a user or group from the application for SCIM provisioning in Microsoft Entra ID, the affected users become inactive in Dremio and cannot log in to Dremio at all, whether with Microsoft Entra ID SSO or username and password.
|
|
1397
|
+
|
|
1398
|
+
To delete a user or group from your SCIM application in Microsoft Entra ID:
|
|
1399
|
+
|
|
1400
|
+
1. In the [Azure portal](https://portal.azure.com/#home) under **Azure services**, click the **Microsoft Entra ID** tile.
|
|
1401
|
+
2. In the left navigation menu under **Manage**, click **Enterprise applications**.
|
|
1402
|
+
3. Find your SCIM application in the list and click the application's name.
|
|
1403
|
+
4. In the left navigation menu under **Manage**, click **Users and groups**.
|
|
1404
|
+
5. Click to select the checkbox for the user or group you want to remove.
|
|
1405
|
+
6. Click **Remove**.
|
|
1406
|
+
7. In the confirmation dialog, click **Yes**.
|
|
1407
|
+
|
|
1408
|
+
The users you deleted, whether individually or by their group membership, become inactive in Dremio. If you delete a group, Microsoft Entra ID automatically removes the group's corresponding role in Dremio.
|
|
1409
|
+
|
|
1410
|
+
If you delete a group in Microsoft Entra ID, the group's corresponding role is automatically removed in Dremio and the group members' Dremio user accounts are set to inactive. Deleting a Microsoft Entra ID group does not delete the group members' Dremio user accounts.
|
|
1411
|
+
|
|
1412
|
+
To completely delete Dremio users, you must [manually remove their user accounts in Dremio](/dremio-cloud/admin/users#remove-a-user) in addition to deleting the users and any groups they belong to from the SCIM application in Microsoft Entra ID.
|
|
1413
|
+
|
|
1414
|
+
Was this page helpful?
|
|
1415
|
+
|
|
1416
|
+
* Prerequisites
|
|
1417
|
+
* Configure an Application for SSO
|
|
1418
|
+
+ Assign People and Groups to the Microsoft Entra ID Application
|
|
1419
|
+
+ Use Microsoft Entra ID SSO to Log in to Dremio
|
|
1420
|
+
+ Revoke Microsoft Entra ID SSO Login for a User or Group
|
|
1421
|
+
* Configure Microsoft Entra ID with SCIM
|
|
1422
|
+
+ Prerequisites
|
|
1423
|
+
+ Configure an Application for SCIM Provisioning
|
|
1424
|
+
+ Create Users
|
|
1425
|
+
+ Create Roles
|
|
1426
|
+
+ Update User Attributes
|
|
1427
|
+
+ Deactivate Users
|
|
1428
|
+
|
|
1429
|
+
<div style="page-break-after: always;"></div>
|
|
1430
|
+
|
|
1431
|
+
# Generic OIDC | Dremio Documentation
|
|
1432
|
+
|
|
1433
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/idp/generic-oidc-provider
|
|
1434
|
+
|
|
1435
|
+
On this page
|
|
1436
|
+
|
|
1437
|
+
Dremio supports the generic [OpenID Connect (OIDC)](https://openid.net/) authentication protocol as an enterprise identity provider. OIDC provider administrators can register a Dremio application and use it to enable single sign-on (SSO) and allow users to log in using an OIDC provider as the trusted third party.
|
|
1438
|
+
|
|
1439
|
+
note
|
|
1440
|
+
|
|
1441
|
+
To configure Microsoft Entra ID or Okta as an identity provider, see:
|
|
1442
|
+
|
|
1443
|
+
* [Microsoft Entra ID as an Identity Provider](/dremio-cloud/security/authentication/idp/microsoft-entra-id)
|
|
1444
|
+
* [Okta as an Identity Provider](/dremio-cloud/security/authentication/idp/okta)
|
|
1445
|
+
|
|
1446
|
+
Dremio also allows you to use System for Cross-domain Identity Management (SCIM) provisioning to manage Dremio user access from your OIDC provider. After you configure your provider for OIDC SSO, refer to your OIDC provider's documentation to configure SCIM. See [SCIM with a Generic OpenID Connect Provider](/dremio-cloud/security/authentication/idp/generic-oidc-provider/#configure-a-generic-openid-connect-provider-with-scim) to use SCIM provisioning in Dremio.
|
|
1447
|
+
|
|
1448
|
+
## Prerequisites
|
|
1449
|
+
|
|
1450
|
+
Configuring SSO in a generic OIDC provider requires:
|
|
1451
|
+
|
|
1452
|
+
* Privileges in the OIDC provider that permit you to add, configure, and register applications.
|
|
1453
|
+
* The CONFIGURE SECURITY [organization-level privilege](/dremio-cloud/security/privileges#organization-privileges) or membership in the [ADMIN role](/dremio-cloud/security/roles#admin).
|
|
1454
|
+
|
|
1455
|
+
## Configure OIDC SSO
|
|
1456
|
+
|
|
1457
|
+
To configure OIDC SSO for Dremio users:
|
|
1458
|
+
|
|
1459
|
+
1. **In Dremio**, on the organization page, click  on the left navigation bar, then select **Organization settings**.
|
|
1460
|
+
2. Select **Authentication** in the organization settings sidebar.
|
|
1461
|
+
3. Click **Add Provider** to open the Add Provider dialog.
|
|
1462
|
+
4. In Step 1, select **OpenID Connect (OIDC)** from the dropdown menu.
|
|
1463
|
+
5. Copy and save the **Redirect URL** listed in Step 2. The redirect URL is sensitive information and should be kept secure. You will need it to register the `Dremio` application in your OIDC provider portal in the next step.
|
|
1464
|
+
6. **In your OIDC provider portal**, register `Dremio` as an application.
|
|
1465
|
+
7. Copy and save the client ID and client secret for your OIDC provider. The client ID and client secret are sensitive information and should be kept secure. You will use them to configure authentication in Dremio later in this procedure.
|
|
1466
|
+
8. Copy and save the `issuer` value from the OIDC configuration. You will use it to configure authentication in Dremio later in this procedure.
|
|
1467
|
+
9. **In Dremio**, in Step 3 of the **Add Provider** dialog, enter the issuer URL, client ID, and client secret that you copied from your OIDC provider portal in the corresponding fields.
|
|
1468
|
+
10. Click **Add**. After the page loads, you should see your OIDC provider in the **Enterprise** section.
|
|
1469
|
+
11. Click the **Enabled** toggle to activate your OIDC provider.
|
|
1470
|
+
|
|
1471
|
+
OIDC as an enterprise identity provider is now configured. **Log in with SSO** appears in the list of login options for your Dremio users.
|
|
1472
|
+
|
|
1473
|
+
### Use SSO to Log In to Dremio
|
|
1474
|
+
|
|
1475
|
+
Any user who is assigned to the `Dremio` application in your OIDC provider can log in with SSO immediately. To use SSO to log in to Dremio:
|
|
1476
|
+
|
|
1477
|
+
1. Open the Dremio login page.
|
|
1478
|
+
2. Type your email address in the **Email** field and click **Continue**.
|
|
1479
|
+
3. If you belong to more than one Dremio organization, select the organization to log in to.
|
|
1480
|
+
4. Click **Log in with SSO**.
|
|
1481
|
+
5. When you are redirected to your OIDC provider for authentication, enter your username and password.
|
|
1482
|
+
|
|
1483
|
+
The OIDC provider authenticates your identity and redirects you to Dremio, which then logs you in.
|
|
1484
|
+
|
|
1485
|
+
To configure SCIM provisioning to manage access for Dremio users, see [SCIM with a Generic OpenID Connect Provider](/dremio-cloud/security/authentication/idp/generic-oidc-provider/#configure-a-generic-openid-connect-provider-with-scim).
|
|
1486
|
+
|
|
1487
|
+
### Revoke SSO Login for a User or Group
|
|
1488
|
+
|
|
1489
|
+
To revoke users' access to SSO login for Dremio:
|
|
1490
|
+
|
|
1491
|
+
1. In your OIDC provider's portal, navigate to the `Dremio` application.
|
|
1492
|
+
2. Open the assignment settings for the `Dremio` application.
|
|
1493
|
+
3. Find the user or group whose access you want to revoke and follow your OIDC provider's procedures to revoke access.
|
|
1494
|
+
|
|
1495
|
+
Starting immediately, the deactivated users cannot use OIDC SSO to log in to Dremio.
|
|
1496
|
+
|
|
1497
|
+
To completely delete Dremio users, you must also [manually remove their user accounts in Dremio](/dremio-cloud/admin/users#remove-a-user).
|
|
1498
|
+
|
|
1499
|
+
## Configure a Generic OpenID Connect Provider with SCIM
|
|
1500
|
+
|
|
1501
|
+
System for Cross-domain Identity Management (SCIM) automates the synchronization of user accounts between your identity provider (IdP) and Dremio, eliminating the need for manual user management. When configured, your IdP securely sends user credentials to Dremio via SCIM, automatically creating accounts for new users as needed. These users can then log in to Dremio according to your organization's authentication policies.
|
|
1502
|
+
|
|
1503
|
+
Before you can configure SCIM provisioning, you must configure a generic OIDC provider as an enterprise identity provider in Dremio. Follow the instructions in [Generic OpenID Connect Identity Provider](/dremio-cloud/security/authentication/idp/generic-oidc-provider) to integrate a `Dremio` application in a generic OIDC provider for single sign-on (SSO) in Dremio. When that is done, follow this guide to configure SCIM for secure user provisioning.
|
|
1504
|
+
|
|
1505
|
+
### Prerequisites
|
|
1506
|
+
|
|
1507
|
+
Configuring SCIM provisioning requires:
|
|
1508
|
+
|
|
1509
|
+
* Privileges in your OIDC provider that permit you to register and configure applications.
|
|
1510
|
+
* The CONFIGURE SECURITY [organization-level privilege](/dremio-cloud/security/privileges#organization-privileges) or membership in the [ADMIN role](/dremio-cloud/security/roles#admin).
|
|
1511
|
+
* A Dremio [personal access token (PAT)](/dremio-cloud/security/authentication/personal-access-token/#create-a-pat) for a Dremio user who is a member of the ADMIN role.
|
|
1512
|
+
|
|
1513
|
+
### Configure SCIM Provisioning
|
|
1514
|
+
|
|
1515
|
+
The steps required to configure and enable SCIM provisioning vary for different OIDC providers. Follow the instructions in your OIDC provider's documentation.
|
|
1516
|
+
|
|
1517
|
+
Use a Dremio [PAT](/dremio-cloud/security/authentication/personal-access-token/#create-a-pat) as the **API Token** or **Secret Token** value when you configure authentication for SCIM requests in your OIDC provider's portal.
|
|
1518
|
+
|
|
1519
|
+
US Control Plane
|
|
1520
|
+
|
|
1521
|
+
```
|
|
1522
|
+
https://scim.dremio.cloud/scim/v2
|
|
1523
|
+
```
|
|
1524
|
+
|
|
1525
|
+
EU Control Plane
|
|
1526
|
+
|
|
1527
|
+
```
|
|
1528
|
+
https://scim.eu.dremio.cloud/scim/v2
|
|
1529
|
+
```
|
|
1530
|
+
|
|
1531
|
+
After SCIM provisioning is configured and enabled, you can create users, update user attributes, and deactivate users in Dremio from your OIDC provider's portal.
|
|
1532
|
+
|
|
1533
|
+
### Create Users
|
|
1534
|
+
|
|
1535
|
+
After you configure SCIM provisioning, Dremio automatically creates a new Dremio user account for anyone you assign to the `Dremio` application in your OIDC provider who does not already have an account. New Dremio users can log in to Dremio with SSO immediately, and administrators can [view their user accounts in Dremio](/dremio-cloud/admin/users#view-all-users).
|
|
1536
|
+
|
|
1537
|
+
* New users are automatically members of the PUBLIC role in Dremio.
|
|
1538
|
+
* User email addresses are controlled by your OIDC provider rather than Dremio. If a user's email address changes, you must create a new user in your OIDC provider and assign them to the `Dremio` application. Then, the user can use the new email address to log in to Dremio as a new user.
|
|
1539
|
+
|
|
1540
|
+
### Update User Attributes
|
|
1541
|
+
|
|
1542
|
+
With SCIM provisioning configured, updates to user attributes in your OIDC provider are propagated to the user account in Dremio.
|
|
1543
|
+
|
|
1544
|
+
The first name and last name attributes are mapped to user accounts in Dremio. After you configure SCIM provisioning and allow user attributes to be updated, you can change these user attributes in your OIDC provider to update the corresponding user information in Dremio.
|
|
1545
|
+
|
|
1546
|
+
### Deactivate Users
|
|
1547
|
+
|
|
1548
|
+
When you revoke a user or group in your OIDC provider, the affected users cannot use OIDC SSO to log in to Dremio. After you configure SCIM provisioning and deactivate users, they become inactive in Dremio and cannot log in to Dremio at all with SSO.
|
|
1549
|
+
|
|
1550
|
+
To completely delete Dremio users, you must also [manually remove their user accounts in Dremio](/dremio-cloud/admin/users/#remove-a-user).
|
|
1551
|
+
|
|
1552
|
+
## Troubleshoot
|
|
1553
|
+
|
|
1554
|
+
This section describes some considerations about OIDC SSO and SCIM provisioning with the `Dremio` application in your OIDC provider.
|
|
1555
|
+
|
|
1556
|
+
* **SCIM provisioning**
|
|
1557
|
+
+ Dremio does not allow username updates. If you change a user's username in your OIDC provider after the user is assigned to the `Dremio` application, the OIDC provider sends a request to update the username in Dremio. Dremio denies the request because Dremio username changes are not allowed.
|
|
1558
|
+
+ Changing an existing user's primary email address in the OIDC provider has no effect on the user's account in Dremio. To permit a user to authenticate to Dremio with the new email address, add the user to your OIDC provider as a new person using the new email address. Then, assign the new user to the `Dremio` application (either individually as a person or by adding them to an assigned group). The OIDC provider creates a new Dremio user who can use SSO to log in to Dremio with the new email address.
|
|
1559
|
+
* **OIDC SSO**
|
|
1560
|
+
+ Refer to your OIDC provider's documentation to ensure that you have privileges that permit you to add the `Dremio` application in your OIDC provider and configure OIDC SSO.
|
|
1561
|
+
+ If you revoke a user's access to SSO login, the user can still log in to Dremio with their Dremio username and password. To completely delete the user so that they cannot log in to Dremio at all, you must [manually remove their user accounts in Dremio](/dremio-cloud/admin/users#remove-a-user).
|
|
1562
|
+
|
|
1563
|
+
Was this page helpful?
|
|
1564
|
+
|
|
1565
|
+
* Prerequisites
|
|
1566
|
+
* Configure OIDC SSO
|
|
1567
|
+
+ Use SSO to Log In to Dremio
|
|
1568
|
+
+ Revoke SSO Login for a User or Group
|
|
1569
|
+
* Configure a Generic OpenID Connect Provider with SCIM
|
|
1570
|
+
+ Prerequisites
|
|
1571
|
+
+ Configure SCIM Provisioning
|
|
1572
|
+
+ Create Users
|
|
1573
|
+
+ Update User Attributes
|
|
1574
|
+
+ Deactivate Users
|
|
1575
|
+
* Troubleshoot
|
|
1576
|
+
|
|
1577
|
+
<div style="page-break-after: always;"></div>
|
|
1578
|
+
|
|
1579
|
+
# Prerequisites
|
|
1580
|
+
|
|
1581
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/app-authentication/oauth-apps
|
|
1582
|
+
|
|
1583
|
+
On this page
|
|
1584
|
+
|
|
1585
|
+
This topic describes how to configure OAuth applications to integrate third-party applications with Dremio. This allows Dremio and third-party applications to interact without exposing user login credentials. For example, an organization might use GitLab accounts to access Dremio. In the unlikely event of a Dremio data breach, the organization's login credentials would remain unaffected and protected.
|
|
1586
|
+
|
|
1587
|
+
Additional authentication and security measures are available in [Authentication](/dremio-cloud/security/authentication/).
|
|
1588
|
+
|
|
1589
|
+
* **Native** – Mobile, desktop, CLI, and smart device apps that run natively on their respective operating systems, such as iOS and Chrome OS.
|
|
1590
|
+
* **Single-Page Application (SPA)** – JavaScript-enabled, front-end applications that use an API, such as Angular, React, and Vue.
|
|
1591
|
+
* **Web** – Traditional web applications that utilize redirects, such as Java, PHP, and ASP.NET.
|
|
1592
|
+
|
|
1593
|
+
# Prerequisites
|
|
1594
|
+
|
|
1595
|
+
Before setting up OAuth applications, ensure you have:
|
|
1596
|
+
|
|
1597
|
+
* Dremio admin privileges or the CONFIGURE SECURITY privilege.
|
|
1598
|
+
* An OIDC-compliant Identity Provider (IDP) configured in Dremio if OAuth applications will rely on external authentication.
|
|
1599
|
+
|
|
1600
|
+
## Add an OAuth App
|
|
1601
|
+
|
|
1602
|
+
To add a new OAuth application in Dremio:
|
|
1603
|
+
|
|
1604
|
+
1. Click  on the left navigation bar and select **Organization settings**, then select **OAuth Applications**.
|
|
1605
|
+
2. Click **Add Application** in the top-right corner of the screen.
|
|
1606
|
+
3. Enter a value for **OAuth Application Name** to identify the associated service.
|
|
1607
|
+
4. Enter a value for **Redirect URI**. This value is used as the destination for return responses (tokens) after successfully authenticating a user. If there is an issue with the provided URI's format, red text will display below the field to indicate the required format.
|
|
1608
|
+
5. Select the desired **OAuth Application Type** from the dropdown menu. The type of application selected determines which authentication flow Dremio will follow. This cannot be changed after the application is added.
|
|
1609
|
+
6. Click **Add** to create the application service. A success message will appear at the top of the screen.
|
|
1610
|
+
|
|
1611
|
+
Upon creating the application, the dialog will refresh with a new field: **Client ID**. Copy this value, as it is needed to link with the third-party OAuth application. Include this string where the **Client ID** is required by your respective OAuth application.
|
|
1612
|
+
|
|
1613
|
+
## Edit an OAuth App
|
|
1614
|
+
|
|
1615
|
+
To edit an existing OAuth application in Dremio:
|
|
1616
|
+
|
|
1617
|
+
1. Click  on the left navigation bar and select **Organization settings**, then select **OAuth Applications**.
|
|
1618
|
+
2. Click the edit icon for the desired application.
|
|
1619
|
+
3. Make any necessary changes to the application name or redirect URI. You cannot change the **Client ID** or **OAuth Application Type**.
|
|
1620
|
+
4. Click **Save**.
|
|
1621
|
+
|
|
1622
|
+
Was this page helpful?
|
|
1623
|
+
|
|
1624
|
+
* Add an OAuth App
|
|
1625
|
+
* Edit an OAuth App
|
|
1626
|
+
|
|
1627
|
+
<div style="page-break-after: always;"></div>
|
|
1628
|
+
|
|
1629
|
+
# External Token Providers | Dremio Documentation
|
|
1630
|
+
|
|
1631
|
+
Original URL: https://docs.dremio.com/dremio-cloud/security/authentication/app-authentication/external-token
|
|
1632
|
+
|
|
1633
|
+
On this page
|
|
1634
|
+
|
|
1635
|
+
External token providers are OIDC identity providers that issue [JSON Web Tokens (JWTs)](https://jwt.io/introduction) when a user authenticates using an application client. After receiving a JWT from the external token provider, the client application uses [Dremio token exchange](/dremio-cloud/api/oauth-token/#exchange-an-external-jwt) to obtain an OAuth access token used to create connections to Dremio.
|
|
1636
|
+
|
|
1637
|
+

|
|
1638
|
+
|
|
1639
|
+
The OIDC external token provider does not need to be the same identity provider used by the Dremio console for single sign-on (SSO). The provider requires an application registration specifying the OAuth authorization flow to be used between the external token provider and the client to obtain the JWT that will be sent to Dremio.
|
|
1640
|
+
|
|
1641
|
+
This page outlines the steps for configuring an external token provider so Dremio can interpret and validate the JWTs issued by your provider.
|
|
1642
|
+
|
|
1643
|
+
The [OIDC specification](https://openid.net/specs/openid-connect-core-1_0.html#IDToken) describes the content of the JWT and the authorization process. Claims in a JWT contain information asserted about a subject. They are key/value pairs in which the key is a string, and the value can be any JSON type (a string, a number, a boolean, an array, or a JSON object).
|
|
1644
|
+
|
|
1645
|
+
Example: External JWT Claims from Microsoft Entra ID
|
|
1646
|
+
|
|
1647
|
+
```
|
|
1648
|
+
{
|
|
1649
|
+
"aud": "0853fce0-c748-4c54-aa58-f5b9af279840",
|
|
1650
|
+
"iss": "https://login.microsoftonline.com/3e334762-b0c6-4c36-9faf-93800f0d6c71/v2.0",
|
|
1651
|
+
"upn": "gnarly@dremio.com"
|
|
1652
|
+
}
|
|
1653
|
+
```
|
|
1654
|
+
|
|
1655
|
+
## Prerequisites
|
|
1656
|
+
|
|
1657
|
+
Before setting up External Token Providers, ensure you have:
|
|
1658
|
+
|
|
1659
|
+
* Dremio admin privileges or the CONFIGURE SECURITY privilege.
|
|
1660
|
+
* An OIDC-compliant Identity Provider configured with an application registration for your client.
|
|
1661
|
+
* Access to the following information from your IDP:
|
|
1662
|
+
+ **Audience** – Application ID or resource URI
|
|
1663
|
+
+ **User claim mapping** – The claim containing the Dremio username
|
|
1664
|
+
+ **Issuer URL** – Identity provider identification
|
|
1665
|
+
+ **JWKS URL** – Optional location of public keys
|
|
1666
|
+
|
|
1667
|
+
## Define an External Token Provider
|
|
1668
|
+
|
|
1669
|
+
Dremio requires the following configuration values from your OIDC identity provider.
|
|
1670
|
+
|
|
1671
|
+
tip
|
|
1672
|
+
|
|
1673
|
+
The examples below are specific to Microsoft Entra ID. Your identity provider may require additional configuration of a client application registration that depends on the OAuth authorization flow used between your client and your provider. To configure your application registration, consult your identity provider documentation.
|
|
1674
|
+
|
|
1675
|
+
### Audience
|
|
1676
|
+
|
|
1677
|
+
The audience value identifies the intended recipients of the external JWT. It can generally be an array of case-sensitive strings or URI values. The audience is contained in the `aud` claim in the external JWT.
|
|
1678
|
+
|
|
1679
|
+
When using Microsoft Entra ID, the audience can be the Application ID assigned to your app in the Microsoft Entra ID portal or the resource URI. In v2.0 tokens, this value is always the [Application ID](https://learn.microsoft.com/en-us/entra/identity-platform/id-token-claims-reference). In v1.0 tokens, it can be the Application ID or the [resource URI](https://learn.microsoft.com/en-us/entra/identity-platform/access-token-claims-reference) used in the request, depending on how the client requested the token. Dremio supports v1.0 and v2.0 JWTs from Microsoft Entra ID.
|
|
1680
|
+
|
|
1681
|
+
Example Audience Claim with Microsoft Entra ID Application ID
|
|
1682
|
+
|
|
1683
|
+
```
|
|
1684
|
+
"aud": "0853fce0-c748-4c54-aa58-f5b9af279840"
|
|
1685
|
+
```
|
|
1686
|
+
|
|
1687
|
+
### User Claim Mapping
|
|
1688
|
+
|
|
1689
|
+
The user claim mapping identifies the claim in the external JWT that contains the Dremio username.
|
|
1690
|
+
|
|
1691
|
+
When using Microsoft Entra ID authentication, Dremio usernames must align with the [User Principal Name (UPN)](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/plan-connect-userprincipalname#upn-in-microsoft-entra-id) claim for correct linking of user group memberships via the Azure Graph Client.
|
|
1692
|
+
|
|
1693
|
+
When a user is added to a Power BI workspace, the user's identity is also represented by the [User Principal Name (UPN)](https://learn.microsoft.com/en-us/answers/questions/1663403/upn-changing-when-adding-external-user-to-bi-works), which has the format of an email address.
|
|
1694
|
+
|
|
1695
|
+
The JWT contains the UPN claim, named `upn`, and its value.
|
|
1696
|
+
|
|
1697
|
+
Example: UPN Claim from Microsoft Entra ID
|
|
1698
|
+
|
|
1699
|
+
```
|
|
1700
|
+
"upn": "gnarly@dremio.com"
|
|
1701
|
+
```
|
|
1702
|
+
|
|
1703
|
+
The `user claim mapping` field of the external token provider requires the name of the claim used in the JWT, which in this case is `upn`.
|
|
1704
|
+
|
|
1705
|
+
### Issuer URL
|
|
1706
|
+
|
|
1707
|
+
The issuer URL identifies the identity provider that issued the JWT. It is contained in the external JWT's `iss` claim. When using Microsoft Entra ID, [the issuer claim](https://learn.microsoft.com/en-us/entra/identity-platform/id-token-claims-reference) includes the Microsoft Entra ID tenant identifier. Only one external token provider in the system should use the combination of a given audience and issuer.
|
|
1708
|
+
|
|
1709
|
+
Example Issuer Claim with Microsoft Entra ID
|
|
1710
|
+
|
|
1711
|
+
```
|
|
1712
|
+
"iss": "https://login.microsoftonline.com/3e334762-b0c6-4c36-9faf-93800f0d6c71/v2.0"
|
|
1713
|
+
```
|
|
1714
|
+
|
|
1715
|
+
### JWKS URL
|
|
1716
|
+
|
|
1717
|
+
The JWKS URL is an endpoint that hosts the [JWK Set (JWKS)](https://datatracker.ietf.org/doc/html/rfc7517), a set of public keys used for verifying the JWT signature. This value is optional; if you do not provide a JWKS URL value when configuring the external token provider, Dremio retrieves the JWKS URL from `{issuer URL}/.well-known/openid-configuration`.
|
|
1718
|
+
|
|
1719
|
+
For Microsoft Entra ID, the [JWKS URL](https://learn.microsoft.com/en-us/entra/identity-platform/access-tokens) is typically of the form `https://login.microsoftonline.com/{tenant_id}/discovery/v2.0/keys`.
|
|
1720
|
+
|
|
1721
|
+
Example: JWKS URL from Microsoft Entra ID
|
|
1722
|
+
|
|
1723
|
+
```
|
|
1724
|
+
https://login.microsoftonline.com/58a43618-7933-4e0d-906e-1c1a2a867ad6/discovery/v2.0/keys
|
|
1725
|
+
```
|
|
1726
|
+
|
|
1727
|
+
## Manage External Token Providers
|
|
1728
|
+
|
|
1729
|
+
The Dremio administrator or a user with the [CONFIGURE SECURITY](/dremio-cloud/security/privileges#organization-privileges) privilege can view and manage external token providers in Dremio.
|
|
1730
|
+
|
|
1731
|
+
### View External Token Providers
|
|
1732
|
+
|
|
1733
|
+
To view external token providers:
|
|
1734
|
+
|
|
1735
|
+
1. In the Dremio console, click  on the left navigation bar, and select **Organization settings**.
|
|
1736
|
+
2. Click **External Token Providers**. The External Token Providers page lists the external token providers configured for Dremio.
|
|
1737
|
+
|
|
1738
|
+
### Add an External Token Provider
|
|
1739
|
+
|
|
1740
|
+
To add an external token provider:
|
|
1741
|
+
|
|
1742
|
+
1. In the Dremio console, click  in the side navigation bar, and select **Organization settings**.
|
|
1743
|
+
2. Click **External Token Providers**.
|
|
1744
|
+
3. Click **Add Provider** at the top-right corner of the External Token Providers page.
|
|
1745
|
+
4. In the Add Provider dialog, complete the configuration using the fields described in Define an External Token Provider.
|
|
1746
|
+
5. Click **Add**.
|
|
1747
|
+
|
|
1748
|
+
When you add an external token provider, Dremio automatically enables it. To deactivate it, toggle the Enabled switch on the External Token Providers page.
|
|
1749
|
+
|
|
1750
|
+
Each external token provider must use a different combination of issuer and audience. If multiple external token providers share the same issuer and audience, authentication will fail regardless of whether the token providers are enabled.
|
|
1751
|
+
|
|
1752
|
+
### Edit an External Token Provider
|
|
1753
|
+
|
|
1754
|
+
To edit an external token provider:
|
|
1755
|
+
|
|
1756
|
+
1. In the Dremio console, click  in the side navigation bar, and select **Organization settings**.
|
|
1757
|
+
2. Click **External Token Providers**.
|
|
1758
|
+
3. On the External Token Providers page, find the row for the external token provider you want to edit and click  at the right side of the row.
|
|
1759
|
+
4. In the Edit Provider dialog, update the values using the fields described in Define an External Token Provider.
|
|
1760
|
+
5. Click **Save**.
|
|
1761
|
+
|
|
1762
|
+
### Delete an External Token Provider
|
|
1763
|
+
|
|
1764
|
+
To delete an external token provider:
|
|
1765
|
+
|
|
1766
|
+
1. In the Dremio console, click  in the side navigation bar, and select **Organization settings**.
|
|
1767
|
+
2. Click **External Token Providers**.
|
|
1768
|
+
3. On the External Token Providers page, find the row for the external token provider you want to delete and click  at the right side of the row.
|
|
1769
|
+
4. In the Delete External Provider dialog, click **Delete**.
|
|
1770
|
+
|
|
1771
|
+
## Use the External Token Provider
|
|
1772
|
+
|
|
1773
|
+
### Retrieve an External JWT
|
|
1774
|
+
|
|
1775
|
+
This sample application uses the [Microsoft Authentication Library](https://learn.microsoft.com/en-us/entra/identity-platform/msal-overview) to authenticate a user with the OAuth authorization code flow.
|
|
1776
|
+
|
|
1777
|
+
* `client_id` is the [Application (Client) ID](https://learn.microsoft.com/en-us/entra/identity-platform/msal-client-application-configuration#client-id) assigned to your app by Microsoft Entra ID when the app was registered.
|
|
1778
|
+
* `app_redirect_url` or [reply URL](https://learn.microsoft.com/en-us/entra/identity-platform/reply-url) is the location of the client app where Microsoft Entra ID sends an external JWT after the user has successfully logged in, such as `https://myapp.com/auth/callback` or `http://localhost:3000/auth/callback`. The redirect URI is defined in the Microsoft Entra ID application registration for the client.
|
|
1779
|
+
* `dremio_scope_name` is the [API scope](https://learn.microsoft.com/en-us/entra/identity-platform/scopes-oidc) you defined for the client in the Microsoft Entra ID application profile. Dremio requires a scope of `dremio.all` in token exchange, regardless of the scope configured in the application registration.
|
|
1780
|
+
* `tenant_id` is your Microsoft Entra ID [tenant identifier](https://learn.microsoft.com/en-us/sharepoint/find-your-office-365-tenant-id).
|
|
1781
|
+
|
|
1782
|
+
Example: Retrieving a Microsoft JWT
|
|
1783
|
+
|
|
1784
|
+
```
|
|
1785
|
+
import msal
|
|
1786
|
+
|
|
1787
|
+
client_id = "TODO"
|
|
1788
|
+
app_redirect_url = "TODO"
|
|
1789
|
+
dremio_scope_name = "TODO"
|
|
1790
|
+
tenant_id = "TODO"
|
|
1791
|
+
|
|
1792
|
+
authority_url = "https://login.microsoftonline.com/" + tenant_id
|
|
1793
|
+
app = msal.PublicClientApplication(client_id, authority=authority_url)
|
|
1794
|
+
auth_code_flow = app.initiate_auth_code_flow(
|
|
1795
|
+
scopes=[dremio_scope_name],
|
|
1796
|
+
redirect_uri=app_redirect_url
|
|
1797
|
+
) # PKCE is included in the MSAL Python library
|
|
1798
|
+
|
|
1799
|
+
state = auth_code_flow['state']
|
|
1800
|
+
|
|
1801
|
+
authorization_code = "TODO: retrieved from the browser"
|
|
1802
|
+
|
|
1803
|
+
external_access_token = ""
|
|
1804
|
+
|
|
1805
|
+
if authorization_code:
|
|
1806
|
+
auth_result = app.acquire_token_by_auth_code_flow(
|
|
1807
|
+
auth_code_flow=auth_code_flow,
|
|
1808
|
+
auth_response={"code": authorization_code, "state": state}
|
|
1809
|
+
)
|
|
1810
|
+
if "access_token" in auth_result:
|
|
1811
|
+
external_access_token = auth_result["access_token"]
|
|
1812
|
+
else:
|
|
1813
|
+
print("Error: no access token")
|
|
1814
|
+
if "refresh_token" in auth_result:
|
|
1815
|
+
refresh_token = auth_result["refresh_token"]
|
|
1816
|
+
else:
|
|
1817
|
+
print("Error: no refresh token")
|
|
1818
|
+
else:
|
|
1819
|
+
print("Error: no auth code")
|
|
1820
|
+
```
|
|
1821
|
+
|
|
1822
|
+
### Exchange a JWT
|
|
1823
|
+
|
|
1824
|
+
The client must use the Dremio `/oauth/token` REST API to [exchange the JWT for an OAuth access token](/dremio-cloud/api/oauth-token#exchange-an-external-jwt).
|
|
1825
|
+
|
|
1826
|
+
Was this page helpful?
|
|
1827
|
+
|
|
1828
|
+
* Prerequisites
|
|
1829
|
+
* Define an External Token Provider
|
|
1830
|
+
+ Audience
|
|
1831
|
+
+ User Claim Mapping
|
|
1832
|
+
+ Issuer URL
|
|
1833
|
+
+ JWKS URL
|
|
1834
|
+
* Manage External Token Providers
|
|
1835
|
+
+ View External Token Providers
|
|
1836
|
+
+ Add an External Token Provider
|
|
1837
|
+
+ Edit an External Token Provider
|
|
1838
|
+
+ Delete an External Token Provider
|
|
1839
|
+
* Use the External Token Provider
|
|
1840
|
+
+ Retrieve an External JWT
|
|
1841
|
+
+ Exchange a JWT
|
|
1842
|
+
|
|
1843
|
+
<div style="page-break-after: always;"></div>
|
|
1844
|
+
|