Identix: kimlik ve erişim yönetimi platformu

Yönetim konsolu, iki faktörlü kimlik doğrulama ve denetim kaydı tutulan kimliğe bürünme özelliğine sahip, çok kiracılı bir kimlik ve erişim yönetimi platformu (OAuth 2.0 / OpenID Connect). Kubernetes üzerine dağıtım ve CI/CD dâhil tasarımı, geliştirilmesi ve bakımı tek bir mühendise ait; platform, Specification-Driven Development yöntemiyle ve bir yapay zekâ asistanından yararlanılarak 40 iş gününde hayata geçirildi.

SecurityIAMOAuth 2.0JavaSpring BootReactKubernetes

Yönetici özeti

40gün

fiilî geliştirme

1mühendis

yapay zekâ orkestrasyonuyla

~92Ksatır

kod, Java ve TypeScript

~1.700test

otomatik, ~420'si entegrasyon testi

237işlem

genel API, OpenAPI ile belgelenmiş

3işlem hattı

Kubernetes'e CI/CD

Proje

Identix, şirketlerin kendi sunucularında çalıştırdığı bir kimlik sağlayıcısıdır. Şirket onu kendi altyapısına kurar; tek bir kurulum, her birinin kendi kullanıcıları, rolleri, oturum açma ayarları ve imzalama anahtarları bulunan çok sayıda bağımsız uygulamaya (kiracıya) hizmet verir. Parolalar, anahtarlar ve kişisel veriler hiçbir zaman işletmecinin altyapısının dışına çıkmaz.

Kimlik, her sistemin güvenlik açısından en hassas parçasıdır: buradaki bir hata, arkasındaki tüm uygulamaları açıkta bırakır. Bu nedenle projenin geniş bir işlevselliği, titiz bir incelemeye dayanabilecek bir güvenlik mimarisiyle birleştirmesi gerekiyordu. Proje tek bir mühendis tarafından tasarlandı ve geliştirildi; bakımı da aynı mühendis tarafından yürütülüyor.

Ne geliştirildi

Yetkilendirme sunucusu — Spring Authorization Server üzerinde OAuth 2.0 ve OpenID Connect; her kiracı için ayrı belirteç yayımlayıcısı (issuer) ve imzalama anahtarları, yenileme belirteçlerinin rotasyonu ve belirteçlerin anında iptali.

  • Kiracılar arasında katı ayrım — her istek kendi kiracısıyla sınırlıdır ve bu kuralın uygulanmasını otomatik mimari testleri güvence altına alır
  • Kullanıcılar, roller, gruplar ve kuruluşlar; toplu içe ve dışa aktarma, kiracı başına parola politikası
  • İki faktörlü kimlik doğrulama (TOTP) ve kurtarma kodları
  • Denetim kaydı tutulan kimliğe bürünme — bir yönetici bir kullanıcı adına işlem yapabilir ve bu tür her oturum kayda geçirilir
  • Kullanıcı yaşam döngüsü olayları için HMAC ile imzalanmış webhook'lar
  • Denetim günlüğü — yalnızca yeni kayıt eklenebilen, kiracı başına ayrı tutulan ve işletmeciye tüm kiracıları kapsayan bir görünüm sunan
  • Kurulumlar arasında kiracı yapılandırmasının dışa ve içe aktarılması

Yönetim konsolu — React ve TypeScript ile geliştirildi; İngilizce ve Rusça arayüze sahip, masaüstünden telefona uyum sağlıyor ve geliştiriciler için entegrasyon kılavuzları ile etkileşimli API dokümantasyonu sunan yerleşik bir bölüm içeriyor.

Genel API — OpenAPI ile eksiksiz tanımlanmış 237 işlem.

Altyapı — Kubernetes üzerinde Helm chart'larıyla çalışan üç servis, PostgreSQL ve Redis; her servisi derleyen, test eden ve dağıtan üç GitLab CI/CD işlem hattı. Testlerden biri bile başarısız olursa dağıtım engellenir.

Tasarımdan itibaren güvenlik

Mimari, güven bölgelerini birbirinden ayırır. Genel erişime açık yetkilendirme sunucusunun veritabanına erişimi yoktur ve hiçbir özel anahtar barındırmaz: tüm veriler ve tüm belirteç imzalama işlemleri, yalnızca küme içinden erişilebilen dahili bir serviste bulunur. İmzalama anahtarları şifrelenmiş olarak saklanır ve yalnızca bellekte çözülür; bu nedenle genel düğümün ele geçirilmesi ne anahtarları ne de verileri açığa çıkarır.

