Keycloak
Leer hoe je LibreChat configureert om Keycloak te gebruiken voor gebruikersauthenticatie.
- Toegang tot Keycloak Admin Console:
- Open de Keycloak Admin Console in uw webbrowser. Deze is meestal te vinden op een URL zoals
http://localhost:8080/auth/admin/.
- Maak een Realm aan (indien nodig):
- Als je nog geen realm voor je applicatie hebt, maak er dan een aan. Klik op 'Add Realm' en geef deze een naam.
- Maak een Client aan:
- Klik binnen jouw realm op 'Clients' en vervolgens op 'Create'.
- Voer een client ID in en selecteer 'openid-connect' als het Client Protocol.
- Stel 'Client Authentication' in op 'On'.
- Voer bij 'Valid Redirect URIs'
http://localhost:3080/oauth/openid/callbackin, of de juiste URI voor jouw applicatie.
- Configure Client:
- Nadat je de client hebt aangemaakt, word je doorverwezen naar de instellingenpagina ervan.
- Noteer de 'Client ID' en 'Secret' van het tabblad 'Credentials' – deze heb je nodig voor je applicatie.
- Rollen toevoegen (Optioneel): Als je de toegang wilt beperken tot gebruikers met specifieke rollen, kun je rollen definiëren in Keycloak en deze toewijzen aan gebruikers.
- Ga naar het tabblad 'Roles' in je client of realm (afhankelijk van waar je de rollen wilt definiëren).
- Maak rollen aan die overeenkomen met de waarde(n) die je hebt in
OPENID_REQUIRED_ROLE.
- Wijs rollen toe aan gebruikers (optioneel):
- Ga naar 'Users', selecteer een gebruiker en ga naar het tabblad 'Role Mappings'.
- Wijs ten minste een van de rollen die zijn opgegeven in
OPENID_REQUIRED_ROLEtoe aan de gebruiker.
- Pad naar rollenlijst binnen token ophalen (Optioneel):
- Decodeer je jwtToken van de OpenID-provider en bepaal het pad voor de rollenlijst binnen het access token. Als je bijvoorbeeld Keycloak gebruikt, is het pad
realm_access.roles. - Zet dit pad in de
OPENID_REQUIRED_ROLE_PARAMETER_PATHvariabele in het.envbestand. - Met de parameter
OPENID_REQUIRED_ROLE_TOKEN_KINDkun je opgeven welk tokentype je wilt gebruiken. Mogelijke waarden zijnaccessenid.
- Update je projectconfiguratie:
- Open het
.envbestand in je projectmap en voeg de volgende variabelen toe:OPENID_ISSUER=http://localhost:8080/realms/[YourRealmName] OPENID_CLIENT_ID=[YourClientID] OPENID_CLIENT_SECRET=[YourClientSecret] OPENID_SESSION_SECRET=[JustGenerateARandomSessionSecret] OPENID_CALLBACK_URL=/oauth/openid/callback OPENID_SCOPE="openid profile email" OPENID_REQUIRED_ROLE=[YourRequiredRole] # Single role or comma-separated roles (e.g., role1,role2,admin) OPENID_REQUIRED_ROLE_TOKEN_KIND=(access|id) # that means, `access` or `id` OPENID_REQUIRED_ROLE_PARAMETER_PATH="realm_access.roles" # Optional: redirects the user to the end session endpoint after logging out OPENID_USE_END_SESSION_ENDPOINT=true # Maximum logout URL length before using logout_hint instead of id_token_hint (default: 2000) # OPENID_MAX_LOGOUT_URL_LENGTH=2000
Hoe is deze gids?