Emrecan Odabaş
Projeler

BT Portalı

Kurumdaki tüm kullanıcı süreçlerini tek arayüzde toplayan modüler intranet platformu: envanter, destek, PDKS, SIEM izleme, doküman ve dosya yönetimi — tamamı Active Directory kimliğiyle, hiçbir bağlantı sabit kodlanmadan.

.NET 9ASP.NET CoreReact 19TypeScriptAnt DesignSQL ServerEF CorePostgreSQLSignalRActive DirectoryWazuh
Rol
Tasarım ve uygulama
Durum
Devam ediyor
Alan
Otomasyon & Geliştirme
BT Portalı entegrasyon mimarisiPortal çekirdeği bir yanda kimlik ve güvenlik katmanına (Active Directory, ADCS, Wazuh, uç nokta koruma), diğer yanda kurumsal servislere (PDKS, Exchange, dosya sunucusu, OnlyOffice, StirlingPDF) bağlanır; tüm bağlantılar dinamik tanımlanır.Kimlik ve GüvenlikActive DirectorySSO · LDAPSADCSsertifika imzalamaWazuh SIEMindexer + managerUç nokta korumaOpen APIkimlik · alarmBT PortalıReact 19 SPATypeScript · AntD.NET 9 Web APIpolicy yetkiSQL ServerEF Core 9PostgreSQLşifreli sohbetArkaplan servisleriIHostedServiceLinux istemci ajanı802.1x · SSH/VNCAPI · SQLKurumsal ServislerMeyer PDKSBiostarExchange / SMTPoda postaları · IMAPDosya sunucusuSMB · NTFS ACLOnlyOfficeeş zamanlı ofisStirlingPDFPDF servisi
Mimari — BT Portalı entegrasyon mimarisi
BT Portalı kişisel panosu: mesai durumu, açık talepler, zimmetler ve belgeler

Amaç

Kurumsal ve güvenlik hassasiyeti yüksek ortamlarda kullanıcı süreçleri genellikle birbirinden bağımsız uygulamalara dağılır: devam kontrol ayrı, envanter ayrı, destek ayrı, dosya erişimi ayrı. Her birinin kendi arayüzü ve kendi yetkilendirme mantığı vardır; hem son kullanıcı hem BT ekibi için tekrarlayan iş yükü üretir.

BT Portalı bu süreçlerin tamamını tek bir ortamda toplar ve yönetir. Hedefleri:

  • Tüm kullanıcı süreçlerini tek arayüz, tek kimlik (Active Directory) altında birleştirmek
  • BT ekibine izlenebilir, yönetimi kolay bir operasyon merkezi sunmak
  • BT'nin altyapısını sağladığı hizmetlerin, ilgili birimler (İnsan Kaynakları, Kalite, İdari İşler…) tarafından kendi panellerinden yönetilebilmesini sağlamak
  • Altyapı değişimlerinde tüm geçişin portal üzerinden yönetilebilmesi için bağlantı ve kimlik ayarlarını dinamik tutmak

Projenin genel felsefesi hiçbir şeyi sabit kodlamamak: her bağlantının, her kimliğin ve her akışın bir gün değişebileceği varsayımıyla tasarlandı.

Teknik yapı

Portal, Windows Server 2022 + IIS üzerinde çalışır. Backend .NET 9 ile controller tabanlı bir ASP.NET Core Web API; önyüz React 19 + TypeScript + Ant Design ile Vite üzerinde derlenen bir SPA'dır. Ana veritabanı SQL Server'dır ve şema EF Core 9 ile code-first yönetilir; sohbet mesajları ise ayrı bir PostgreSQL sunucusunda şifreli tutulur.

Katman Kullanılan
Backend .NET 9 · ASP.NET Core Web API (controller tabanlı REST)
Önyüz React 19 · TypeScript · Ant Design · Vite (SPA)
Veritabanı SQL Server · EF Core 9 (code-first) + PostgreSQL (sohbet)
Kimlik Hibrit: Windows SSO (Negotiate) + form tabanlı AD girişi (LDAP bind) → cookie oturumu
Yetki Policy tabanlı: AD grubu → rol → policy, varsayılan reddet
Gerçek zamanlı SignalR (sohbet, bildirimler)
Loglama Serilog (dosya + SQL sink)
Arka plan işleri IHostedService + PeriodicTimer
Test xUnit (birim + entegrasyon)

