Kurumsal yazılım, güvenlik ve mühendislik notları
Müşteri Portalında SSO ve Oturum Güvenliği: Kurumsal Uygulamalar İçin Temel Yaklaşım
Güvenlik ·
Yazar: Abdulsamet Ok
Editörler: Ege ÜLKER, Abdulsamet Ok
SSO Nedir ve Kurumsal Portallarda Neden Önemlidir?
Kurumsal müşteri portalları, B2B platformlar ve yönetim panelleri; yalnızca kullanıcıların sisteme giriş yaptığı ekranlardan ibaret değildir. Bu uygulamalar çoğu zaman müşteri bilgileri, finansal veriler, operasyonel kayıtlar, raporlar ve kritik iş süreçlerine erişim sağlar.
Bu nedenle güvenlik yaklaşımının yalnızca “kullanıcı adı ve parola doğru mu?” sorusuna indirgenmesi yeterli değildir.
Modern bir müşteri portalında kimlik doğrulama kadar oturumun nasıl başlatıldığı, ne kadar süre açık kaldığı, token'ların nasıl yenilendiği, kullanıcının sistemden nasıl çıkarıldığı ve kritik işlemlerde ek doğrulama gerekip gerekmediği de güvenlik mimarisinin önemli parçalarıdır.
Bu yazıda kurumsal müşteri portallarında SSO, token yaşam döngüsü, oturum yönetimi, güvenli çıkış ve step-up authentication konularını temel prensipleriyle ele alıyoruz.
• • •
Single Sign-On (SSO), kullanıcının tek bir kimlik doğrulama işlemiyle birden fazla sisteme veya uygulamaya erişebilmesini sağlayan bir yapıdır.
Örneğin bir şirket çalışanı veya iş ortağı, kurumun merkezi kimlik sağlayıcısı üzerinden giriş yaptıktan sonra müşteri portalına yeniden parola girmeden erişebilir.
SSO'nun en önemli avantajlarından biri kullanıcıların farklı sistemler için ayrı ayrı parola oluşturma ihtiyacını azaltmasıdır. Bu durum hem kullanıcı deneyimini iyileştirir hem de parola tekrar kullanımı, zayıf parola tercihleri ve parola yönetimi gibi risklerin azaltılmasına katkı sağlar.
Ancak burada önemli bir nokta vardır:
- SSO kullanmak tek başına uygulamayı güvenli hale getirmez.
- SSO sonrasında oluşturulan oturumun nasıl yönetildiği en az kimlik doğrulama kadar önemlidir.
• • •
Merkezi Kimlik Doğrulama Güvenlik Yönetimini Kolaylaştırır
Kurumsal yapılarda farklı uygulamaların kendi kullanıcı adı ve parola
sistemlerini yönetmesi zamanla karmaşık bir yapıya dönüşebilir.
Bir
çalışan şirketten ayrıldığında veya bir iş ortağının erişiminin iptal edilmesi
gerektiğinde birden fazla sistem üzerinde ayrı ayrı işlem yapılması
gerekebilir.
Merkezi bir kimlik sağlayıcı kullanıldığında ise kullanıcı erişimleri daha kontrollü yönetilebilir.
Özellikle OpenID Connect, OAuth 2.0 ve SAML gibi yaygın standartlarla çalışan kimlik sistemleri, kurumsal uygulamaların merkezi kimlik altyapılarıyla entegre edilmesine yardımcı olur.
Böylece kullanıcı doğrulama işlemleri uygulamanın kendi içerisinde tutulmak yerine bu konuda uzmanlaşmış bir kimlik altyapısı üzerinden gerçekleştirilebilir.
• • •
Token Güvenliği SSO'nun Görünmeyen Tarafıdır
Kullanıcı giriş yaptıktan sonra uygulamalar çoğunlukla kullanıcının oturumunu temsil eden token'larla çalışır.
Bu noktada genellikle iki temel yapı bulunur:
Access Token, kullanıcının belirli kaynaklara erişebilmesini sağlar.
Refresh Token ise access token'ın süresi dolduğunda kullanıcıdan tekrar giriş yapmasını istemeden yeni bir access token alınmasına yardımcı olur.
Buradaki güvenlik dengesi oldukça önemlidir.
Access token'ın çok uzun süre geçerli olması, ele geçirilmesi halinde saldırganın sistemi daha uzun süre kullanabilmesine neden olabilir.
Token süresinin çok kısa tutulması ise kullanıcı deneyimini olumsuz etkileyebilir ve gereksiz yere sürekli kimlik doğrulama yapılmasına yol açabilir.
Bu nedenle kurumsal uygulamalarda token sürelerinin rastgele belirlenmesi yerine sistemin risk seviyesine göre bir token yaşam döngüsü politikası oluşturulması gerekir.
• • •
Token Yaşam Döngüsü Nasıl Tasarlanmalıdır?
Bir token oluşturulduğunda sadece “ne zaman sona erecek?” sorusuna cevap vermek yeterli değildir.
Token'ın hangi koşullarda yenilenebileceği, ne zaman tamamen geçersiz hale getirileceği ve kullanıcı yetkilerindeki değişikliklerin aktif oturumlara nasıl yansıyacağı da düşünülmelidir.
Örneğin kullanıcının erişim yetkisi kaldırıldığında, daha önce oluşturulmuş uzun ömürlü bir token'ın saatlerce kullanılmaya devam etmesi istenmeyebilir.
Benzer şekilde kullanıcının parolası değiştirildiğinde veya hesapta şüpheli bir aktivite tespit edildiğinde açık oturumların sonlandırılması gerekebilir.
Güvenli bir oturum mimarisinde access token süresi, refresh token süresi, yenileme politikaları, kullanıcı pasifliğinde uygulanacak zaman aşımı, maksimum oturum süresi, yetki değişiklikleri ve şüpheli giriş senaryoları açık şekilde tanımlanmalıdır.
Bu politikaların sistem geliştirilirken belirlenmesi, ilerleyen aşamalarda ortaya çıkabilecek güvenlik risklerinin azaltılmasına yardımcı olur.
• • •
Refresh Token Rotasyonu Neden Önemlidir?
Refresh token'lar genellikle access token'lardan daha uzun süre geçerli olduğu için daha dikkatli korunmalıdır.
Modern güvenlik mimarilerinde yaygın kullanılan yöntemlerden biri refresh token rotation yaklaşımıdır.
Bu yapıda refresh token her kullanıldığında yeni bir refresh token oluşturulur ve eski token geçersiz hale getirilir.
Böylece daha önce kullanılan bir refresh token'ın ele geçirilmesi durumunda aynı token'ın tekrar kullanılmasının önüne geçilebilir.
Özellikle yüksek güvenlik gerektiren müşteri portallarında token rotasyonu ve token iptal mekanizmaları önemli bir güvenlik katmanı oluşturabilir.
• • •
Oturum Süresi Kullanıcı Deneyimi ile Güvenlik Arasında Dengelenmelidir
Oturum yönetiminde karşılaşılan temel problemlerden biri güvenlik ve kullanım kolaylığı arasındaki dengedir.
Bir oturum çok kısa tutulduğunda kullanıcılar sürekli tekrar giriş yapmak zorunda kalabilir.
Çok uzun tutulduğunda ise kullanıcı bilgisayardan ayrılmış olsa bile portal erişilebilir durumda kalabilir.
Bu nedenle genellikle iki farklı süre kavramı birlikte ele alınır.
Idle Timeout, kullanıcının belirli bir süre işlem yapmaması halinde oturumun sona ermesini ifade eder.
Absolute Timeout ise kullanıcı aktif şekilde sistemi kullanıyor olsa bile belirli bir toplam süre sonunda yeniden kimlik doğrulama yapılmasını gerektirir.
Özellikle finansal veya hassas verilerin bulunduğu kurumsal sistemlerde oturumların kontrolsüz şekilde uzun süre açık kalması güvenlik açısından değerlendirilmesi gereken önemli bir konudur.
• • •
“Beni Hatırla” Özelliği Dikkatli Tasarlanmalıdır
Kullanıcı deneyimini geliştirmek için birçok uygulamada “Beni Hatırla” seçeneği bulunur.
Ancak kurumsal sistemlerde bu fonksiyon dikkatli tasarlanmalıdır.
“Beni Hatırla” seçeneğinin kullanılması, aktif oturumun süresiz şekilde açık kalması anlamına gelmemelidir.
Bunun yerine uzun süreli ancak kontrollü bir kimlik doğrulama mekanizması kullanılabilir. Kullanıcının cihazı, oturum geçmişi ve risk seviyesi değerlendirilerek gerektiğinde yeniden kimlik doğrulama talep edilebilir.
Özellikle ortak kullanılan bilgisayarlarda kalıcı oturum mekanizmalarının daha büyük risk oluşturabileceği unutulmamalıdır.
• • •
Güvenli Çıkış Sadece “Logout” Butonuna Basmak Değildir
Birçok uygulamada çıkış işlemi yalnızca tarayıcı içerisindeki kullanıcı bilgisinin temizlenmesi şeklinde uygulanır.
Ancak SSO kullanılan sistemlerde bu yaklaşım her zaman yeterli değildir.
Kullanıcı portal içerisinden çıkış yaptığında uygulamanın kendi oturumu kapanabilir ancak merkezi kimlik sağlayıcısındaki oturum devam ediyor olabilir.
Bu durumda kullanıcı portalı yeniden açtığında herhangi bir parola girmeden tekrar giriş yapabilir.
Kurumsal uygulamalarda bu davranışın bilinçli şekilde tasarlanması gerekir.
Kullanıcının “Çıkış Yap” dediğinde yalnızca uygulamadan mı yoksa merkezi kimlik oturumundan da mı çıkacağı ürün ve güvenlik politikalarına göre açık şekilde belirlenmelidir.
• • •
Birden Fazla Sekmede Oturum Yönetimi
Web uygulamalarında sık karşılaşılan fakat çoğu zaman gözden kaçan senaryolardan biri çoklu tarayıcı sekmesi problemidir.
Örneğin kullanıcı müşteri portalını üç farklı sekmede açmış olabilir.
Birinci sekmede “Çıkış Yap” butonuna bastığında diğer iki sekmenin halen açık oturum varmış gibi davranması kullanıcı açısından kafa karıştırıcı, güvenlik açısından ise riskli olabilir.
İdeal yapıda oturum değişikliklerinin açık sekmelere mümkün olduğunca tutarlı şekilde yansıtılması gerekir.
Kullanıcı bir sekmede çıkış yaptığında diğer sekmelerde gerçekleştirilecek işlemlerde oturumun artık geçerli olmadığı anlaşılmalı ve kullanıcı güvenli şekilde giriş ekranına yönlendirilmelidir.
• • •
Token'lar Nerede Saklanmalı?
Web uygulamalarındaki kritik güvenlik konularından biri token'ların istemci tarafında nasıl saklandığıdır.
Özellikle uzun ömürlü kimlik bilgilerinin istemci tarafından kolayca erişilebilen depolama alanlarında tutulması, uygulamada oluşabilecek farklı güvenlik açıklarının etkisini artırabilir.
Bu nedenle mimari tasarım yapılırken tarayıcı tarafında hangi verilerin tutulduğu, JavaScript'in hangi verilere erişebildiği ve cookie güvenlik ayarlarının nasıl yapılandırıldığı dikkatle değerlendirilmelidir.
Cookie tabanlı yapılarda HttpOnly, Secure ve SameSite gibi özellikler doğru şekilde kullanılmalı; sistemin CSRF ve XSS gibi web uygulaması saldırılarına karşı koruma mekanizmaları ayrıca tasarlanmalıdır.
Burada önemli olan yalnızca belirli bir teknolojiyi kullanmak değil, uygulamanın tehdit modeline uygun bir oturum mimarisi oluşturmaktır.
• • •
Yetkilendirme ile Kimlik Doğrulama Aynı Şey Değildir
Güvenlik tasarımında sık yapılan hatalardan biri kullanıcının giriş yapmış olmasının gerekli tüm işlemleri yapmaya yetkili olduğu anlamına geldiğini düşünmektir.
Authentication, kullanıcının kim olduğunu doğrular.
Authorization ise bu kullanıcının hangi işlemleri gerçekleştirebileceğini belirler.
Bir müşteri portalında kullanıcı başarılı şekilde giriş yapmış olsa bile yalnızca kendi firmasına, kendi müşterilerine veya kendisine tanımlanmış kaynaklara erişebilmelidir.
Özellikle çok müşterili SaaS ve B2B sistemlerde tenant izolasyonu bu nedenle kritik öneme sahiptir.
Bir müşterinin başka bir müşterinin verilerine erişebilmesi, sistem içerisindeki en ciddi güvenlik problemlerinden biri olabilir.
• • •
Oturumlar İzlenebilir Olmalıdır
Kurumsal güvenliğin önemli parçalarından biri de audit logging ve izlenebilirliktir.
Sistemde kritik işlemlerin kim tarafından, ne zaman ve hangi oturum üzerinden gerçekleştirildiğinin kayıt altına alınması olay incelemelerinde önemli bilgiler sağlayabilir.
Başarılı ve başarısız giriş denemeleri, oturum açma ve kapatma işlemleri, yetki değişiklikleri, kritik hesap hareketleri ve şüpheli aktiviteler güvenlik politikalarına uygun şekilde kaydedilebilir.
Ancak log sisteminin kendisi de hassas bilgiler içerebilir.
Parolaların, tam token değerlerinin veya gereksiz kişisel verilerin loglara yazılmaması gerekir.
• • •
Güvenli Bir Müşteri Portalı İçin Katmanlı Yaklaşım
Müşteri portalı güvenliği tek bir teknolojiyle çözülebilecek bir konu değildir.
SSO kullanmak önemli bir adım olabilir ancak güvenli bir sistem için kimlik doğrulama, oturum yönetimi, token politikaları, yetkilendirme, MFA, güvenli çıkış, izleme ve uygulama güvenliği birlikte değerlendirilmelidir.
Özellikle kurumsal portallarda güvenlik mimarisi tasarlanırken şu soruların cevapları net olmalıdır:
- Bir kullanıcı sisteme nasıl giriyor?
- Oturumu nasıl devam ediyor?
- Yetkileri nasıl kontrol ediliyor?
- Kritik işlemlerde nasıl doğrulanıyor?
- Sistemden çıktığında erişimi gerçekten sona eriyor mu?
Bu soruların her birine net cevap verebilen bir mimari, müşteri portalının güvenlik temelini önemli ölçüde güçlendirir.
• • •
Güvenlik Bir Özellik Değil, Süreçtir
Bir müşteri portalı yayına alındığında güvenlik çalışması tamamlanmış olmaz.
Yeni tehditler, değişen kullanıcı ihtiyaçları, altyapı güncellemeleri ve yeni entegrasyonlar güvenlik politikalarının sürekli olarak yeniden değerlendirilmesini gerektirir.
SSO yapılandırmaları, token süreleri, erişim politikaları, kullanıcı rolleri, bağımlılıklar ve güvenlik logları düzenli olarak gözden geçirilmelidir.
Çünkü kurumsal uygulamalarda güvenlik yalnızca kullanıcı girişini korumak değildir.
Doğru kullanıcının, doğru zamanda, doğru kaynağa, doğru yetkiyle erişmesini ve bu erişimin gerektiğinde güvenli şekilde sona ermesini sağlamaktır.
Blog ve haberlere abone olun
Yeni yazılar yayınlandığında e-posta alın. İstediğiniz zaman abonelikten çıkabilirsiniz.
İlgili içerikler
Yazılım Rehberi
Gaziantep Yazılım Ortağı: İhracat ERP, e-Belge ve B2B Portallar
Gaziantep yazılım ihtiyaçlarını tekstil, halı ve gıda ihracatçıları açısından ele alıyoruz: ihracat ERP, e-Fatura ve gümrük entegrasyonu, çok tesisli üretim ve B2B bayi portalları.
Yazılım Rehberi
Malatya Yazılım Ortağı: Kayısı, İhracat ve İş Sürekliliği İçin Kurumsal Yazılım
Malatya yazılım ihtiyaçlarını kayısı işleme ve ihracatı, OSB tekstili ve deprem sonrası yeniden yapılanma açısından ele alıyoruz: izlenebilirlik, ihracat belgeleri, bulut yedekleme ve iş sürekliliği.