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

Keycloak

LibreChat'i kullanıcı kimlik doğrulaması için Keycloak kullanacak şekilde nasıl yapılandıracağınızı öğrenin.

  1. Keycloak Yönetim Konsoluna Erişim:
  • Web tarayıcınızda Keycloak Admin Console'u açın. Bu genellikle http://localhost:8080/auth/admin/ gibi bir URL'de bulunur.
  1. Bir Realm oluşturun (gerekirse):
  • Uygulamanız için henüz bir realm oluşturmadıysanız, bir tane oluşturun. 'Add Realm' seçeneğine tıklayın ve bir isim verin.
  1. Bir İstemci Oluşturun:
  • Alanınız (realm) içerisinde 'Clients' kısmına ve ardından 'Create' butonuna tıklayın.
  • Bir istemci kimliği (client ID) girin ve İstemci Protokolü (Client Protocol) olarak 'openid-connect' seçeneğini belirleyin.
  • 'Client Authentication' ayarını 'On' konumuna getirin.
  • 'Valid Redirect URIs' kısmına http://localhost:3080/oauth/openid/callback adresini veya uygulamanız için uygun olan URI'yi girin.

image

image

image

  1. İstemciyi Yapılandır:
  • İstemciyi oluşturduktan sonra, ayarlar sayfasına yönlendirileceksiniz.
  • 'Credentials' sekmesindeki 'Client ID' ve 'Secret' bilgilerini not edin; uygulamanız için bunlara ihtiyacınız olacak.

image

  1. Rol Ekle (İsteğe bağlı): Erişimi belirli rollere sahip kullanıcılarla kısıtlamak isterseniz, Keycloak içinde roller tanımlayabilir ve bunları kullanıcılara atayabilirsiniz.
  • İstemcinizdeki veya alanınızdaki (rolleri nerede tanımlamak istediğinize bağlı olarak) 'Roles' sekmesine gidin.
  • OPENID_REQUIRED_ROLE içinde sahip olduğunuz değer(ler)le eşleşen roller oluşturun.

image

  1. Kullanıcılara Rol Ata (İsteğe bağlı):
  • 'Users' kısmına gidin, bir kullanıcı seçin ve 'Role Mappings' sekmesine gidin.
  • OPENID_REQUIRED_ROLE içinde belirtilen rollerden en az birini kullanıcıya atayın.

image

  1. Belirteç içindeki roller listesinin yolunu al (İsteğe bağlı):
  • OpenID sağlayıcınızdan gelen jwtToken'ınızın kodunu çözün ve erişim belirteci (access token) içindeki roller listesinin yolunu belirleyin. Örneğin, Keycloak kullanıyorsanız yol realm_access.roles şeklindedir.
  • Bu yolu .env dosyasındaki OPENID_REQUIRED_ROLE_PARAMETER_PATH değişkenine yerleştirin.
  • OPENID_REQUIRED_ROLE_TOKEN_KIND parametresi ile hangi token türünü kullanmak istediğinizi belirtebilirsiniz. Olası değerler access ve id şeklindedir.
  1. Projenizin Yapılandırmasını Güncelleyin:
  • Proje klasörünüzdeki .env dosyasını açın ve aşağıdaki değişkenleri ekleyin:
    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

Bu rehber nasıl?