Skip to content

Commit 83ed093

Browse files
committed
Deprecate claim in the docs
Signed-off-by: Karakatiza666 <bulakh.96@gmail.com>
1 parent 3764b91 commit 83ed093

File tree

3 files changed

+31
-47
lines changed

3 files changed

+31
-47
lines changed

crates/pipeline-manager/src/auth.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,7 @@ struct OidcClaim {
563563
email: Option<String>,
564564

565565
/// Tenant identifier for single-tenant deployments
566+
/// TODO: Deprecated, remove when noone no longer uses it
566567
tenant: Option<String>,
567568

568569
/// Tenant identifiers for multi-tenant access
@@ -641,6 +642,7 @@ struct AwsCognitoClaim {
641642
username: String,
642643

643644
/// Tenant identifier for single-tenant deployments
645+
/// TODO: Deprecated, remove when noone no longer uses it
644646
tenant: Option<String>,
645647

646648
/// Tenant identifiers for multi-tenant access

docs.feldera.com/docs/get-started/enterprise/authentication/index.mdx

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,12 @@ Users from the same organization share a tenant, derived from the issuer hostnam
3838

3939
### Managed Tenancy
4040

41-
Multiple teams can use the same Feldera instance with complete tenant isolation. Each team's users should be assigned to corresponding tenant(s) with the proper configuration of a dynamic tenant claim in the OIDC Access token. The managed tenant claims are always respected if issued.
41+
Multiple teams can use the same Feldera instance with complete tenant isolation. Each team's users should be assigned to corresponding tenant(s) with the proper configuration of the dynamic `tenants` claim in the OIDC Access token.
4242

43-
The supported, mutually exclusive claims are:
43+
The `tenants` claim authorizes the user to access any of the specified tenants. It is always respected if issued.
44+
`tenants` can contain either a list, or a string of comma-separated tenant names.
4445

45-
- `tenant` - authorizes the user to access a single tenant
46-
- `tenants` - authorizes the user to access any of the tenants in a list.
47-
`tenants` can contain either a list, or a string of comma-separated tenant names.
48-
49-
The user can only interact with the API through a single tenant at a time. When using `tenants` claim, in Web Console the user can switch between the tenants they are authorized for.
46+
The user can only interact with the API through a single tenant at a time. When the user is authorized to multiple tenants, in Web Console they can switch between the current tenant.
5047
For HTTP API use, the current tenant name is specified in the `Feldera-Tenant` header.
5148

5249
## Tenant Assignment use cases
@@ -147,7 +144,7 @@ pipeline-manager ... --auth-provider=generic-oidc --authorized-groups=feldera_en
147144

148145
### Shared access within a user group (managed tenancy)
149146

150-
Tenant assignment via `tenant` or `tenants` claims in JWT configured in your OIDC provider.
147+
Tenant assignment via `tenants` claim in JWT configured in your OIDC provider.
151148

152149
**Helm Configuration:**
153150
```yaml
@@ -196,16 +193,6 @@ Direct pipeline-manager configuration:
196193
pipeline-manager ... --auth-provider=generic-oidc --individual-tenant=true --authorized-groups=feldera_engineering,feldera_qa
197194
```
198195

199-
## Tenant Resolution Priority
200-
201-
Feldera resolves tenant assignment using the following priority order:
202-
203-
1. **`tenant` claim** - Explicit tenant assignment via OIDC provider
204-
2. **Issuer domain `iss` claim** (when `--issuer-tenant=true`)
205-
3. **User `sub` claim** (when `--individual-tenant=true`)
206-
207-
If no valid tenant is found and `--individual-tenant=false` the user will be denied authorization.
208-
209196
## Configuration options
210197

211198
### Mapping Pipeline Manager Options to Helm Chart Values
@@ -281,6 +268,16 @@ AWS_COGNITO_LOGIN_URL=https://...
281268
AWS_COGNITO_LOGOUT_URL=https://...
282269
```
283270

271+
## Tenant Resolution Priority
272+
273+
Feldera resolves tenant assignment using the following priority order:
274+
275+
1. **`tenants` claim** - Explicit tenant assignment via OIDC provider
276+
2. **Issuer domain `iss` claim** (when `--issuer-tenant=true`)
277+
3. **User `sub` claim** (when `--individual-tenant=true`)
278+
279+
If no valid tenant is found and `--individual-tenant=false` the user will be denied authorization.
280+
284281
## Provider-Specific Setup
285282

286283
Feldera supports the following authentication providers:

docs.feldera.com/docs/get-started/enterprise/authentication/okta-sso.md

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -84,23 +84,21 @@ You can take advantage of the supported authorization models by properly configu
8484

8585
Feldera supports multiple authorization use-cases through [managed tenancy](index.mdx#Managed%20Tenancy). You can choose between the supported tenant claims to implement the appropriate authorization scenario. Navigate to the **Claims** tab in the Custom Authorization Server to configure one of:
8686

87-
### `tenant` claim
87+
### `tenants` claim
8888

89-
Example configuration for the `tenant` claim that uses a randomly selected user group name prefixed with "feldera_" as the tenant name:
89+
Example configuration for the `tenants` claim that assigns a single (randomly selected) user group name prefixed with "feldera_" as the tenant name:
9090

91-
- **Name**: `tenant`
91+
- **Name**: `tenants`
9292
- **Include in token type**: `Access Token`
9393
- **Value type**: `Expression`
94-
- **Value**: `user.getGroups({"group.profile.name": "feldera_", "operator": "STARTS_WITH"})[0].name`
94+
- **Value**: `{user.getGroups({"group.profile.name": "feldera_", "operator": "STARTS_WITH"})[0].name}`
9595
- **Include in**: `Any scope`
9696

97-
When using this claim, each user should only have one user group assigned that satisfies the condition in the expression value.
98-
99-
### `tenants` claim
97+
In the above example each user should only have one user group assigned to them that satisfies the condition in the expression value.
10098

10199
Example configuration for the `tenants` claim that uses all user groups prefixed with "feldera_" as the list of tenants:
102100

103-
- **Name**: `tenant`
101+
- **Name**: `tenants`
104102
- **Include in token type**: `Access Token`
105103
- **Value type**: `Expression`
106104
- **Value**: `user.getGroups({"group.profile.name": "feldera_", "operator": "STARTS_WITH"}).![name]`
@@ -117,33 +115,20 @@ Example configuration for the `groups` claim that communicates all groups that t
117115
- **Value**: Select appropriate group filter or use all-inclusive regex `.*`
118116
- **Include in**: `Any scope`
119117

120-
Consult [the relevant documentation](index.mdx#) for the corresponding Feldera configuration.
121-
122118
## Configure Feldera
123119

124-
### Helm Chart Configuration
120+
Consult the documentation for [configuring the authentication](index.mdx#Configuration%20options) and [examples for common use-cases](index.mdx#Tenant%20Assignment%20use%20cases) to configure Feldera to authorize users properly.
125121

126-
Configure your Feldera Helm chart (`values.yaml`) with Okta settings:
122+
One example of the Feldera Helm chart configuration for managed tenancy with Okta:
127123

128124
```yaml
129125
auth:
130126
enabled: true
131127
provider: "okta"
132-
clientId: "<your-client-id>"
133-
issuer: "https://<your-okta-domain>/oauth2/<custom-auth-server-id>"
134-
135-
# Tenant assignment strategy
136-
pipelineManager:
137-
extraArgs:
138-
- "--auth-provider=generic-oidc"
139-
- "--issuer-tenant=true" # Enable organization tenancy
140-
- "--individual-tenant=false" # Disable individual tenancy
141-
```
142-
143-
Replace the placeholders:
128+
clientId: "0oa1a2b3c4d5e6f7g8h9"
129+
issuer: "https://dev-12345.okta.com/oauth2/aus1a2b3c4d5e6f7g8h9"
144130

145-
| Placeholder | Description | Example |
146-
|------------|-------------|---------|
147-
| `<your-okta-domain>` | Your Okta organization domain | `dev-12345.okta.com` |
148-
| `<your-client-id>` | Application client ID from Okta | `0oa1a2b3c4d5e6f7g8h9` |
149-
| `<auth-server-id>` | Custom authorization server ID (optional) | `aus1a2b3c4d5e6f7g8h9` |
131+
authorization:
132+
individualTenant: false
133+
authAudience: "0oa1a2b3c4d5e6f7g8h9"
134+
```

0 commit comments

Comments
 (0)