Güvenlik çalışmaları sonradan eklenmedi, yöntemin bir parçasıydı:

  • STRIDE ile oluşturulan tehdit modeli: korunan varlıklar, saldırgan profilleri, güven sınırları ve her tehdit için bir karşı önlem
  • Kontrollerin OWASP ASVS 2. düzeyine ve IETF'nin OAuth 2.0 ile JWT için en iyi uygulamalarına eşlendiği, denetçilere yönelik güvenlik dokümantasyonu
  • Güvenlik denetimi başarıyla tamamlandı; tespit edilen tüm bulgular giderildi

Yöntem

Mimar ve yapay zekâ orkestratörü rolünü üstlenen, Specification-Driven Development yöntemiyle çalışan tek bir mühendis. Çalışma yazılı bir spesifikasyonla (gereksinimler, veri modeli, güvenlik değişmezleri) başladı ve her önemli karar, uygulamaya geçilmeden önce bir mimari karar kaydı (ADR) olarak belgelendi.

Yapay zekâ ajanları bu spesifikasyondan kod, test ve dokümantasyon üretti; mühendis her değişikliği inceledi, mimari ile güvenlik modelinin sorumluluğunu üstlendi ve her commit'ten hesap verebilir oldu. Altyapı da (Kubernetes manifestleri, Helm chart'ları, CI/CD işlem hatları) aynı kişi tarafından aynı yöntemle oluşturuldu.

Geliştirme kesintisiz ilerlemedi: proje, aralarında molalar bulunan aşamalar hâlinde yürütüldü. Yalnızca fiilen çalışılan günler sayıldığında platform 40 iş gününde tamamlandı.

Teknoloji yığını

Java 23Spring Boot 3.5Spring Authorization ServerPostgreSQLRedisFlywayReact 19TypeScriptAnt DesignViteJUnit 5TestcontainersArchUnitVitestPlaywrightDockerKubernetesHelmGitLab CI/CDKaniko

Geleneksel geliştirmeyle karşılaştırma

Tipik geleneksel ekip (tahmini) Bu proje (yapay zekâ odaklı)
Süre 6–9 ay 40 iş günü
Ekip 4–6 mühendis 1 mühendis
Altyapı ve CI/CD Ayrı bir DevOps mühendisi Dâhil, aynı mühendis
Güvenlik Tehdit modeli ve denetim çoğu zaman ertelenir STRIDE tehdit modeli, denetim tamamlandı
Dokümantasyon Sonradan yazılır, o da yazılırsa İlk günden spesifikasyon ve ADR'ler
Otomatik testler Değişken ~1.700

Sonuçlar

Kimlik ve erişim yönetimi, hızlı teslimatı sergilemek için akla ilk gelen alan değildir: geniş bir işlev yelpazesini tavizsiz güvenlik gereksinimleriyle bir araya getirir. Identix, yöntemin bu alanda da işe yaradığını gösteriyor.

Tek mühendis. 40 iş günü. Çok kiracılı bir yetkilendirme sunucusu, bir yönetim konsolu, 237 işlemden oluşan genel bir API, yaklaşık 1.700 otomatik test, Kubernetes ve CI/CD ile tehdit modeli ve tamamlanmış bir denetimle desteklenen bir güvenlik mimarisi.

Belirleyici etken kod üretiminin hızı değil, onu çevreleyen disiplindi: önce spesifikasyon, kayıt altına alınan kararlar, incelenen her değişiklik. Sistemi sürdürülebilir kılan ve başka bir ekibin devralmasına olanak tanıyacak olan da budur.

Spesifikasyonunuz, sabit fiyat, çalışan bir sistem.

  1. 01 NDA imzalanır Hiçbir ayrıntı konuşulmadan önce. Fikriniz korunur.
  2. 02 Ön görüşme · 30 dk Yalnızca kıdemli mühendis; satış temsilcisi ya da aracı yok.
  3. 03 Yazılı teklif · 24 saat Sabit kapsam, sabit fiyat veya zaman ve malzeme; tercih sizin.
  4. 04 48 saat içinde başlangıç Birbirimize uygunsak hemen başlayabiliriz.
Ön görüşme planlayın → 30 dakika · ücretsiz · önce NDA