Ana sayfa→Teknoloji & İnovasyon
Teknoloji & İnovasyon

Keycloak Yerine Tek Kapsülde Kimlik Doğrulama: Entegrasyon Zorlukları ve Çözümler.

Kişisel ağımda, benzer kimlik bilgilerini kullanarak farklı hizmetlere giriş yapmak zorunda kalmak beni rahatsız ediyordu. Merkezi bir kimlik doğrulama...

User Avatar
SayarBilgi Yayın KuruluEditör
2 dk okuma

Kişisel ağımda, benzer kimlik bilgilerini kullanarak farklı hizmetlere giriş yapmak zorunda kalmak beni rahatsız ediyordu. Merkezi bir kimlik doğrulama sisteminin faydalarını biliyordum, ancak çoğu zaman kurulumu karmaşık olan Keycloak gibi çözümlerden kaçınıyordum. Bu noktada Pocket ID ile tanıştım. Tek bir Docker kapsülünde çalışan, hafif bir Keycloak alternatifiydi. Kurulumu kolaydı, ancak hizmetlerimin onunla entegre edilmesi farklı bir hikaye oldu.

Pangolin resource settings showing the Pocket ID target marked healthy after fixing the routing
Pocket ID account settings showing two registered passkeys and account details
Pocket ID sign-in screen prompting the user to authenticate with a passkey
Portainer stack details showing the Pocket ID container running with a healthy status
Portainer stack editor showing the Docker Compose file used to deploy Pocket ID

Pocket ID’yi kurduktan sonra, onu ya public olarak Pangolin üzerinden mi yoksa private olarak NetBird üzerinden mi kullanacağıma karar vermem gerekiyordu. Gizliliği tercih etsem de, bu kullanım senaryom için uygun değildi. Portainer ile kurulumu başlattığımda, eksik ENCRYPTION_KEY değişkeni nedeniyle bir sorunla karşılaştım. Bu sorunu çözdükten sonra kurulum başarılı oldu.

Pocket ID consent screen asking to confirm sign-in to Jellyfin with profile access
SSO-Auth plugin settings showing the Disable Pushed Authorization checkbox enabled and the Scheme Override field set to https
SSO-Auth plugin page in Jellyfin showing it active and enabled
Error page showing the redirect URI was not registered for the Jellyfin OIDC client

Ardından, Pocket ID’yi Pangolin’e ekledim ve hemen erişebildim. Ancak, bu seferki mücadele, Jellyfin gibi hizmetleri entegre etmekle ilgiliydi.

SayarBilgi sitesini Google’da tercih edilen kaynak olarak seç
Terminal output showing the occ command used to register Pocket ID as an OIDC provider in Nextcloud
Pocket ID My Apps page listing Nextcloud, Jellyfin, and Immich as connected applications
Pocket ID audit log showing client authorization events from Nextcloud, Jellyfin, and Immich with geo-tagged locations

Jellyfin ile başlayan süreç, OIDC’nin karmaşıklığını gözler önüne serdi. İlk sorun, Jellyfin’in yerleşik olarak OIDC desteği olmamasıydı. Üçüncü taraf bir eklenti kullanarak bu özelliği etkinleştirdim. OIDC istemcisini Pocket ID üzerinde yapılandırdıktan sonra, bu bilgileri Jellyfin’e aktardım.

İlk denemede, “invalid_request – Failed to push authorization parameters” hatasıyla karşılaştım. Pocket ID, Pushed Authorization Requests (PAR) bekliyordu, ancak Jellyfin’in SSO eklentisi bunu desteklemiyordu. Bu sorunu, Jellyfin SSO ayarlarındaki bir checkbox ile çözebildim.

İkinci sorun, yönlendirme URI’sinin Pocket ID tarafından “http://” olarak görünmesiydi, oysa her yerde “https” kullanılıyordu. Bu sorunu, manuel olarak düzeltmek zorunda kaldım.

Bu süreçte, ters proxy kullanımıyla ilgili önemli bir ders çıkardım: Her hizmetin el sıkışma protokolünü açıkça tanımlamak gerekir. Jellyfin’deki TLS, sadece proxy seviyesinde sonlandırılıyordu, bu nedenle istekler HTTP üzerinden gönderiliyordu. Bu durum, Pocket ID’nin HTTPS yönlendirme URI’si beklentisiyle çelişiyordu.

Bu ilk entegrasyon deneyimi, diğer hizmetlerle ilgili beklentilerimi değiştirdi. Nextcloud ve Immich gibi farklı hizmetlerin OIDC ile entegrasyonu, farklı yaklaşımlar gerektirdi. Örneğin, Nextcloud’da yerleşik OIDC desteği sayesinde entegrasyon oldukça sorunsuz geçti.

Immich ile ilgili deneyim ise, kimlik eşleştirme ve kimlik taleplerinin önemini vurguladı. İlk denemede, yeni bir hesap oluşturulduğu için mevcut veriler kayboldu. Bu durum, her hizmetin OIDC’yi nasıl uyguladığını anlamanın kritik olduğunu gösterdi.

Son olarak, Jellyfin’in tarayıcı tabanlı uygulamalarında SSO’nun çalışmaması, yerleşik istemci desteğinin önemini ortaya koydu. Bu deneyimler, “SSO destekli” ifadesinin her zaman aynı anlama gelmediğini ve her hizmetin farklı yaklaşımlar gerektirebileceğini gösterdi.

Pocket ID gibi hafif bir çözümün, Keycloak’un karmaşıklığına alternatif olabileceğini kanıtladı. Ancak, entegrasyon sürecinde karşılaşılan zorluklar, OIDC’nin potansiyel tuzaklarını ve her hizmetin farklı yaklaşımlar gerektirebileceğini gösterdi.

İlginizi Çekebilir: Fast Company’nin Öncüleri: Yapay Zeka Müşteri Deneyimini Dönüştürüyor →
💬 SayarBilgi Topluluğu

Bu Gelişmeyi Toplulukta Değerlendirin

Haber hakkındaki düşüncelerinizi, donanım deneyimlerinizi ve teknik sorularınızı topluluk üyeleriyle anlık olarak tartışın.

Topluluk Canlı Akışı →
Kaynak: xda-portal
💬 Topluluk Masası & Tartışma

Bu gelişme hakkında düşüncelerinizi, donanım deneyimlerinizi veya sorularınızı Topluluk Forumumuzda paylaşın.

Foruma Katıl & Yanıtla ➔
Forumda sor / tartış
TOPLULUĞUN SESİ

Söz sizde.

0 yorum

Deneyiminizi, sorularınızı ve katkılarınızı paylaşın. E-posta adresiniz yayımlanmaz.

Sohbete katıl

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yorumunuz yayımlanmadan önce onay bekleyebilir.

BİR SONRAKİ OKUMA

Merak etmeye devam

Tümünü gör ↗

Neyi merak ediyorsun?

En az 3 karakter yazın.

Keşfet