OAuth2 Kimlik Doğrulaması: Authentik ile Güvenli Oturum Açmayı Uygulama

Kimlik sağlayıcınız olarak Authentik ile OAuth2 kimlik doğrulamasını uygulayın. OIDC akışlarını, belirteç yönetimini, oturum yönetimini ve en iyi güvenlik uygulamalarını kapsayan eksiksiz kılavuz.

E

ECOSIRE Research and Development Team

ECOSIRE Ekibi

5 Mart 20264 dk okuma896 Kelime

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ışı

  1. Kullanıcı Giriş'i tıklar: Uygulama, Authentik yetkilendirme uç noktasına yönlendirilir
  2. Kullanıcı kimlik doğrulaması yapar: Authentik giriş sayfasına girilen kimlik bilgileri (ve MFA)
  3. Yetkilendirme kodu verildi: Authentik kısa ömürlü bir kodla geri yönlendirme yapıyor
  4. Jeton değişimi: Arka uç, erişim ve jetonları yenilemek için kod alışverişinde bulunur
  5. 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.

E

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.

WhatsApp'ta Sohbet Et