Skip to content

Commit e4ff7e4

Browse files
Merge pull request #249 from thoughtspot/jwt-doc-fixes
review comments
2 parents a14837f + 7f6931c commit e4ff7e4

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

modules/ROOT/pages/abac-user-parameters.adoc

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,15 @@ Binds a single value to any Parameter in any Worksheet or Model by Parameter Nam
3636
[IMPORTANT]
3737
====
3838
[#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.
40-
41-
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.
42-
43-
For the same reasons, end users of an embedded app cannot have *edit* access to any Worksheet or Model using ABAC RLS via tokens.
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.
4442
====
4543

4644
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.
4745

4846
== Token request
49-
The ABAC message to ThoughtSpot is encoded in JSON Web Token (JWT) format. The token can be used as a bearer token for cookieless trusted authentication or REST API access, or as a sign-in token to create a ThoughtSpot session, in which case the ABAC user properties should be *persisted*.
47+
The ABAC message to ThoughtSpot is encoded in JSON Web Token (JWT) format. This token can be used as a bearer token for Cookieless trusted authentication or REST API access. You can also use it as a sign-in token to create a session, in which case, we recommend that the ABAC user properties be *persisted*, to ensure scheduled exports remain secure after the session ends.
5048

5149
[NOTE]
5250
====
@@ -119,6 +117,12 @@ When using a `persist_option` other than `NONE`, the *filter_rules* and *paramet
119117

120118
Persisted values for a user are used by ThoughtSpot for any scheduled reports, as well as when no other token is provided.
121119

120+
[IMPORTANT]
121+
====
122+
* When `persist_option` is set to `NONE`, it only acts as an *override*, with the values tied only to the specific token. The REST API token request with any values where `persist_option` is not `NONE` acts as an "update the user object" API endpoint even if you don't use the token generated from the API request.
123+
* Note that the stored properties of the user are updated when the token request is successful, rather than at the first use of the token.
124+
====
125+
122126
The `persist_option` has the following possible values :
123127

124128
[cols="1,1,2"]
@@ -148,8 +152,6 @@ In 10.4.0.cl, the `REPLACE` behavior can be achieved by making a `RESET` request
148152
====
149153
|=====
150154

151-
When `persist_option` is set to `NONE`, it only acts as an *override*, with the values tied only to the specific token. The REST API token request with any values where `persist_option` is not `NONE` acts as an "update the user object" API endpoint, even if you don't use the token generated from the API request.
152-
153155
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.
154156

155157
[cols="1,1,2"]
@@ -160,6 +162,10 @@ Filters and parameters must be *persisted* for them to apply to user sessions wh
160162
|Cookieless Trusted Authentication
161163
|Attributes assigned to the token override the user's access control properties, without updating the user object.
162164

165+
|`NONE`
166+
|Cookie-based Trusted Authentication
167+
|Attributes assigned to the token will not be considered. The user logs in using a session cookie and the properties from the previous session persist.
168+
163169
|`APPEND` or `REPLACE`
164170
|Cookieless Trusted Authentication
165171
|Attributes assigned to the token override the user's access control properties, but the user object is also updated
@@ -173,8 +179,6 @@ Filters and parameters must be *persisted* for them to apply to user sessions wh
173179
|Token request updates the user object.
174180
|=====
175181

176-
Note that the successful *request* for a token updates the stored property of the user, rather than the first use of the token.
177-
178182
Persisting values opens up use cases for ABAC outside of the cookieless Trusted Authentication pattern: even if users authenticate via SAML, OIDC, or go directly into ThoughtSpot via username and password, an administrator can make a token request with a `persist_option` to write `filter_rules` and `parameter_values` to the user object.
179183

180184
=== Reset persisted values

modules/ROOT/pages/jwt-migration.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ The API returns the configuration override details in the response.
146146
"category": "MAIN",
147147
"dataType": "BOOLEAN",
148148
"description": "Flag to enable honoring of JWT Token where from Beta Endpoint.",
149-
"current": false
149+
"current": true
150150
}
151151
}
152152
}
@@ -174,7 +174,7 @@ Choosing option 1 results in the following behavior:
174174
. As long as `honorJwTokenParametersFromBetaEndpoint` is set to `true`: +
175175
Your users will be logged in with the data security entitlements assigned to the JWT token generated via `/api/rest/2.0/auth/token/full` endpoint, or via the data security rules persisted on the `user` > `user_parameters` object.
176176
. When `honorJwTokenParametersFromBetaEndpoint` is set to `false`: +
177-
Your users will see no data (assuming you secured your Worksheet/Model columns as described in xref:jwt-migration.adoc#_step_3_flag_columns_whose_data_will_be_secured_using_the_jwt_endpoint[Step 3]) until you switch to using the `POST /api/rest/2.0/auth/token/custom` endpoint. Your instance will start using this endpoint soon after the flag setting is switched.
177+
Your users will see no data (assuming you secured your Worksheet/Model columns as described in xref:jwt-migration.adoc#_step_3_flag_columns_whose_data_will_be_secured_using_the_jwt_endpoint[Step 3]) until you switch to using the `POST /api/rest/2.0/auth/token/custom` endpoint. Your instance should start using this endpoint soon after the flag setting is switched.
178178

179179
Option 2::
180180

0 commit comments

Comments
 (0)