Microsoft Ocak ayından sonra birbirinden farklı e-posta protokolleri için Basic Authentication’u kapatacağını tenant yöneticilerine duyurmuştu.
Çözüm olarak sunulan Exchange servisleri için Modern Authentication mimarisi Basic Authentication’a göre daha güvenli bir yapı sunmaktadır. Basic Authentication’dan Modern Authentication‘a geçişin nedenini detaylı öğrenmek için yazımı okumaya devam edin.
Microsoft 1 Ekim 2022’den itibaren, seçmece yaparak Tenant seçerek MAPI, RPC, OAB, EWS, POP, IMAP, EAS ve Remote PowerShell protokolleri için Basic Authentication’u kapatmaya başlayacak ve kapatma işlemi gerçekleşmeden önce Message Center’a 7 gün öncesinden bildirim gönderecek. 😊 Çoğu insan bu kısımdaki mailleri görmediği gelindiği düşünülürse aslında hata gelmeye başlandığında fark edilecek.
Tenant yöneticileri ve kullanıcıların SMTP Auth tarafındaki soru işaretleri çözüm sunuldu;
Microsoft, Modern Authentication kısmında SMTP Auth için herhangi bir ayarı kapatmayacaklarını bildirdi. Peki Microsoft 365, neden Basic Authentication yerine Modern Authentication’a geçişi zorunlu kılıyor?
HTTP Basic Authentication (Temel kimlik doğrulaması), kullanıcı adı ve parola parametreleri ile erişim talebi gönderen klasik 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. Doğrulama yönteminde istemcinin doğru giriş bilgilerini girmesi gerekmektedir.
Basic Authentication ile kullanacağımız bir sayfada gerçekleşen HTTP el sıkışma aşamalarını aşağıda anlatmaya çalışacağım ancak daha detaylı bir şekilde incelemek isterseniz RFC-7617 The ‘Basic’ HTTP Authentication Scheme dökümanı inceleyebilirsiniz.
1. Tarayıcı (İstemci), Basic Authentication kullanan sayfaya istek atar.
2. Sunucu, HTTP durum kodunu (401
) ve istemcinin Basic Authentication başlatması gerektiğini belirten Basic
değerli WWW-Authenticate
değişkenini http başlığıyla gönderir.
WWW-Authenticate : Basic
3. İstemci tarayıcısı bu başlıkla karşılaştığında aşağıdaki gibi kullanıcı adı ve şifre için bir giriş alanına sahip pencereyi oluşturur.
4. İstemci, açılır pencerede kullanıcı adı ve şifre bilgilerini girer ve gönderir. Burada tarayıcı, base64
kodlamasını kullanarak girilen kullanıcı adını ve şifreyi iki nokta üst üste işaretiyle http header halinde sunucuya iletilir.
Örneğin, kullanıcı adını admin
ve şifreyi 12345
olarak girdiğinizi varsayalım. Tarayıcı bunu aşağıdaki gibi kodlayacaktır.
Kodlama : Base64Encode('admin:12345')
Çıktı : YWRtaW46MTIzNDU=
5. İstemci tarayıcısı daha sonra Authorization
başlığının içine bu Base64 değerini ekleyerek gönderir. Aşağıdaki gibi kodlanmış değerden önce Basic
dizesini başına da ekleneceğini unutmayın.
Authorization : Basic YWRtaW46MTIzNDU=
6. Sunucu, Authorization
başlığında istemci tarafından gönderilen encode değerini sunucuda kayıtlı olan kullanı adı ve şifrenin aynı şekilde alınmış base64 encode değeri ile karşılaştırır. Her iki değer de eşleşirse, istenen verilerle birlikte HTTP durum kodu 200
‘ü gönderir. Ancak encode değerleri eşleşmezse, sunucu WWW-Authenticate
ile belirtildiği gibi 401 gönderir ve 2. adıma döner.
Basic Auth. ile hazırladığım örnek bir sayfada doğrulama sonrası yetki almış bir şekilde gezindiğim sayfanın HTTP başlığında aşağıdaki resimde olduğu gibi Authorization
etiketini görürüz.