Yönetici özeti
fiilî geliştirme
yapay zekâ orkestrasyonuyla
kod, Java ve TypeScript
otomatik, ~420'si entegrasyon testi
genel API, OpenAPI ile belgelenmiş
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ı
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.