You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/ROOT/pages/abac-user-parameters.adoc
+42-17Lines changed: 42 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,22 +8,47 @@
8
8
9
9
In Attribute-Based Access Control (ABAC) implementation, security entitlements are sent in as lists of attributes at session creation time via the authentication service.
10
10
11
-
// Unlike xref:abac-user-parameters-beta.adoc[the beta version of ABAC implementation],
12
-
13
-
The ABAC via tokens feature in ThoughtSpot 10.4.0.cl and later versions involves generating a token with filter rules and parameter values using the +++<a href="{{navprefix}}/restV2-playground?apiResourceId=http%2Fapi-endpoints%2Fauthentication%2Fget-custom-access-token">auth/token/custom</a>+++ API endpoint.
14
-
15
-
// This article describes the steps required to implement ABAC for row-level security (RLS) using the +++<a href="{{navprefix}}/restV2-playground?apiResourceId=http%2Fapi-endpoints%2Fauthentication%2Fget-custom-access-token">Custom access token </a>+++ REST API endpoint.
11
+
This article provides a detailed overview of the ABAC implementation via tokens for row-level security (RLS), and lists configuration recommendations, and best practices.
16
12
17
13
[IMPORTANT]
18
14
====
15
+
To enable the ABAC via tokens feature on your instance, contact ThoughtSpot Support.
16
+
====
17
+
18
+
19
19
// * The `user_parameters` property in `auth/token/full` and `auth/token/object` APIs used for the beta implementation of ABAC is deprecated in 10.4.0.cl.
20
20
// * Starting with 10.4.0.cl, security attributes for ABAC will not be stored in the `user` > `user_parameters` object. All ABAC-related security rules and filters applied via token generated using the `/api/rest/2.0/auth/token/custom` API endpoint are stored in the `user` > `access_control_properties` object.
21
-
* To update your implementation from the xref:abac-user-parameters-beta.adoc[beta version of ABAC with the V2.0 Get token APIs] (`auth/token/full` or `auth/token/object`) to `/api/rest/2.0/auth/token/custom`, refer to the instructions in the xref:jwt-migration.adoc[migration guide].
21
+
// * The +++<a href="{{navprefix}}/restV2-playground?apiResourceId=http%2Fapi-endpoints%2Fauthentication%2Fget-custom-access-token">Custom access token </a>+++ REST API endpoint.
22
+
23
+
24
+
== Configuration recommendations and best practices
25
+
26
+
Before you begin, note the following recommendations and feature limitations:
27
+
28
+
* *API for token generation* +
29
+
The ABAC via tokens feature in ThoughtSpot 10.4.0.cl and later versions involves generating a token with filter rules and parameter values using the +++<a href="{{navprefix}}/restV2-playground?apiResourceId=http%2Fapi-endpoints%2Fauthentication%2Fget-custom-access-token">auth/token/custom</a>+++ API endpoint. To update your implementation from the xref:abac-user-parameters-beta.adoc[beta version of ABAC with the V2.0 Get token APIs] (`auth/token/full` or `auth/token/object`) to `/api/rest/2.0/auth/token/custom`, refer to the instructions in the xref:jwt-migration.adoc[migration guide].
30
+
31
+
* *Mandatory token filters* +
32
+
The most common *best practice* is to define *filter rules* within the token and place the `is_mandatory_token_filter: true` property on every column in a Worksheet or Model where a filter rule is expected. __This will deny any access to data if a user has not been assigned values for the expected set of fields__.
33
+
+
34
+
[NOTE]
35
+
====
36
+
On instances running 10.5.0.cl and 10.4.0.cl versions, if a column is set as hidden (`is_hidden: true`), the `is_mandatory_token_filter: true` setting will not be applied to the column. Due to this, the user may see no data. To work around this issue, we recommend upgrading to 10.6.0.cl or set `is_hidden` to `false` on the column and then apply filter rules.
22
37
====
23
38
24
-
== ABAC attributes
39
+
[#column-name-warning]
40
+
* *Column names in Worksheet/ Model* +
41
+
The filter rules require passing the *exact* ThoughtSpot Worksheet or Model column name the values will not bind to any column. You must coordinate between the team that maintains the Worksheets or Models and the team that builds the xref:trusted-auth-token-request-service.adoc[token request service] to know if any changes will be made to a Model or Worksheet. +
42
+
For the same reasons, the end users of an embedded app cannot have *edit* access to any Worksheet or Model using ABAC RLS via tokens. +
43
+
When column names change, ensure that the `is_mandatory_token_filter: true` property is set on every column where a filter rule is expected.
25
44
26
-
The most common *best practice* is to define *filter rules* within the token and place the `is_mandatory_token_filter: true` property on every column in a Worksheet or Model where a filter rule is expected. This will deny any access to data if a user has not been assigned values for the expected set of fields.
45
+
* *Indexing* +
46
+
Several features within ThoughtSpot, such as autocompletion in Search on values within columns or the suggestions in Explore mode, use ThoughtSpot indexing. Due to the runtime nature of ABAC via tokens, ThoughtSpot indexing will not be restricted by the values supplied in a token.
47
+
+
48
+
You must turn off indexing for any field that needs to be restricted by RLS when using ABAC via tokens for RLS, or also include an RLS Rule on fields that must also be filtered for the Indexing system.
49
+
50
+
51
+
== ABAC attributes
27
52
28
53
Administrators can set the following attributes for a user via the authentication token, along with the capability to assign the user to ThoughtSpot groups:
29
54
@@ -33,14 +58,6 @@ Can filter multiple values of any data type. Binds to any Column in any Model or
Binds a single value to any Parameter in any Worksheet or Model by Parameter Name and Type match. Parameters can be used in *Worksheet formulas* and then as *Worksheet filters*.
35
60
36
-
[IMPORTANT]
37
-
====
38
-
[#column-name-warning]
39
-
The filter rules require passing the *exact* ThoughtSpot Worksheet or Model column name the values will not bind to any column. You must coordinate between the team that maintains the Worksheets and Models and the team that builds the xref:trusted-auth-token-request-service.adoc[token request service] if any changes will be made to a Model or Worksheet.
40
-
For the same reasons, the end users of an embedded app cannot have *edit* access to any Worksheet or Model using ABAC RLS via tokens.
41
-
When column names change, ensure that the `is_mandatory_token_filter: true` property is set on every column where a filter rule is expected.
42
-
====
43
-
44
61
The request for a token with ABAC details can xref:abac-user-parameters.adoc#persistForUser[persist] the set of filters and Parameter values to user sessions within ThoughtSpot, after which all sessions and scheduled reports will use the persisted values until they are changed by another token generation request.
45
62
46
63
== Token request
@@ -90,6 +107,11 @@ An example of setting both `filter_rules` and `parameter_values` without any per
90
107
]
91
108
----
92
109
110
+
[NOTE]
111
+
====
112
+
Passing an empty array in a filter column clears all filter rules and doesn't apply the filters on the column.
113
+
====
114
+
93
115
=== Apply to specific objects
94
116
By default, any specified filter or parameter will bind to any content with an exact match for the column or Parameter name.
95
117
@@ -152,8 +174,11 @@ a|All persisted rules and attributes of the user object are replaced with the se
152
174
153
175
[NOTE]
154
176
====
155
-
In 10.4.0.cl, the `REPLACE` behavior can be achieved by making a `RESET` request followed by an `APPEND` request, then passing only the `APPEND` request token to the browser.
177
+
* By default, the `RESET` option resets all attributes. In 10.6.0.cl and later versions, you can specify the attributes to reset in the `reset_option` attribute. The `reset_option` allows resetting only filter rules, Parameters, or group properties in the token API request.
178
+
* In 10.4.0.cl, the `REPLACE` behavior can be achieved by making a `RESET` request followed by an `APPEND` request, then passing only the `APPEND` request token to the browser.
156
179
====
180
+
181
+
157
182
|=====
158
183
159
184
Filters and parameters must be *persisted* for them to apply to user sessions when using xref:trusted-authentication.adoc#cookie[cookie-based trusted authentication] or scheduled reports.
Copy file name to clipboardExpand all lines: modules/ROOT/pages/api-auth-session.adoc
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,13 @@ When using the REST API through a web browser, ThoughtSpot recommends that you u
15
15
include::{path}/log-in-api.adoc[]
16
16
17
17
A successful login returns a session cookie that can be used in your subsequent API calls. For more information, see xref:api-auth-session.adoc#sessionCookies[Session cookies for subsequent API calls].
18
+
[NOTE]
19
+
====
20
+
* If MFA [beta betaBackground]^Beta^ is enabled on your ThoughtSpot instance then basic authentication with only `username` and `password` will return an error.
21
+
Contact https://community.thoughtspot.com/customers/s/login/?ec=302&startURL=%2Fcustomers%2Fs%2Fcontactsupport[ThoughtSpot Support] for assistance.
22
+
* Embedded users authenticating to ThoughtSpot with basic authentication are recommended to switch to `AuthType.TrustedAuthTokenCookieless`.
23
+
* MFA can be enabled on your instance only if Identity and Access Management (IAMv2) is already enabled.
Copy file name to clipboardExpand all lines: modules/ROOT/pages/api-changelog.adoc
+2-9Lines changed: 2 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,11 +20,9 @@ Allows adding `name` and `description` text strings. When these parameters are d
20
20
* `HostEvent.Pin` +
21
21
Allows adding custom properties for visualization ID, name, and description, Liveboard ID, and Tab ID. When these parameters are defined, the event triggers an action to pin the Answer to the Liveboard specified in the code, without opening the *Pin* modal.
22
22
23
-
////
24
23
For more information, see xref:embed-events.adoc#hostEventParameterization[Host Events] documentation.
25
-
////
26
24
27
-
|[tag greenBackground]#NEW FEATURE# a| Customization settings for Spotter embed
25
+
|[tag greenBackground]#NEW FEATURE# a|
28
26
29
27
New configuration attributes::
30
28
@@ -65,11 +63,9 @@ The following new CSS variables are available for Spotter interface customizatio
65
63
* `--ts-var-spotter-input-background`
66
64
* `--ts-var-spotter-prompt-background`
67
65
68
-
////
69
66
For more information about Spotter customization, see xref:embed-spotter.adoc#SpotterCSS[Customize styles].
In this method, the REST client must send the `username` and `secret_key` in the API request to obtain an authentication token. The `secret_key` is generated if **Trusted authentication** is enabled on your ThoughtSpot instance.
ThoughtSpot now supports multifactor authentication (MFA) for environments using local authentication with Identity and Access Management (IAMv2). If MFA is enabled on your ThoughtSpot instance,
26
+
27
+
* The REST API calls to the API endpoints authenticating to ThoughtSpot with only `username` and `password` will return an error. You will now have an additional authentication factor.
28
+
+
29
+
Contact https://community.thoughtspot.com/customers/s/login/?ec=302&startURL=%2Fcustomers%2Fs%2Fcontactsupport[ThoughtSpot Support] for assistance.
30
+
* Embedded users authenticating to ThoughtSpot with basic authentication are recommended to switch to `AuthType.TrustedAuthTokenCookieless`.
31
+
* Non-embedded users calling REST APIs authenticating to ThoughtSpot with only `username` and `password` will return an error. Contact https://community.thoughtspot.com/customers/s/login/?ec=302&startURL=%2Fcustomers%2Fs%2Fcontactsupport[ThoughtSpot Support] for assistance.
32
+
33
+
For more information, see https://docs.thoughtspot.com/cloud/latest/authentication-local-mfa[Multifactor authentication for customers using local authentication, window=_blank].
34
+
23
35
[#loginTS]
24
36
== Cookie-based authentication
25
37
For cookie-based authentication, make an API call to the `/api/rest/2.0/auth/session/login` endpoint with the `username`, `password`, and other attributes in the request body.
26
38
39
+
[NOTE]
40
+
====
41
+
* If MFA is enabled on your ThoughtSpot instance then authentication with only `username` and `password` will return an error. Contact https://community.thoughtspot.com/customers/s/login/?ec=302&startURL=%2Fcustomers%2Fs%2Fcontactsupport[ThoughtSpot Support] for assistance.
42
+
* MFA can be enabled on your instance only if Identity and Access Management (IAMv2) is already enabled.
43
+
====
44
+
27
45
=== Request parameters
28
46
[width="100%" cols="1,4"]
29
47
[options='header']
@@ -130,6 +148,12 @@ By default, the token obtained from ThoughtSpot is valid for 5 minutes (300 seco
130
148
131
149
You can obtain a token that grants read-only access to a ThoughtSpot metadata object via a `POST` request to the `/api/rest/2.0/auth/token/object` endpoint, or get a token that grants full access to ThoughtSpot via `/api/rest/2.0/auth/token/full`.
132
150
151
+
[NOTE]
152
+
====
153
+
* If MFA is enabled on your ThoughtSpot instance then authentication with only `username` and `password` will return an error. Contact https://community.thoughtspot.com/customers/s/login/?ec=302&startURL=%2Fcustomers%2Fs%2Fcontactsupport[ThoughtSpot Support] for assistance.
154
+
* MFA can be enabled on your instance only if Identity and Access Management (IAMv2) is already enabled.
155
+
====
156
+
133
157
==== Get a token for full access
134
158
135
159
To get an access token that grants full access to ThoughtSpot, send a `POST` request with `username`, `password`, and other attributes to the `/api/rest/2.0/auth/token/full` endpoint:
@@ -539,7 +563,8 @@ If your current implementation is using the beta version of the ABAC and you wan
539
563
|`username`
540
564
|__String__. Username of the ThoughtSpot user. If the user is not available in ThoughtSpot, a new user account will be created and added to ThoughtSpot.
541
565
|`password`
542
-
a|__String__. Password of the user account. If using `secret_key` to generate the token, do not specify the `Password`.
566
+
a|__String__. Password of the user account. If using `secret_key` to generate the token, do not specify the `Password`. +
567
+
If MFA is enabled on your ThoughtSpot instance then API call with only `username` and `password` will return an error.
543
568
|`secret_key`
544
569
|__String__. The secret key string provided by the ThoughtSpot server. ThoughtSpot generates this secret key xref:trusted-authentication.adoc#trusted-auth-enable[when trusted authentication is enabled].
545
570
|`validity_time_in_sec` +
@@ -549,16 +574,28 @@ __Optional__|__Integer__. If the Orgs feature is enabled on your instance, speci
549
574
|`persist_option` a| Indicates if the filter rules and Parameter attributes defined in the API request should persist for user sessions initiated with the token obtained from this API call. The following options are available:
550
575
551
576
* `APPEND` +
552
-
Adds the attributes defined in the API request to the user’s user properties. These properties will be applied to user sessions and for scheduled jobs if any.
577
+
Adds the attributes defined in the API request to the user properties. These properties will be applied to user sessions and for scheduled jobs if any.
553
578
554
579
* `NONE` +
555
-
The security entitlements assigned via attributes will be used only for the user session initiated with the token generated from this API call.
580
+
581
+
Does not update the existing user properties. The attributes defined in the API request will be applied to the token, but do not persist when the token expires.
556
582
557
583
* `REPLACE` +
558
-
Available from 10.5.0.cl. Replaces existing user properties of the user with the attributes defined in this API request.
584
+
Available from 10.5.0.cl. Replaces existing user properties of the user with the new attributes assigned to the token in the API request.
559
585
560
586
* `RESET` +
561
-
Resets the user properties assigned to a user upon token generation.
587
+
Resets the existing user properties upon token generation and adds the new attributes defined in the request. By default, `"persist_option": "RESET"` resets all attributes, unless a specific `reset_option` is defined.
588
+
589
+
|`reset_option` a|__Array of strings__. Allows you to define the type of attributes to reset upon token generation. The following options are available:
590
+
591
+
* `FILTER_RULES` +
592
+
Resets filter attributes.
593
+
594
+
* `PARAMETERS`
595
+
Resets only Parameters.
596
+
597
+
* `GROUPS`
598
+
Resets group assignments
562
599
563
600
|`filter_rules` a|__Array of filter rules__. An array of runtime filter conditions to pass via token. Each rule in the array must include the following information:
0 commit comments