Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

Keycloak

Pelajari cara mengonfigurasi LibreChat untuk menggunakan Keycloak untuk autentikasi pengguna.

  1. Akses Konsol Admin Keycloak:
  • Buka Keycloak Admin Console di peramban web Anda. Ini biasanya dapat ditemukan di URL seperti http://localhost:8080/auth/admin/.
  1. Buat Realm (jika perlu):
  • Jika Anda belum memiliki realm untuk aplikasi Anda, buatlah satu. Klik 'Add Realm' dan beri nama.
  1. 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/callback atau URI yang sesuai untuk aplikasi Anda.

image

image

image

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

image

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

image

  1. Tetapkan Peran ke Pengguna (Opsional):
  • Buka 'Users', pilih pengguna, lalu buka tab 'Role Mappings'.
  • Tetapkan setidaknya satu peran yang ditentukan dalam OPENID_REQUIRED_ROLE kepada pengguna.

image

  1. 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_PATH di file .env.
  • Melalui parameter OPENID_REQUIRED_ROLE_TOKEN_KIND Anda dapat menentukan jenis token mana yang ingin Anda gunakan. Nilai yang dimungkinkan adalah access dan id.
  1. Perbarui Konfigurasi Proyek Anda:
  • Buka file .env di 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?