Keycloak
LibreChat'i kullanıcı kimlik doğrulaması için Keycloak kullanacak şekilde nasıl yapılandıracağınızı öğrenin.
- 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.
- 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.
- 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/callbackadresini veya uygulamanız için uygun olan URI'yi girin.
- İ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.
- 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_ROLEiçinde sahip olduğunuz değer(ler)le eşleşen roller oluşturun.
- 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_ROLEiçinde belirtilen rollerden en az birini kullanıcıya atayın.
- 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
.envdosyasındakiOPENID_REQUIRED_ROLE_PARAMETER_PATHdeğişkenine yerleştirin. OPENID_REQUIRED_ROLE_TOKEN_KINDparametresi ile hangi token türünü kullanmak istediğinizi belirtebilirsiniz. Olası değerleraccessveidşeklindedir.
- Projenizin Yapılandırmasını Güncelleyin:
- Proje klasörünüzdeki
.envdosyası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?