Keycloak, React ve Go ile Güvenli Kimlik Doğrulama: PKCE ve JWT
Keycloak, açık kaynak bir kimlik ve erişim yönetim çözümüdür. OAuth 2.0 ve OpenID Connect protokollerini destekler ve uygulamalarında güvenli kimlik doğrulama eklemek için ideal bir seçimdir. PKCE (Proof Key for Code Exchange) akışı, özellikle tek sayfalı uygulamalar ve mobil istemciler için tasarlanmış, daha güvenli bir yetkilendirme yöntemidir.
React tarafında, Keycloak istemcisini yapılandırdıktan sonra kullanıcı giriş akışını başlatmak basittir. PKCE akışında tarayıcı, bir kod doğrulayıcı oluşturur ve bu doğrulayıcıdan türetilen bir kod zorluk değeri ile Keycloak'a yetkilendirme isteği gönderir. Kullanıcı başarıyla giriş yaptıktan sonra, Keycloak bir yetkilendirme kodu döndürür. React uygulaması bu kodu arka yüze gönderir.
Go arka yüzü, aldığı yetkilendirme kodunu Keycloak'a sunarak bir JWT (JSON Web Token) alır. Bu token, kullanıcının kimliğini ve atanmış rolleri içerir. Go, gelen isteklerde bu JWT'yi doğrulayarak rol tabanlı erişim denetimi (RBAC) uygulayabilir. Örneğin, yalnızca 'admin' rolüne sahip kullanıcılar belirli uç noktalara erişebilir.
Bu mimarinin avantajı, kimlik bilgilerinin arka yüzde merkezi olarak yönetilmesidir. React, gizli anahtarları depolamaz; tüm hassas işlemler sunucu tarafında gerçekleşir. Ayrıca JWT'deki rol bilgileri, ön yüzde hızlı karar almak için kullanılabilir, örneğin, yönetici paneline erişim düğmesini göstermek veya gizlemek.
Keycloak'ı yerel ortamda Docker ile çalıştırmak, geliştirme sırasında test etmeyi kolaylaştırır. React istemcisini ve Go sunucusunu yapılandırdıktan sonra, PKCE akışı otomatik olarak çalışır. Güvenlik açığı riskini azaltmak için her zaman HTTPS kullanmalısın ve JWT'nin sona erme süresini uygun şekilde ayarlamalısın. Ayrıca refresh token mekanizmasını uygulamak, uzun oturumlar için gereklidir.
0 yorum