diff --git a/docs/authentication.md b/docs/authentication.md index 8a74ce84..4b8e0e67 100644 --- a/docs/authentication.md +++ b/docs/authentication.md @@ -146,6 +146,8 @@ appConfig: clientId: 'dashy' ``` +Note that if you are using Keycloak V 17 or older, you will also need to set `legacySupport: true` (also under `appConfig.auth.keycloak`). This is because the API endpoint was updated in later versions. + ### 4. Add groups and roles (Optional) Keycloak allows you to assign users roles and groups. You can use these values to configure who can access various sections in Dashy. Keycloak server administration and configuration is a deep topic; please refer to the [server admin guide](https://www.keycloak.org/docs/latest/server_admin/index.html#assigning-permissions-and-access-using-roles-and-groups) to see details about creating and assigning roles and groups. diff --git a/docs/configuring.md b/docs/configuring.md index e09bc4a6..2ef8268c 100644 --- a/docs/configuring.md +++ b/docs/configuring.md @@ -163,6 +163,7 @@ For more info, see the **[Authentication Docs](/docs/authentication.md)** **`serverUrl`** | `string` | Required | The URL (or URL/ IP + Port) where your keycloak server is running **`realm`** | `string` | Required | The name of the realm (must already be created) that you want to use **`clientId`** | `string` | Required | The Client ID of the client you created for use with Dashy +**`legacySupport`** | `boolean` | _Optional_ | If using Keycloak 17 or older, then set this to `true` **[⬆️ Back to Top](#configuring)** diff --git a/src/utils/ConfigSchema.json b/src/utils/ConfigSchema.json index 393b12b3..62f1caf9 100644 --- a/src/utils/ConfigSchema.json +++ b/src/utils/ConfigSchema.json @@ -475,6 +475,11 @@ "title": "Client ID", "type": "string", "description": "The Client ID of the client you created for use with Dashy" + }, + "legacySupport": { + "title": "Legacy Support", + "type": "boolean", + "description": "If using Keycloak 17 or older, then set this to true" } } } diff --git a/src/utils/KeycloakAuth.js b/src/utils/KeycloakAuth.js index 3fcb7f5f..3903c780 100644 --- a/src/utils/KeycloakAuth.js +++ b/src/utils/KeycloakAuth.js @@ -12,9 +12,12 @@ const getAppConfig = () => { class KeycloakAuth { constructor() { const { auth } = getAppConfig(); - const { serverUrl, realm, clientId } = auth.keycloak; + const { + serverUrl, realm, clientId, legacySupport, + } = auth.keycloak; + const url = legacySupport ? `${serverUrl}/auth` : serverUrl; const initOptions = { - url: `${serverUrl}`, realm, clientId, onLoad: 'login-required', + url, realm, clientId, onLoad: 'login-required', }; this.keycloakClient = Keycloak(initOptions);