Haberler

Exchange Online PowerShell Modülü 3.10.1 Sürümüne Güncellendi

Sertifika Tabanlı Kimlik Doğrulamadaki Sorun, Güncelleme Zorunluluğu Doğurdu

24 Temmuz’da Microsoft, Exchange Online yönetim PowerShell modülünü güncelledi. Modülün 3.10.1 sürümü PowerShell Galerisi’nden indirilebiliyor. Yayınlanan sürüm notlarına göre bu güncellemenin amacı, Microsoft’un ifadesiyle “sertifika tabanlı kimlik doğrulama (CBA) akışındaki hataları ve birkaç küçük performans sorununu” gidermek.

CBA Sorunu Exchange Online Yönetimini Aksattı

Geçtiğimiz hafta, Exchange Online ve Microsoft Graph PowerShell SDK için sertifika tabanlı kimlik doğrulama kullanan bir betiği güncellerken CBA ile ilgili bir soruna takıldım. İşin ilginç yanı, aynı betik bir kiracıda hiç çalışmazken diğerinde sorunsuz çalışıyordu. Sorunlu betik, önce sertifika tabanlı kimlik doğrulamayla Exchange Online’a bağlanıyor, ardından diğer cmdlet’leri çalıştırıyordu. Eski cmdlet’ler, eksik bir metot yüzünden bir gecikmenin ardından hata veriyor; REST tabanlı cmdlet’ler ise 401 yetkisiz erişim hatası döndürüyordu:

Connect-ExchangeOnline -CertificateThumbprint $Thumbprint -AppId $AppId -Organization $DefaultDomain -ShowBanner:$false

Get-Mailbox
Exception: Method invocation failed because [System.Net.Http.HttpResponseMessage] does not contain a method named 'GetResponseHeader'

Get-EXOMailbox
Error while querying REST service. HttpStatusCode=401 ErrorMessage=

Koddaki her şey normal görünüyordu; Get-ConnectionInformation cmdlet’i de geçerli bir oturum olduğunu bildiriyordu. Buna rağmen hiçbir Exchange Online cmdlet’i çalışmıyordu.

Sorunun Kaynağı Bir Yazılım Güncellemesiydi

Microsoft ile yaptığım görüşmelere göre, Microsoft’un dahili kimlik doğrulama hizmetinde (MISE) yapılan son bir güncelleme, token içindeki kiracı kimlik bilgilerinin nasıl dolduğunu değiştirmiş. Eski davranışa göre yazılmış senaryolar artık beklenenden farklı bir tanımlayıcı almaya başlamış; bu da bazı müşterilerde kiracı düzeyinde yetkilendirme ve arama işlemlerinin başarısız olmasına yol açmış.

Sorunu yaşadığım kiracının birden fazla onaylı (accepted) alan adı vardı. Ben de kiracının varsayılan alan adını kullandım, ama bu, hizmetin kendi alan adı olan onmicrosoft.com değildi. Kullanılacak alan adını belirleyen kod şuydu:

$TenantInfo = Get-MgOrganization
$DefaultDomain = $TenantInfo.VerifiedDomains | Where-Object { $_.IsDefault -eq $true } | Select-Object -ExpandProperty Name

Aynı betiği başka bir kiracıya karşı test ederken hizmet alan adını (onmicrosoft.com) kullandım ve her şey sorunsuz çalıştı. Sorunun kaynağının bu olduğu anlaşılıyor: Exchange Online bağlantıyı kabul ediyor, Get-ConnectionInformation cmdlet’i de geçerli bir oturum olduğunu gösteriyor; ama sonraki cmdlet çağrıları yetkilendirme hatasıyla başarısız oluyordu.

Microsoft’un açıklamasına göre MISE güncellemesi, bazı kimlik doğrulama akışlarının token içinde daha önceye göre farklı bir kiracı tanımlayıcısı almasına neden oldu. Kendi testlerimde, birden fazla onaylı alan adına sahip kiracılarda, hizmet alan adı (onmicrosoft.com) yerine varsayılan alan adı kullanıldığında yetkilendirme ve kiracı arama hataları ortaya çıktı. Bu benim, yaşadığım 401 hatasına dayanarak vardığım bir yorum; Microsoft sürüm notlarında belirttiğinden fazlasını açıklamadı.

İyi haber şu ki Microsoft bu sorunu 3.10.1 sürümünde düzeltti ve şimdiye kadar bu sürüm istikrarlı görünüyor. Ne yazık ki Microsoft, 365 PowerShell modülleri arasındaki derleme (build) çakışmalarını çözmek için henüz bir adım atmış değil.

Yetersiz Test mi, Yoksa Sadece Talihsiz Bir Durum mu?

Bazıları bu tür sorunları Microsoft’un test süreçlerinin yetersizliğine bağlayacaktır. Ben bu konuda o kadar emin değilim. Sorunu bizzat yaşamış olsam da, bunun yalnızca kiracıların küçük bir kısmını etkileyen istisnai bir durum olduğu görülüyor.

Microsoft’un, Exchange Online yönetim modülünün yeni sürümlerini diğer Microsoft 365 modülleriyle birlikte kapsamlı biçimde test etmediği düşünülürse, farklı onaylı alan adları kullanan sertifika tabanlı kimlik doğrulama gibi uç senaryoları kaçırmış olması hiç şaşırtıcı değil.

Microsoft 365, sayısız hareketli parçası ve bağımlılığıyla son derece karmaşık bir altyapı. Yazılımın kullanılabileceği her olası senaryoyu test etmek pratikte imkânsız. Belki ileride yapay zeka bu konuda bizlere yardımcı olur

Doğukan Yağız Sakin

As part of the Unifytech information systems team, I provide professional support regarding Office 365 and Azure products to all our consultancy customers. As the Cloud team, we take precautions against all possible problems by ensuring that all the products we consult for work properly. I enjoy participating in and supporting projects related to cloud technologies. I try to improve myself in this field as much as possible and learn something new every day. If you are interested in these issues and would like to discuss them, please do not hesitate to contact me. Kind regards. Doğukan Yağız Sakin Maybe you'd like to buy me coffee? :) https://buymeacoffee.com/dogukanyagizsakin

İlgili Makaleler

Bir yanıt yazın

Başa dön tuşu