OAuth2 Kimlik Doğrulaması: Authentik ile Güvenli Oturum Açmayı Uygulama
Kimlik doğrulama herhangi bir web uygulamasının güvenlik açısından en kritik bileşenidir, ancak veri ihlallerinin %61'i güvenliği ihlal edilmiş kimlik bilgilerinden kaynaklanır. OAuth2'nin Authentik gibi özel bir kimlik sağlayıcıyla uygulanması, kimlik doğrulama endişelerini uygulama mantığından ayırarak tek oturum açmayı, MFA'yı ve merkezi kullanıcı yönetimini mümkün kılar.
Önemli Çıkarımlar
- PKCE ile OAuth2 Yetkilendirme Kodu akışı, web uygulamaları için önerilen modeldir
- Authentik, OIDC, SAML ve LDAP desteğine sahip, şirket içinde barındırılan bir kimlik sağlayıcı sağlar
- Belirteç depolamaya yönelik HttpOnly çerezleri XSS tabanlı belirteç hırsızlığını önler
- Kısa TTL'ye sahip tek seferlik değişim kodları, URL'lerde belirtecin görünmesini önler
OAuth2 Akışına Genel Bakış
PKCE ile Yetkilendirme Kodu Akışı
- Kullanıcı Giriş'i tıklar: Uygulama, Authentik yetkilendirme uç noktasına yönlendirilir
- Kullanıcı kimlik doğrulaması yapar: Authentik giriş sayfasına girilen kimlik bilgileri (ve MFA)
- Yetkilendirme kodu verildi: Authentik kısa ömürlü bir kodla geri yönlendirme yapıyor
- Jeton değişimi: Arka uç, erişim ve jetonları yenilemek için kod alışverişinde bulunur
- Oturum oluşturuldu: HttpOnly çerezlerinde depolanan jetonlar
Bu akış, kimlik bilgilerinin uygulamanıza asla dokunmamasını, belirteçlerin sunucudan sunucuya değişimini ve yetkilendirme kodunun kısa TTL ile tek kullanımlık olmasını sağlar.
Orijinal Kurulum
Sağlayıcı Yapılandırması
Authentik'te gizli istemci türü, benzersiz istemci kimliği, güçlü istemci sırrı, tam yönlendirme URI'leri, açık kimlik/profil/e-posta kapsamları ve uygun belirteç yaşam süreleri (erişim: 5-15 dakika, yenileme: 7-30 gün) ile bir OAuth2/OIDC Sağlayıcısı oluşturun.
Grup üyeliğine, niteliklere veya IP kısıtlamalarına dayalı politikalar aracılığıyla erişimi kontrol etmek için sağlayıcıyı bir Authentik Uygulamasına bağlayın.
Çok Faktörlü Kimlik Doğrulama
MFA seçeneklerini yapılandırın: TOTP (Google Authenticator, Authy), WebAuthn (donanım güvenlik anahtarları, biyometri) ve yedek olarak SMS/E-posta kodları.
Arka Uç Uygulaması
Yetkilendirme Yönlendirmesi
Client_id, Response_type=code, yönlendirme_uri, kapsamlar, rastgele durum parametresi (CSRF koruması) ve PKCE code_challenge ile kullanıcıları Authentik'e yönlendirin.
Token Değişimi
Geri arama sırasında, sunucudan sunucuya yetkilendirme kodunu grant_type=authorization_code, alınan kod, yönlendirme_uri, istemci kimlik bilgileri ve PKCE code_verifier ile değiştirin. Yanıt, erişim_token, yenileme_token, id_token ve süre sonu bilgilerini içerir.
Güvenli Token Depolama
Belirteçleri hiçbir zaman localStorage veya sessionStorage'da saklamayın; bunlara XSS verileri dahil tüm JavaScript'ler erişebilir. Güvenli işaretli, SameSite=Lax ve uygun son kullanma tarihi olan HttpOnly çerezlerini kullanın.
Ön Uç Entegrasyonu
Giriş Akışı
Kullanıcı Oturum Aç'ı tıklar, ön uç yetkilendirme URL'sine yönlendirir, kullanıcı Authentik'te kimlik doğrulaması yapar (uygulamanız hiçbir zaman kimlik bilgilerini görmez), Authentik kodla geri yönlendirme yapar, arka uç kod alışverişi yapar ve HttpOnly çerezlerini ayarlar, ön uç mevcut kullanıcı verileri için oturum uç noktasını çağırır.
Oturum Yönetimi
Bağlamada GET /auth/session'ı çağıran bir useAuth() kancası oluşturun. Kimliği doğrulanmışsa kullanıcı verilerini döndürün, değilse oturum açmaya yönlendirin. Oturumu kapattıktan sonra çerezleri temizlemek için POST /auth/logout komutunu çağırın.
Korunan Rotalar
Kimliği doğrulanmamış kullanıcıları sayfa oluşturmadan önce yeniden yönlendirmek için ara yazılım kullanın. Next.js'de proxy.ts dosyası, korumalı rotalarda kimlik doğrulama çerezlerini kontrol ederek bunu gerçekleştirir.
En İyi Güvenlik Uygulamaları
Token Güvenliği
- HttpOnly çerezleri özel olarak -- belirteçleri asla JavaScript'e maruz bırakmaz
- Kısa erişim belirteci yaşam süreleri (5-15 dakika)
- Rotasyonla jeton yenileme (her kullanımda yeni yenileme jetonu)
- İstemci sırrı yalnızca arka uçta saklanır, hiçbir zaman ön uç kodunda saklanmaz
Yönlendirme Güvenliği
- Tüm yönlendirme URL'lerini bir izin verilenler listesine göre doğrulayın
- // ile başlayan yönlendirmeleri reddet (protokolle ilgili URL'ler)
- Hiçbir zaman URL parametrelerine belirteç eklemeyin
- 60 saniyelik TTL ile tek seferlik değişim kodlarını kullanın
Oturum Güvenliği
- Kimlik doğrulamadan sonra oturum tanımlayıcılarını yeniden oluşturun
- Boşta kalma zaman aşımı (30 dakika) ve mutlak zaman aşımı (8 saat) uygulayın
- Denetim izleri için tüm kimlik doğrulama olaylarını günlüğe kaydedin
- Kaba kuvvetin önlenmesi için hız limitli giriş denemeleri
Otantik Gelişmiş Özellikler
Kullanıcı Kaydı
Özelleştirilebilir kayıt akışlarıyla self servis kullanıcı kaydını yapılandırın. Yeni hesaplar için gerekli alanları, e-posta doğrulama adımlarını ve onay iş akışlarını tanımlayın.
Marka Özelleştirmesi
Sorunsuz bir marka deneyimi için Authentik giriş sayfasına özel CSS, logolar ve temalar uygulayın. Özel markalama, CSS birim bağlantıları veya Django ORM branding_custom_css alanı aracılığıyla uygulanmalıdır.
Kullanıcı Federasyonu
Authentik'i LDAP/Active Directory senkronizasyonu yoluyla harici kullanıcı dizinlerine bağlayarak mevcut kurumsal kullanıcıların, hesaplarını yeniden oluşturmadan kimlik doğrulaması yapmalarını sağlayın.
Sıkça Sorulan Sorular
S: Neden Auth0 veya Keycloak yerine Authentik?
Authentik, kendi kendine barındırılır (tam veri kontrolü), açık kaynaklıdır ve modern bir kullanıcı arayüzüne sahiptir. Auth0, kullanıcı başına fiyatlandırmanın arttığı bir SaaS'tır. Keycloak kendi kendine barındırılır ancak daha zorlu bir öğrenme eğrisine ve daha eski bir kullanıcı arayüzüne sahiptir. Authentik özellikleri, kullanılabilirliği ve maliyeti dengeler.
S: Authentik binlerce kullanıcıyı yönetebilir mi?
Evet. Django ve PostgreSQL üzerine kurulu Authentik, geniş kullanıcı tabanlarını yönetir. 100.000'den fazla kullanıcı için yeterli veritabanı kaynağı sağlayın ve yatay ölçeklendirmeyi düşünün.
S: SSO'yu birden fazla uygulamaya nasıl uygularız?
Her uygulamayı kendi Sağlayıcısı ile ayrı bir Authentik Uygulaması olarak yapılandırın. Kullanıcılar bir kez kimlik doğrulaması yapar ve Authentik oturumu aracılığıyla bağlı tüm uygulamalarda otomatik olarak oturum açar.
S: Sosyal girişe ne dersiniz?
Authentik, sosyal giriş kaynaklarını (Google, GitHub, Microsoft ve diğer OAuth2 sağlayıcıları) destekler. Kullanıcılar, rahat oturum açmak için sosyal hesaplarını Authentik kimliklerine bağlayabilir.
Sırada Ne Var
Özel bir kimlik sağlayıcıya sahip OAuth2, çoğu web uygulaması için en etkili güvenlik iyileştirmesidir. Kimlik bilgisi kullanımını ortadan kaldırır, MFA'yı etkinleştirir ve merkezi denetim günlüğü sağlar.
Kimlik doğrulama uygulaması yardımı için ECOSIRE ile iletişime geçin veya güvenli ERP dağıtımı için Odoo uygulama hizmetlerimizi inceleyin.
ECOSIRE tarafından yayınlandı - işletmelerin kurumsal yazılım çözümleriyle ölçeklenmesine yardımcı oluyor.
Yazan
ECOSIRE Research and Development Team
ECOSIRE'da kurumsal düzeyde dijital ürünler geliştiriyor. Odoo entegrasyonları, e-ticaret otomasyonu ve yapay zeka destekli iş çözümleri hakkında içgörüler paylaşıyor.
İlgili Makaleler
Odoo Güvenlik ve Erişim Kontrolü: İş Verilerinizi Koruyun
Odoo güvenliğine ilişkin kapsamlı kılavuz — kullanıcı grupları, erişim hakları, kayıt kuralları, alan düzeyinde güvenlik, iki faktörlü kimlik doğrulama, denetim günlüğü ve üretim dağıtımları için en iyi güvenlik uygulamaları.
OpenClaw Kurumsal Güvenlik: Veri Gizliliği, Erişim Kontrolü ve Uyumluluk
Veri gizliliği kontrolleri, rol tabanlı erişim, şifreleme, denetim günlüğü tutma, SOC 2 uyumluluğu ve dağıtım güvenliği en iyi uygulamalarını kapsayan OpenClaw kurumsal güvenliğine yönelik kapsamlı bir kılavuz.
OpenClaw Güvenliği: Üretim Dağıtımları için Sağlamlaştırma Kılavuzu
OpenClaw için temel güvenlik uygulamaları: Docker güçlendirme, kimlik bilgileri yalıtımı, ağ bölümlendirme, beceri incelemesi ve kurumsal uyumluluk. Yapay zeka aracısı dağıtımınızı koruyun.