Keycloak
Pelajari cara mengonfigurasi LibreChat untuk menggunakan Keycloak untuk autentikasi pengguna.
- Akses Konsol Admin Keycloak:
- Buka Keycloak Admin Console di peramban web Anda. Ini biasanya dapat ditemukan di URL seperti
http://localhost:8080/auth/admin/.
- Buat Realm (jika perlu):
- Jika Anda belum memiliki realm untuk aplikasi Anda, buatlah satu. Klik 'Add Realm' dan beri nama.
- Buat Klien:
- Di dalam realm Anda, klik 'Clients' lalu 'Create'.
- Masukkan client ID dan pilih 'openid-connect' sebagai Client Protocol.
- Atur 'Client Authentication' ke 'On'.
- Di 'Valid Redirect URIs', masukkan
http://localhost:3080/oauth/openid/callbackatau URI yang sesuai untuk aplikasi Anda.
- Konfigurasi Klien:
- Setelah membuat klien, Anda akan diarahkan ke halaman pengaturannya.
- Catat 'Client ID' dan 'Secret' dari tab 'Credentials' – Anda akan membutuhkannya untuk aplikasi Anda.
- Tambahkan Peran (Opsional): Jika Anda ingin membatasi akses ke pengguna dengan peran tertentu, Anda dapat menentukan peran di Keycloak dan menetapkannya ke pengguna.
- Buka tab 'Roles' di klien atau realm Anda (tergantung di mana Anda ingin menentukan peran tersebut).
- Buat peran yang sesuai dengan nilai yang Anda miliki di
OPENID_REQUIRED_ROLE.
- Tetapkan Peran ke Pengguna (Opsional):
- Buka 'Users', pilih pengguna, lalu buka tab 'Role Mappings'.
- Tetapkan setidaknya satu peran yang ditentukan dalam
OPENID_REQUIRED_ROLEkepada pengguna.
- Dapatkan path daftar peran di dalam token (Opsional):
- Dekode jwtToken Anda dari penyedia OpenID dan tentukan jalur untuk daftar peran di dalam access token. Sebagai contoh, jika Anda menggunakan Keycloak, jalurnya adalah
realm_access.roles. - Masukkan path ini ke dalam variabel
OPENID_REQUIRED_ROLE_PARAMETER_PATHdi file.env. - Melalui parameter
OPENID_REQUIRED_ROLE_TOKEN_KINDAnda dapat menentukan jenis token mana yang ingin Anda gunakan. Nilai yang dimungkinkan adalahaccessdanid.
- Perbarui Konfigurasi Proyek Anda:
- Buka file
.envdi folder proyek Anda dan tambahkan variabel berikut: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
Bagaimana panduan ini?