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: docs/authentication/oidc.md
+16-1Lines changed: 16 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,18 +16,19 @@ Dashy also supports using a general [OIDC compatible](https://openid.net/connect
16
16
```yaml
17
17
appConfig:
18
18
disableConfigurationForNonAdmin: true # Hide the config editor from non-admins (recommended)
19
-
enableGuestAccess: false # Optional: view the dashboard read-only without signing in
20
19
enableServiceWorker: true # Optional: enables the PWA and offline support
21
20
enableAuthProxyCompat: true # Recover the PWA after a session expires (needs the service worker)
22
21
auth:
23
22
enableOidc: true # Turn OIDC on
23
+
enableGuestAccess: false # Optional: view the dashboard read-only without signing in
24
24
oidc:
25
25
clientId: dashy # Client ID from your provider
26
26
endpoint: https://auth.example.com/application/o/dashy/ # The issuer URL, not the .well-known one
27
27
scope: openid profile email groups # Scopes to request (groups for adminGroup, roles for adminRole)
28
28
adminGroup: dashy-admins # Members of this group are admins
29
29
adminRole: dashy-admin # Or grant admin by role instead
30
30
enableSilentRenew: true # Refresh the session in the background before it expires
31
+
# allowedIssuers: [] # Only for multi-tenant providers to override discovery document
31
32
```
32
33
33
34
Because Dashy is a SPA, a [public client](https://datatracker.ietf.org/doc/html/rfc6749#section-2.1) registration with PKCE is needed.
@@ -46,6 +47,20 @@ The claim has to be in the id_token, not just the access token. Most providers i
46
47
47
48
If your admins aren't being picked up, decode the id_token (paste it into [jwt.io](https://jwt.io)) and check the claim is there.
48
49
50
+
## Multi-tenant providers
51
+
52
+
With a multi-tenant provider (e.g. Microsoft Entra's `organizations` / `common` endpoints), the issuer in the token doesn't match the one in the discovery document, so verification fails. Set `allowedIssuers` to the issuer URL(s) you want to accept:
When set, tokens are accepted only if their `iss` matches one of these (signature, audience and expiry are still checked). Leave it unset for normal single-tenant providers.
63
+
49
64
## Guest access
50
65
51
66
Set `enableGuestAccess: true` to let people view the dashboard read-only without signing in. They get the full config but can't save anything, and sections or items marked `hideForGuests` stay hidden. With it off (the default), anyone who isn't signed in is sent to the login flow.
Copy file name to clipboardExpand all lines: docs/configuring.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -220,6 +220,7 @@ For more info, see the **[Authentication Docs](/docs/authentication)**
220
220
**`adminGroup`** | `string` | _Optional_ | The group that will be considered as admin.
221
221
**`scope`** | `string` | Required | The scope(s) to request from the OIDC provider
222
222
**`enableSilentRenew`** | `boolean` | _Optional_ | If set to `true`, your session is silently renewed in the background before it expires (only works for providers which support the `offline_access` scope)
223
+
**`allowedIssuers`** | `array` | _Optional_ | List of issuer URLs to accept tokens from. Needed for multi-tenant providers (e.g. Microsoft Entra) where the token issuer differs from the configured `endpoint`. If unset, the issuer from the discovery document is used
0 commit comments