Skip to content

Commit f79d993

Browse files
committed
Update documentation
1 parent 790b63d commit f79d993

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

docs/authentication/oidc.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,19 @@ Dashy also supports using a general [OIDC compatible](https://openid.net/connect
1616
```yaml
1717
appConfig:
1818
disableConfigurationForNonAdmin: true # Hide the config editor from non-admins (recommended)
19-
enableGuestAccess: false # Optional: view the dashboard read-only without signing in
2019
enableServiceWorker: true # Optional: enables the PWA and offline support
2120
enableAuthProxyCompat: true # Recover the PWA after a session expires (needs the service worker)
2221
auth:
2322
enableOidc: true # Turn OIDC on
23+
enableGuestAccess: false # Optional: view the dashboard read-only without signing in
2424
oidc:
2525
clientId: dashy # Client ID from your provider
2626
endpoint: https://auth.example.com/application/o/dashy/ # The issuer URL, not the .well-known one
2727
scope: openid profile email groups # Scopes to request (groups for adminGroup, roles for adminRole)
2828
adminGroup: dashy-admins # Members of this group are admins
2929
adminRole: dashy-admin # Or grant admin by role instead
3030
enableSilentRenew: true # Refresh the session in the background before it expires
31+
# allowedIssuers: [] # Only for multi-tenant providers to override discovery document
3132
```
3233

3334
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
4647

4748
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.
4849

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:
53+
54+
```yaml
55+
oidc:
56+
clientId: dashy
57+
endpoint: 'https://login.microsoftonline.com/organizations/v2.0/'
58+
allowedIssuers:
59+
- 'https://login.microsoftonline.com/<your-tenant-id>/v2.0'
60+
```
61+
62+
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+
4964
## Guest access
5065

5166
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.

docs/configuring.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,7 @@ For more info, see the **[Authentication Docs](/docs/authentication)**
220220
**`adminGroup`** | `string` | _Optional_ | The group that will be considered as admin.
221221
**`scope`** | `string` | Required | The scope(s) to request from the OIDC provider
222222
**`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
223224

224225
****[⬆️ Back to Top](#)****
225226

0 commit comments

Comments
 (0)