Kimlik doğrulama hibrittir: etki alanına üye makinelerde kullanıcı hiçbir şey yazmadan Windows SSO ile içeri girer; diğer durumlarda AD kimlik bilgileriyle form girişi yapılır. Yetkilendirme "varsayılan reddet" ilkesiyle policy tabanlıdır — AD grubu role, rol policy'ye bağlanır; kod hiçbir yerde kişiye ya da gruba doğrudan güvenmez.

Dinamik bağlantı katmanı

Tüm entegrasyonlar (LDAP/LDAPS, SMTP, SQL, Wazuh indexer ve manager, uç nokta koruma API'si, PDKS, oda postaları, PostgreSQL, StirlingPDF, dosya sunucusu, OnlyOffice, sertifika sunucusu) arayüzden kaydedilir ve çalışabilirlik testleri yine arayüzden yapılır. Roller Active Directory gruplarına bağlanır; yetki yönetimi dizindeki grup üyeliğini izler.

Bağlantılar ekranı: LDAPS sunucu, port, arama tabanı ve kullanıcı filtresi tanımı

Bağlantılar ekranı — LDAPS örneği: sunucu, arama tabanı ve kullanıcı filtresi arayüzden tanımlanır, tek tıkla test edilir.

Modüller

Kişisel pano

Her kullanıcıyı kendi panosu karşılar: anlık mesai durumu (PDKS'den), açık BT talepleri, üzerindeki zimmetler, eksik belgeleri ve kurum duyuruları tek ekranda toplanır.

Envanter

BT'nin sorumluluğundaki demirbaş, sarf malzeme, bileşen ve lisansların uçtan uca takibi. Genel bakış ekranı cihaz dağılımını, kritik stok kalemlerini ve süresi yaklaşan lisansları öne çıkarır.

Envanter genel bakış: kategori, lokasyon ve departmana göre demirbaş dağılımı

Demirbaş kartı, uç nokta koruma ajanından çekilen donanım ve koruma durumu verisiyle zenginleşir; 802.1x istemci sertifikasının durumunu ve süresini gösterir. Bileşenler, lisanslar, bakım geçmişi, garanti/onarım belgeleri ve atama geçmişi cihaz üzerinde izlenir; lazer markalamaya uygun QR etiket üretilebilir. Sarf, bileşen ve lisans girişleri elle ya da Sipariş Listesi modülünden otomatik yapılır; lisans tarafında koltuk/stok takibi ve aylık-yıllık gider hesabı tutulur.

Demirbaş detayı: uç nokta verileri, istemci ajanı, SSH ve uzak masaüstü eylemleri

Demirbaş kartından SSH ve VNC tabanlı uzak masaüstü oturumu, portal sunucusu aracı tutularak doğrudan başlatılabilir.

Destek

BT Yardım Masası işlevlerinin tamamı: arıza, talep ve izin kayıtları kullanıcı dostu üç akışa ayrılır. SLA metrikleri dinamik ayarlanır; tanımlanan arıza türleri, kurumun ihtiyaç haritasını çıkaran istatistikler üretir. Donanım arızaları demirbaşla ilişkilendirilir — böylece cihazların kronik arıza geçmişi envanterde birikir.

Destek genel bakış: açık arıza/talep sayıları, SLA durumu ve dağılım grafikleri

Talep türleri, kullanıcıya sunulan formlarıyla birlikte arayüzden tasarlanır; her türün kendi onay akışı vardır ve sürükleyip düzenlenebilir. İzin talepleri İnsan Kaynakları'nın yönetimindedir: akışları ve formları İK yetkilisine açık bir panelden düzenlenir, PDKS ile entegre çalışır.

Onay akışı düzenleyici: departmana göre adımlar, takım yöneticisi ve ERP yetkilisi onayı

Onay akışları talep türü ve departman bazında düzenlenir; akış kapalıysa talep doğrudan BT'ye düşer.

Onay

Birim yöneticileri ve rol sahipleri, tüm modüllerden gelen bekleyen onayları tek ekrandan onaylar, reddeder veya yorumlar; menüdeki rozet bekleyen sayısını gösterir, geçmiş onaylar ayrı bir kartta durur. Her talep, türüne tanımlı akışı adım adım gösterir: kimin onayladığı, kimin sırada olduğu her an görünürdür.

İzin talebi onay akışı: takım yöneticisi, üst yönetici ve İK onayı adımları

PDKS

Biostar biyometrik ve kart okuyucu terminallerden gelen ham geçiş verisi işlenip okunaklı bir mesai arayüzüne dönüştürülür. Çalışma kuralları, yarı zamanlı ayrıcalıkları, resmi tatiller, izin türleri ve bakiye hesaplama yöntemleri İnsan Kaynakları'nın yönettiği ayar ekranlarından tanımlanır; tüm personel filtrelenip raporlanabilir.

PDKS mesai ekranı: günlük çalışma hedefi, molalar ve gün bazında mesai dökümü

BT Monitör

İstemcilere yüklenen Wazuh SIEM ajanlarından beslenen izleme modülü. Ajan durumları, kural bazlı log kayıtları ve uç nokta olayları havuzda toplanır; tanımlanan kurallar tetiklendiğinde alarm üretilir. Alarmlar BT ekip üyelerine atanır ve takibi Destek modülü üzerinden ilerler. Portal içindeki arkaplan servislerinin durumu da aynı ekrandan gözetlenir.

BT Monitör genel bakış: olay hacmi, seviye dağılımı ve en çok tetiklenen kurallar

Dosya Sunucusu

SMB paylaşımında tarayıcıdan gezinme, indirme, yükleme ve klasör işlemleri. Erişim kararı ayrı bir yetki tablosundan değil, Windows Authz API'siyle gerçek NTFS ACL'sinden okunur; fiziksel yol istemciye hiç gitmez, her erişim IP ve tarayıcı bilgisiyle denetim kaydına düşer. Tüm doküman hareketleri sürüm geçmişiyle izlenir ve geri getirilebilir. OnlyOffice entegrasyonu ofis dosyalarında web tabanlı eş zamanlı çalışma kazandırır — aynı belgeyi açanlar aynı düzenleme oturumunda buluşur, kaydetme paylaşımdaki asıl dosyaya gider. Böylece Microsoft Office bağımlılığı ortadan kalkar; kapalı ve açık ağlar arası dosya transferleri de onaylı ve kayıtlı bir akışla yürür.

Dosya sunucusu alanları: gelen transferler, güvenilir uygulamalar, kişisel ve departman klasörleri

Dokümanlar

Kalite Yönetim Sistemleri biriminin yönettiği yayın ortamı: tüm kullanıcıların erişmesi gereken form, prosedür ve şablonlar burada yayınlanır. Birimlere özel dokümanlar yüklenebilir, revizyon takibi yapılır.

Dokümanlar modülü: doküman no, revizyon ve kategori sütunlarıyla yayın listesi

Rezervasyon

Toplantı odaları, her odayı temsil eden posta kutularıyla birlikte yönetilir. Portaldan yapılan rezervasyon katılımcılara takvim daveti (ICS) gönderir; arkaplan servisi oda postalarını IMAP ile okuduğundan, Outlook'tan portaldan bağımsız oluşturulan davetler de otomatik olarak portal takvimine düşer (yetkisiz kullanıcılar yalnızca "meşgul" görür). İnsan Kaynakları ayrıca periyodik geri bildirim oturumları açar; kullanıcılar bu oturumlara portaldan kayıt olur.

Yeni geri bildirim oturumu: tarih, randevu aralığı ve oda seçimiyle İK oturumu planlama

Sohbet

Kurum içi bilgi paylaşımının kalıcılığı ve gizliliği için geliştirilen mesajlaşma uygulaması: SignalR ile gerçek zamanlı direkt mesaj ve gruplar; dosya paylaşımı, tepki, alıntılı yanıt, anma ve arama. Mesaj içerikleri, sohbete özel kurulan PostgreSQL sunucusunda şifreli saklanır; kullanıcılar kendi grup ve sohbetleri için API bilgisine erişebilir. Kısıtlama ve kurallar yönetim panelinden belirlenir.

Araçlar

PDF Düzenle — StirlingPDF'in yetenekleri API üzerinden portal arayüzüne taşındı: birleştirme, bölme, sayfa düzenleme, dönüştürme, sıkıştırma, parola ve filigran dahil 19 işlem. Yüklenen dosya yalnızca işlem süresince kullanılır, sunucuda saklanmaz.

PDF araçları: birleştir, böl, dönüştür, sıkıştır ve parola işlemleri kartları

Sertifika İmzalama — Kurumsal sertifika otoritesinden (ADCS) sertifika almanın tek yolu portaldır: yetkili kullanıcı CSR'ını yükler ya da anahtarı portala ürettirir, tanımlı şablonla imzalar ve istediği biçimde indirir. Özel anahtar sunucuda üretilir ve hiçbir yere kaydedilmez — ne veritabanına, ne diske, ne loglara.

Sertifika imzalama: şablon seçimi, CN/SAN alanları ve kurumsal CA zinciri indirme

Organizasyon ve diğer modüller

  • Organizasyon Şeması — Kişi ağacı ve çalışan rehberi, ayrı bir tablo tutulmadan AD aynasından türetilir: takımlar department alanından, hiyerarşi manager zincirinden gelir. Ağaç saf CSS ile görünür genişliğe ölçeklenir; rehber XLSX/PDF/CSV indirilebilir.
  • Anket Yönetimi — Soru/seçenek tasarımı, koşullu sorular, faktör kataloğu ve puanlama; kullanıcı başına tek cevap ve cevap geldikten sonra donan soru yapısıyla sonuç bütünlüğü korunur. Sonuçlar raporlanır ve Excel'e aktarılır.
  • Yemek Siparişi — Öğün oturumları firma katalogundan görselli menüyle açılır; self-servis seçim, ekip girişi, misafir kaydı, canlı pano ve hatırlatma bildirimleri. Teslim noktası kişinin AD kaydından ön-dolu gelir.
  • İK belge yönetimi — Belge türü kataloğu, kişi bazlı zorunluluk sapmaları ve sürümlü belge takibi; panodaki "eksik belge" uyarıları buradan beslenir.

Departman modülleri

Amaç, birimlerin Excel ve Word ile yürüyen süreçlerinin tamamını portala taşımak. Modüller departmanlara atanır; okuma/yazma yetkilerini ilgili departman yöneticisi yönetir. Bugüne kadar eklenenlerden bazıları:

  • Görev Takibi — Proje Yönetimi departmanı için
  • Envanter Bilgi Sistemi — İdari İşler'in makine, test cihazı, drone gibi varlıklarının zimmet, bakım ve garanti takibi
  • MRP — Üretim Planlama'nın farklı lokasyondaki depolama cihazından API ile stok görüntülemesi ve alarm kuralları
  • Sipariş Listesi — BT satınalma siparişlerinin takibi; teslim alınan kalemler envantere otomatik işlenir, kullanıcı talepleriyle eşleştirilir

Linux istemci ajanı

Uç nokta koruma yazılımının Ubuntu istemcilerdeki eksiklerini kapatmak için Debian tabanlı bir sistem servisi geliştirdim. Ajan:

  • 802.1x için istemci sertifikalarını otomatik yeniler, imzalatır ve NetworkManager yapılandırmasını yapar
  • Donanım bilgilerini envantere aktarır
  • Uç nokta koruma servislerinin durdurulması ya da değiştirilmesine karşı alarm üretir
  • NTP ve DNS yapılandırmalarını uygular
  • SSH ve VNC tabanlı uzak masaüstü oturumlarının portal arayüzünden, portal sunucusu aracı tutularak güvenli biçimde başlatılmasını sağlar

Politikalar portaldan düzenlenir; ajanlar değişiklikleri 15 dakika içinde çekip benimser ve portalın belirlediği güncel sürüme kendilerini yükseltir.

İzlenebilirlik

Portal içindeki API istekleri, arkaplan servis sonuçları, bağlantı cevapları ve kullanıcı eylemleri denetim kaydında toplanır; olay türü, kişi, sonuç ve hedef bazında filtrelenip dışa aktarılabilir. Böylece "kim, ne zaman, neye erişti" sorusunun cevabı her modül için tek yerdedir. Uygulama logları Serilog ile hem dosyaya hem SQL'e yazılır.

Geliştirme pratiği

Tek kişilik bir proje olsa da kurumsal yazılım disipliniyle yürür:

  • Katmanlı mimari — Domain hiçbir projeye referans vermez; Application iş kurallarını, Infrastructure EF Core / AD / loglamayı taşır, API yalnızca controller ve DTO'dur. Önyüzde modüller features/ altında ayrışır; Ant Design bileşenleri yalnızca paylaşılan sarmalayıcılardan import edilir, tasarım token'ları tek yerden yönetilir.
  • Test — xUnit ile birim ve entegrasyon testleri.
  • Sürüm disiplini — Conventional Commits, git hook'larıyla zorunlu kılınır; her değişiklik CHANGELOG'a işlenir.
  • Kural kitabı — Mimari, güvenlik, yetkilendirme ve arayüz kararları tek bir kural dosyasında yaşar; kural önce yazılır, sonra uygulanır. Ortam gerçekleri (Wazuh, PDKS, dosya sunucusu, entegrasyonlar) ayrı dokümanlarda tutulur — yapay zekâ ajanlarıyla çalışmaya uygun, kendi kendini açıklayan bir depo.

Durum

Geliştirmeler kurum yapısında sürekli devam edecek.