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/console/pages/config/connect-to-redpanda.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
= Configure a Connection to a Redpanda Cluster
1
+
= Configure Redpanda Console to Connect to a Redpanda Cluster
2
2
:description: This topic provides instructions on configuring Redpanda Console to connect to a Redpanda cluster. The configuration ensures that Redpanda Console can communicate with your Redpanda brokers.
3
3
4
4
Redpanda Console connects to your Redpanda cluster using dedicated configuration blocks for the Kafka API, Schema Registry API, and Admin API. Each connection serves a different purpose:
Copy file name to clipboardExpand all lines: modules/console/pages/config/security/authentication.adoc
+9-21Lines changed: 9 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
= Authentication
1
+
= Authentication in Redpanda Console
2
2
:description: Authentication in Redpanda Console enables users to log in and optionally forward their credentials to the connected Redpanda cluster, ensuring all API requests are executed under the user's identity.
Redpanda Console can authenticate to Redpanda APIs in two ways:
37
37
38
38
* *User impersonation:* Uses the same credentials you log in with to authenticate API requests. This ensures accurate audit logs and unified identity enforcement.
39
-
* *Static service account credentials:* Uses preconfigured credentials defined in the Redpanda Console configuration file. Useful when impersonation is disabled or RBAC needs to be separated from Redpanda identities.
39
+
* *Static service account credentials:* Uses preconfigured credentials defined in the Redpanda Console configuration file. Useful when impersonation is disabled or glossterm:RBAC[] needs to be separated from Redpanda identities.
40
40
41
41
Upon login, Redpanda Console generates a secure session with a JSON Web Token (JWT), signed by the `authentication.jwtSigningKey`. The JWT can be stored as a secure cookie and is used to authenticate API requests.
<1> Required. Secret key for signing JWTs. Must be at least 32 characters. Store securely. You can also use the `AUTHENTICATION_JWTSIGNINGKEY`environment variable.
121
+
<1> Required. Secret key for signing JWTs. Must be at least 32 characters. Store securely. You can also use the `AUTHENTICATION_JWTSIGNINGKEY`environment variable.
121
122
<2> Recommended in production. Marks cookies as secure.
122
123
<3> Required. Enables OIDC authentication.
123
124
<4> Required. URL of the OIDC identity provider (IdP).
124
125
<5> Required. The client ID from your IdP.
125
126
<6> Required. The client secret from your IdP. You can also use the `AUTHENTICATION_OIDC_CLIENTSECRET` environment variable.
126
127
<7> Requested scopes. Some IdPs such as Azure Entra ID require additional scopes to request OAuth 2.0-compliant tokens.
127
-
<8> Optional. TLS configuration for secure connections to the IdP. Configure TLS only if you require mTLS or if you use a self-signed certificate for your identity provider.
128
-
<9> Optional. Redirect URI registered with the IdP. This URL must be registered with your IdP and must point to the `/auth/callbacks/oidc` path in Redpanda Console. If this URL is not configured, Redpanda Console constructs the URL by using the base URL from the request and adding the `/auth/callbacks/oidc` path. You may want to configure this URL if you use xref:console:config/http-path-rewrites.adoc[HTTP path rewrites].
129
-
<10> Optional. Controls whether a refresh token is requested. A value of `offline` (default) requests a refresh token for long-lived sessions. Set it to `online` if you don't want a refresh token.
130
-
<11> Optional. Determines how the authorization prompt is displayed. Use `consent` (default) to force the consent screen to appear even if the user has previously authorized the application. Alternatives include `none` (no prompt) or `select_account` to allow the user to choose an account. Some IdPs require `consent` to issue a refresh token.
128
+
<8> Optional. TLS configuration for secure connections to the IdP. Configure TLS only if you require mTLS or use a self-signed certificate.
129
+
<9> Optional. Redirect URI registered with the IdP. This URI must point to the `/auth/callbacks/oidc` path in Redpanda Console. If not set, Console constructs the URL from the request. Configure this option explicitly if you're using xref:console:config/http-path-rewrites.adoc[HTTP path rewrites].
130
+
<10> Optional. Controls whether a refresh token is requested. `offline` (default) requests a refresh token. Set to `online` to disable refresh token requests.
131
+
<11> Optional. Determines how the authorization prompt appears. Use `consent` (default) to force re-consent. Other options include `none` and `select_account`. Some IdPs require `consent` to issue a refresh token.
132
+
<12> Optional. Extracts and optionally transforms a claim from the OIDC token to use as the user's identity in Redpanda Console role bindings. The default is `"$.sub"`, which uses the `sub` (subject) claim from the token. This value is then compared to the `name` field in your `authorization.roleBindings` configuration. For full syntax and transformation examples, see xref:console:config/security/authorization.adoc#_transform_identities_with_principal_mappings[Transform identities with principal mappings].
131
133
132
134
==== Enable static token mode
133
135
@@ -404,20 +406,6 @@ authorization:
404
406
When impersonation is disabled, Redpanda Console executes Admin API requests as the service identity represented in the token. This is typically the `sub` from the client credentials flow, and must match an ACL or RBAC binding.
405
407
====
406
408
407
-
== Authorization overview
408
-
409
-
Authentication allows users to log in, but authorization determines what they can do once authenticated.
410
-
411
-
Redpanda Console supports role-based access control (RBAC) through two modes:
412
-
413
-
- **User impersonation enabled**: Redpanda enforces authorization using its internal ACL and RBAC rules. The identity of the logged-in user is forwarded to the Kafka API, Admin API, and Schema Registry.
414
-
- **User impersonation disabled**: Redpanda Console enforces access using `roleBindings` in the Redpanda Console configuration file. All API requests are made using a static service account.
415
-
416
-
[IMPORTANT]
417
-
====
418
-
Even with a valid login, users must still be granted permissions in Redpanda or in `roleBindings` to access resources. A Redpanda Console role (such as Admin) does not automatically grant permissions in Redpanda.
419
-
====
420
-
421
409
== Next steps
422
410
423
411
- xref:console:config/security/authorization.adoc[Configure role-based access control (RBAC) in Redpanda Console]
Copy file name to clipboardExpand all lines: modules/console/pages/config/security/authorization.adoc
+67-4Lines changed: 67 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
= Authorization
1
+
= Authorization in Redpanda Console
2
2
:description: Redpanda Console supports role-based access control (RBAC) to restrict system access to authorized users. This page is intended for cluster administrators who manage Redpanda Console access and need to configure UI-based authorization.
Authentication allows users to log in, but authorization determines what they can do once authenticated.
12
12
13
13
Redpanda Console supports two authorization modes, depending on whether *user impersonation* is enabled in the authentication configuration:
14
14
@@ -20,7 +20,7 @@ Redpanda Console supports two authorization modes, depending on whether *user im
20
20
| Redpanda Console evaluates permissions using role bindings defined in its configuration. Redpanda sees all requests as coming from a static service account.
21
21
22
22
| Impersonation enabled (`impersonateUser: true`)
23
-
| Redpanda evaluates permissions using its internal RBAC and ACLs. Any role bindings in the Redpanda Console configuration are ignored.
23
+
| Redpanda evaluates permissions using its internal glossterm:RBAC[] and ACLs. Any role bindings in the Redpanda Console configuration are ignored.
24
24
|===
25
25
26
26
For more information about authentication options, see the xref:console:config/security/authentication.adoc[Redpanda Console authentication].
@@ -76,6 +76,8 @@ Use this mode to allow users to log in, while still having all API calls execute
76
76
authentication:
77
77
basic:
78
78
enabled: true
79
+
oidc:
80
+
enabled: true
79
81
80
82
kafka:
81
83
sasl:
@@ -101,7 +103,7 @@ Roles in Redpanda Console determine which UI features users can access. These ro
101
103
.Do you have user impersonation enabled?
102
104
[%collapsible]
103
105
====
104
-
Redpanda Console roles are not used when user impersonation is enabled for an API. When impersonation is enabled, the user's identity is forwarded to Redpanda, which then authorizes access based on RBAC and ACL rules.
106
+
Redpanda Console roles are not used when user impersonation is enabled for an API. When impersonation is enabled, the user's identity is forwarded to Redpanda, which then authorizes access based on RBAC and ACL rules.
105
107
106
108
To successfully log in and access the UI, users must have valid Redpanda credentials and ACLs that permit access to the Kafka API.
107
109
@@ -229,6 +231,67 @@ authorization:
229
231
230
232
All APIs must be accessible using a superuser principal. If the service account lacks superuser status, Redpanda Console may not be able to fetch cluster status, access the Admin API, or interact with the Schema Registry.
231
233
234
+
=== Transform identities with principal mappings
235
+
236
+
If you use OIDC login, the identity in the JWT token is extracted using a JSONPath expression. By default, this expression is `$.sub`, which means the value of the `sub` claim is used as the username. You can override this expression using the `principalMapping` option to transform or extract a different claim to match the `name` values in your `roleBindings` configuration.
237
+
238
+
To keep authorization consistent between Console and Redpanda, set `principalMapping` to match Redpanda's cluster configuration value for xref:reference:properties/cluster-properties.adoc#oidc_principal_mapping[`oidc_principal_mapping`].
* Uses a regular expression to capture the username part
258
+
* Replaces the value with the captured group `$1`
259
+
* Converts the result to lowercase (`L` modifier)
260
+
261
+
As a result, the user identity becomes `matt` when the email is `matt@example.com`.
262
+
263
+
You can then define role bindings like this:
264
+
265
+
[,yaml]
266
+
----
267
+
authorization:
268
+
roleBindings:
269
+
- roleName: admin
270
+
users:
271
+
- loginType: oidc
272
+
name: matt
273
+
----
274
+
275
+
==== Match syntax and modifiers
276
+
277
+
The `principalMapping` syntax uses this format:
278
+
279
+
----
280
+
<jsonpath>/<regex>/<replacement>/<modifiers>
281
+
----
282
+
283
+
* `jsonpath`: Path to the claim field in the token (such as `$.email`)
284
+
* `regex`: A regular expression to extract part of the claim
285
+
* `replacement`: A replacement string using a captured group (such as `$1`)
286
+
* `modifiers`: Optional flags, such as:
287
+
- `L` — convert to lowercase
288
+
- `U` — convert to uppercase
289
+
290
+
[NOTE]
291
+
====
292
+
If `principalMapping` is not set, Redpanda Console defaults to using the `sub` claim as the user identity.
293
+
====
294
+
232
295
== Multiple roles and duplicate bindings
233
296
234
297
You can assign multiple roles to the same user through role bindings. In this case, the user receives the union of all permissions associated with those roles.
:description: To secure Redpanda Console using TLS, you can let Redpanda Console handle TLS termination or you can offload it to an upstream component, such as a reverse proxy or a Cloud HTTPS LoadBalancer.
Copy file name to clipboardExpand all lines: modules/console/pages/config/topic-documentation.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
= Enable Topic Documentation
1
+
= Enable Topic Documentation in Redpanda Console
2
2
:description: Embed your Kafka topic documentation into the Redpanda Console UI by linking a Git repository that contains the topic documentation files.
0 commit comments