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
@@ -14,13 +14,15 @@ Feldera API supports two authentication types:
14
14
15
15
## Authorization model
16
16
17
-
In Feldera, a tenant is a scope of shared access to platform data that can be assigned to one or more users.
18
-
The users of one tenant cannot access the data in another tenant.
19
-
Interaction with Feldera is only performed with a tenant assigned, so authorization to the platform implies assigning tenant to the user.
17
+
**Feldera Tenant**is a scope of access to Feldera pipelines for their management and configuration. The same tenant can be assigned to multiple users for shared access. The ingress and egress business data flow, which is configured through connectors, has it's own connector-dependent authentication and is not subject to tenant-based authorization.
18
+
19
+
Interaction with Feldera is always authorized through a tenant, so access to the platform implies assigning tenant to the user.
20
20
For OIDC authentication, the tenant is derived from claims in the OIDC Access token.
21
21
For API key authentication, the key is associated with the tenant through which the key was generated.
22
+
We support multiple authorization use-cases through strategies to assign tenant to Feldera API and clients' users.
22
23
23
-
As an orthogonal feature, the authorized_groups startup parameter can be used to limit access to the users who are a member of at least one of the groups in this list. The membership is determined based on the `groups` claim of an OIDC Access token.
24
+
As an orthogonal feature, the authorized-groups startup parameter can be used to limit access to the users who are a member of at least one of the groups in this list. The membership is determined based on the `groups` claim of an OIDC Access token.
25
+
Users must belong to at least one of the specified groups to access Feldera. If `--authorized-groups` is not specified or empty, no group restrictions apply.
24
26
25
27
## Tenant Assignment Strategies
26
28
@@ -34,65 +36,164 @@ Each authenticated user gets their own private tenant based on the `sub` claim o
34
36
35
37
Users from the same organization share a tenant, derived from the issuer hostname of the authentication token. Does not require authentication provider configuration. Configured with --issuer-tenant startup flag.
36
38
37
-
### User Group Tenancy
39
+
### Managed Tenancy
40
+
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.
42
+
43
+
The supported, mutually exclusive claims are:
38
44
39
-
Multiple teams can use the same Feldera instance with complete tenant isolation. Each team's users should be assigned to a corresponding tenant with the proper configuration of a dynamic tenant claim. Requires configuring a custom claim in OIDC Access token. It is always enabled
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.
50
+
For HTTP API use, the current tenant name is specified in the `Feldera-Tenant` header.
40
51
41
52
## Tenant Assignment use cases
42
53
43
-
Configure tenant assignment behavior using a combination of the following strategies:
54
+
Listed below are example configurations for common authorization use-cases achieved through a combination of tenant assignment strategy and whitelisted group access.
44
55
45
56
### Development environment - no authentication
46
57
58
+
**Helm Configuration:**
59
+
```yaml
60
+
auth:
61
+
enabled: false
62
+
```
63
+
64
+
Direct pipeline-manager configuration:
65
+
47
66
```bash
48
-
# Default settings - each user gets individual tenant
49
67
pipeline-manager ... --auth-provider=none
50
68
```
51
69
52
-
### Individual tenancy
70
+
### Individual access
71
+
72
+
Every user gets their individual tenant based on their `sub` claim.
@@ -105,6 +206,81 @@ Feldera resolves tenant assignment using the following priority order:
105
206
106
207
If no valid tenant is found and `--individual-tenant=false` the user will be denied authorization.
107
208
209
+
## Configuration options
210
+
211
+
### Mapping Pipeline Manager Options to Helm Chart Values
212
+
213
+
Feldera's authentication and authorization are configured through pipeline-manager command-line options. When deploying via Helm, these options map to values in your `values.yaml` file.
214
+
215
+
#### Complete Configuration Template
216
+
217
+
Below is a comprehensive template showing all available authentication and authorization options:
0 commit comments