Office 365 ile hayatımıza giren Modern Authenticaton terimine Microsoft tarafından Basic Authentication’un devre dışı bırakılacak olmasıyla son zamanlarda daha fazla maruz kalmaya başladık. Bu nedenle Modern Authentication ve Basic Authentication terimlerine yakından bakacağımız kısa bir blog yazısı hazırlamak istedim.
Önce Basic Authentication nedir ve bize neden yetmedi buna bir bakalım.
Basic Authentication, kullanıcı adı ve parola parametreleri ile erişim talebi gönderen, isminden de anlaşılacağı gibi basit ve geleneksel bir oturum açma yöntemidir. Bu yöntemde önce client sunucuya bir erişim talebi gönderir. Bu talebe istinaden sunucu Authorization (yetkilendirme) bilgilerini rica eder. Karşınıza çıkan oturum açma ekranına girdiğiniz kullanıcı adı ve parola bilgileriniz Base64 yöntemi ile kodlanarak basit bir http header halinde sunucuya iletilir. Fakat iletilen bu header için ne ek bir şifreleme ne de hash yöntemi kullanılmaz. Dolayısıyla bu paketi yakalayan birisi header üzerindeki bilgileri çok basit bir şekilde decode ederek oturum açma bilgilerinizi ele geçirebilir.
Örneğin yukarıdaki oturum açma senaryosunda kullanıcı tarafından gönderilen HTTP header içerisindeki bilgilere bakalım. Authorization: Basic YWxpY2U6cGFzc3dvcmQ=
Buradaki YWxpY2U6cGFzc3dvcmQ= metnini web üzerindeki basit bir Base64 decode sayfasına yazıyorum ve kullanıcı adının alice, parolanın ise password olduğunu görüyorum.
Buna ek olarak Basic Authentication ek doğrulama yöntemleri ile de uyumlu çalışmaz. Bu nedenle daha yeni oturum açma ve doğrulama yöntemlerine ihtiyaç duyulmuştur. Geliştirilen bu yeni yöntemleri de Modern Authentication çatısı altında ele alıyoruz.
Basic Authentication’un neden çağ dışı olduğuna değindik. Şimdi Modern Authentication kısmına geçelim.
Modern Authentication, kullanıcıların Microsoft servislerine erişirken kullandığı yenilikçi oturum açma ve yetkilendirme yöntemlerini kapsayan bir çatı tabirdir. Çok faktörlü kimlik doğrulama (MFA), Koşullu Erişim (Conditional Access), Smard Card Authentication, Sertifika tabanlı oturum açma ve biyometrik oturum açma/doğrulama yöntemleri bunlardan bazıları.
Modern Authentication çerçevesindeki oturum açmalarda genellikle SAML, ADAL (Azure Active Directory Authentication Library) ve OAuth protokolleri kullanılır. Bu protokollerin genel özelliği kimlik bilgilerini direkt kullanmak yerine bir token veya hash yöntemi kullanmasıdır. Böylece kimlik bilgileriniz paketler içerisinde açık bir şekilde taşınmaz. Hatta kendisi hiç bir yere gitmez sadece ona karşılık gelen temsili bir “değer” paketler içerisinde taşınarak kimlik doğrulaması gerçekleşir. Ayrıca bu protokollerin aracılık ettiği birçok kimlik doğrulama yöntemi aynı zamanda MFA olarak bildiğimiz ikinci faktör kimlik doğrulama yöntemi olarak da kullanılabiliyor. Aşağıdaki tabloda bunlara göz atabilirsiniz.
Aşağıda Microsoft’un oturum açma yöntemlerini değerlendirdiği bir görsel paylaşıyorum. Parolaya ek olarak çok faktörlü kimlik doğrulama yöntemlerine “eh işte fena değil” dese de özellikle “passwordless” olarak tabir edilen oturum açma yöntemini şiddetle tavsiye ediyor. Özetle parolayı sakınıp duracağımıza kurtulalım şu paroladan diyor ? Kullanıcı bu yöntemde parola yerine direkt olarak Windows Hello, Authenticator uygulaması veya FIDO2 güvenlik anahtarı kullanabilir. Örnek verecek olursak parmak izi, yüz tanıma veya Authenticator uygulaması üzerinden bildirim/kod ile oturum açma gerçekleştirebiliriz.
Modern Authentication, 2017 sonrasında oluşturulan tenantlarda Exchange Online, SharePoint Online ve Skype for Business (Teams) servisleri için varsayılan olarak açık geliyor. Bir Microsoft 365 yöneticisini en çok ilgilendiren kısım ise son kullanıcıların Exchange Online servislerine erişirken yaşadığı oturum açma sorunlarıdır. Bunların genelde iki sebebi olur. Birincisi aşağıda da görebileceğiniz Modern Authentication’un tenant bazında açık olup olmamasıdır. Admin Center>>Settings>>Organization Settings>>Modern Authentication menülerini takip ederek bu özelliği kontrol edebilirsiniz. Burada kontrol edebileceğiniz bir diğer unsur Modern Authentication’u aktif etmenize rağmen alt başlıkta yer alan protokoller için Basic Authentication’a izin verebilmenizdir. Örneğin SMTP üzerinden e-posta gönderimi yaptığım hesaplarım olduğu için SMTP protokolü için Basic Authentication’a izin vermek istedim ve buradaki kutucuğu işaretledim. Fakat IMAP ve POP protokollerine asla ve kat’a izin vermiyorum ?
İkinci konu ise kullanıcının masaüstü Outlook uygulamasının Modern Authentication’ı destekleyip desteklemediği. Bazen versiyondan bazense Windows üzerindeki bir eksiklikten dolayı Outlook Modern Authentication penceresini getiremiyor. Sürekli Basic Authentication penceresinde (yukarıda her iki pencerenin de görselini paylaşmıştım) kullanıcı adı parola sorarak sizi sonsuz bir döngüye sokuyor. Siz burada kullanıcı adı parolayı doğru girseniz de etkin olan Modern Authentication gereksinimlerini karşılayamadığınız için oturum açma tamamlanamıyor. Bu durumda Windows kayıt defterine aşağıdaki EnableADAL Dword’ü eklemeniz ve değerini 1 vermeniz gerekiyor. Ardından Outlook’u kapatıp açmanız yeterli olacaktır. Artık Outlook, Modern Authentication penceresini getirebiliyor olacaktır. Ek olarak bazen Outlook önbelleğe başvurmasın diye kayıt defterinden ve Windows kimlik yöneticisinden kimlik bilgilerini temizlemekte fayda olabiliyor.
[HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Common\Identity]“EnableADAL”=dword:00000001
Umarım bu geçiş dönemi için kısa ve anlaşılır bir kaynak olmuştur. Modern Authentication’un getilerinden Multi Factor Authentication ve Conditional Access ile ilgili önceki yazılarıma da aşağıdaki bağlantılardan ulaşabilirsiniz.