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
Instead of relying on a third party service like OAtuh2 Proxy for
authenticating users, we are now supporting authentication of users
directly within kobs.
Users can be authenticated using a static list of email and password
combinations or via OIDC.
Copy file name to clipboardexpand all lines: CHANGELOG.md
+1
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,7 @@ NOTE: As semantic versioning states all 0.y.z releases can contain breaking chan
20
20
-[#399](https://github.com/kobsio/kobs/pull/399): [github] Add new `usernotifications` panel and allow users to use the plugin within the Notifications.
21
21
-[#401](https://github.com/kobsio/kobs/pull/401): [app] Add integrations for Kubernetes Resource, which allows administrators to define a set of default dashboards, which are added to each resource.
22
22
-[#402](https://github.com/kobsio/kobs/pull/402): [app] Add `mongodb` driver as alternative to the existing `bolt` driver.
23
+
-[#406](https://github.com/kobsio/kobs/pull/406): [app]:warning:_Breaking change:_:warning: Implement authentication, so that no third party service like [OAuth2-Proxy](https://oauth2-proxy.github.io/oauth2-proxy/) is required to grant users access to kobs.
23
24
-[#407](https://github.com/kobsio/kobs/pull/407): [sql] Add `singlestats` chart to render single values returned by a query.
24
25
-[#411](https://github.com/kobsio/kobs/pull/411): [sql] Add `yAxisGroup` property for charts.
Copy file name to clipboardexpand all lines: README.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ kobs brings your metrics, logs, traces and Kubernetes into one place, to provide
21
21
-**Prometheus:** Access your Prometheus directly in kobs next to your Kubernetes resources.
22
22
-**Elasticsearch and Jaeger:** View the logs from Elasticsearch and traces from Jaeger, where it matters.
23
23
-**Istio:** Get the topology graph from Kiali for your Istio service mesh directly in kobs.
24
-
-**Authentication and Authorization:** Manage the access to kobs via [OAuth2-Proxy](https://oauth2-proxy.github.io/oauth2-proxy/) and provide your developers the permissions they need via Teams and Users CRs.
24
+
-**Authentication and Authorization:** Manage the access to kobs via OIDC and provide your developers the permissions they need via Teams and Users CRs.
hubCmd.PersistentFlags().DurationVar(&hubWatcherInterval, "hub.watcher.interval", defaultHubWatcherInterval, "The interval for the watcher to sync the satellite configuration.")
250
222
hubCmd.PersistentFlags().Int64Var(&hubWatcherWorker, "hub.watcher.worker", defaultHubWatcherWorker, "The number of parallel sync processes for the watcher.")
251
223
hubCmd.PersistentFlags().StringVar(&metricsAddress, "metrics.address", defaultMetricsAddress, "The address, where the metrics server is listen on.")
252
-
hubCmd.PersistentFlags().BoolVar(&authEnabled, "auth.enabled", false, "Enable the authentication and authorization middleware.")
253
-
hubCmd.PersistentFlags().StringVar(&authHeaderUser, "auth.header.user", defaultAuthHeaderUser, "The header, which contains the user id.")
254
-
hubCmd.PersistentFlags().StringVar(&authHeaderTeams, "auth.header.teams", defaultAuthHeaderTeams, "The header, which contains the team ids.")
255
-
hubCmd.PersistentFlags().StringVar(&authLogoutRedirect, "auth.logout.redirect", defaultAuthLogoutRedirect, "The redirect url which should be used, when the user clicks on the logout button.")
256
-
hubCmd.PersistentFlags().StringVar(&authSessionToken, "auth.session.token", defaultAuthSessionToken, "The token to encrypt the session cookie.")
257
-
hubCmd.PersistentFlags().DurationVar(&authSessionInterval, "auth.session.interval", defaultAuthSessionInterval, "The interval for how long a session is valid.")
kobs supports the authentication and authorization of users. Users can be authenticated using a static list of configured email and password combinations or using OIDC. Authorization is handled via the permissions set in a [User CR](../../resources/users.md) or a [Team CR](../../resources/teams.md). An authenticated user is connected a corresponding User CR and Team CR via the email and groups claim from the OIDC flow.
4
+
5
+
```yaml
6
+
auth:
7
+
# Enable authentication and authorization of of users.
8
+
enabled: true
9
+
# OIDC configuration for kobs. OIDC can be used next to the static user list to authenticate and authorize users. The OIDC provider must be enabled explizit. If the configuration is wrong kobs will crash during the startup process.
10
+
oidc:
11
+
enabled: true
12
+
# The issuer (e.g. "https://accounts.google.com"), client id and client secret for your OIDC provider.
13
+
issuer:
14
+
clientID:
15
+
clientSecret:
16
+
# The url where the OIDC provider redirects a user after login. Must be the URL where your kobs instance is running at.
17
+
redirectURL:
18
+
# A random string to mitigate CSRF attacks.
19
+
state:
20
+
# The scopes for the OIDC provider. By default we need the "openid", "profile", "email", "groups" scope. If your OIDC provider (e.g. Google) does not support the "groups" scope you can also omit it.
21
+
# The "groups" scope is needed to connect a user with a team, so that you can set the permissions of users in a team and not for each single user.
22
+
# If you are using Google and want to use Google Groups to connect your users with teams, you can use a tool like Dex (https://dexidp.io) to get the groups of a user.
23
+
scopes: ["openid", "profile", "email", "groups"]
24
+
# Session configuration for kobs.
25
+
session:
26
+
# The token must be a random string which is used to sign the JWT token, which is generated when a user is authenticated.
27
+
token:
28
+
# The interval defines the lifetime of the generated token. When the token is expired the user must authenticate again.
29
+
interval: 48m
30
+
# A static list of users which can be access kobs. Each user must have a email address and password.
31
+
# ATTENTION: Substitution of environment variables is not supported for the user configuration. Instead you can directly use the hashed password within the configuration.
32
+
users:
33
+
- email:
34
+
# The hashed password of the user. The password can be generated using htpasswd (https://httpd.apache.org/docs/2.4/programs/htpasswd.html).
35
+
# htpasswd -nBC 10 "" | tr -d ':\n'
36
+
# That command will prompt you for a password and output the hashed password, which will look something like:
0 commit comments