Posta Kişilerini Azure AD Konuk Hesaplarına Geçirme


Azure AD Konuk Hesapları Daha İyi Bir Seçenek midir?

Kullanılmayan tartışmalarla eski Azure AD konuk hesaplarının kaldırılmasıyla ilgili bir tartışma, Microsoft 365 kuruluşlarının Exchange Online tarafından kullanılan posta iletişim nesnelerini konuk hesaplarıyla değiştirmeleri durumunda daha iyi durumda olacağı yönünde bir iddiaya yol açtı (benim tarafımdan değil). Bunun mantığı, Microsoft'un Azure AD Harici Kimlikler'in bir parçası olarak konuk hesaplarını geliştirmek ve sürdürmek için çok fazla mühendislik çalışması yapmasıdır. Kiracılar, basit nesneler olarak posta kişilerini kabul etmek yerine, Microsoft'un harici kimlikler için işlevsellik ve yaşam döngüsü yönetiminde yaptığı iyileştirmelerden yararlanır (başka bir makalede posta nesnelerini ve konuk hesaplarını karşılaştırıyorum).

Konuk hesaplarının daha iyi bir seçenek olduğu teklifini kabul ederseniz bir sonraki soru, posta kişilerini konuk hesaplarına nasıl taşıyacağınızdır. Microsoft bir geçiş seçeneği sunmuyor ve başka bir yerde uygun bir yardımcı program bulamıyorum, bu nedenle tek seçenek PowerShell ile kendi aracınızı oluşturmak.

Kavramsal olarak iş zor değil. Komut dosyasının, yeni konuk hesapları oluşturmak için verileri işleyip kullanması için posta kişilerini bulması gerekir. İşte yaptığım şey.

Talep Üzerine Geçiş

Kapsamlı tek bir Office 365 kiracıdan kiracıya geçiş çözümüyle tüm iş yüklerinizi ve Active Directory'yi taşıyın.

İletişim Verilerini Bulma

Posta kişilerini bulmak için Get-MailContact cmdlet'ini kullanabilirsiniz (mantıklı seçim), ancak Get-ExoRecipient cmdlet'i, e-posta kişilerini bulmaya yardımcı olan ek organizasyonel bilgiler döndürür. misafir hesabı. Bu kafa karıştırıcı olabilir, ancak şu şekilde açıklanmaktadır:

  • Exchange Online ve Azure AD'nin her ikisi de iletişim nesnelerini depolar. Exchange ve Azure AD, nesne ayarlarını senkronize eder.
  • Get-MailContact cmdlet'i Exchange kişisinden özellikleri döndürür.
  • Get-ExoRecipient cmdlet'i, bazı e-posta özellikleriyle birlikte Azure AD kişisinin özelliklerini döndürür.

Microsoft 365 yönetim merkezi ve Exchange yönetim merkezinin kullanıcı arayüzü, iki farklı nesnenin var olduğu gerçeğini gizler. Şekil 1, Microsoft 365 yönetim merkezi tarafından görüntülenen bir kişi örneğini göstermektedir. Ayarlar sekmesi, yöneticinin Exchange nesnesinin e-posta özelliklerini güncelleştirmesine olanak tanırken genel sekme, Azure AD'de depolanan kuruluş bilgilerine erişime olanak tanır.

Azure AD Konuk Hesapları Oluşturma

Kişileri bulduktan sonra komut dosyası, konuk hesapları oluşturmak için sette döngüye girer. İlk olarak, posta kişisi tarafından kullanılan e-posta adresinin bir misafir hesabı için zaten mevcut olup olmadığı kontrol edilir. Normalde Exchange Online, birden fazla posta özellikli alıcının aynı e-posta adresini paylaşmasına izin vermez. Exchange Online konuk hesapları için özel posta kullanıcı nesneleri oluşturduğundan konuk hesapları bir istisnadır (ayrıntılar için bu makaleye bakın).

Daha sonra komut dosyası, yeni konuk hesabının özelliklerini bir araya getirir. Microsoft Graph PowerShell SDK'sındaki cmdlet'lerin dikkate alınması gereken bazı ilginç zaafları (bazıları açıklanamayan hatalar diyebilir) içerdiğini unutmayın. Örneğin, SDK cmdlet'leri yalnızca boşluk karakterlerini kabul ettiğinden, bir özelliğe yazmak için PowerShell $Null değişkenini boş bir değer olarak kullanamazsınız.

Konuk hesaplarının parolaları vardır, dolayısıyla komut dosyasının bir parola oluşturması gerekir (konuk hesabında hiç kimse oturum açmasa bile). Yeni Azure AD kullanıcı hesapları oluşturmayla ilgili bu makalede açıklanana benzer bir rutin kullanıyorum.

Yeni konuk hesabını oluşturmak için komut dosyası, New-MgUser cmdlet'ini çalıştırır ve kaynak posta kişisinden doldurulan özelliklerin karma tablosunu iletir. Daha sonra konuk hesabının (veya daha doğrusu Exchange Online tarafından konuk hesabı için oluşturulan konuk posta kullanıcısının) OAB ve GAL gibi Exchange adres listelerinde göründüğünden emin olmak için Update-MgUser cmdlet'ini çalıştırır. Komut dosyası, kaynak posta kişisine sahte bir e-posta adresi atayarak ve onu Exchange adres listelerinden gizleyerek kullanılmayan bir duruma getirir. Ayrıca kişiyi taşınmış olarak işaretler.

  # Populate hash table with properties for the new account 
  $NewUserProperties = @{
    UserType = "Guest"
    GivenName = $FirstName
    Surname = $LastName
    DisplayName = $DisplayName
    JobTitle = $JobTitle
    Department = $Department
    MailNickname = $NickName
    Mail = $Contact.PrimarySmtpAddress
    UserPrincipalName = $UPN
    Country = $Country
    City  = $City
    PostalCode = $PostalCode
    OfficeLocation = $Office
    Company = $Company
    UsageLocation = $UsageLocation
    PasswordProfile = $NewPasswordProfile
    AccountEnabled = $true }

 # Try to create new guest account
 Try { 
    $NewGuestAccount = New-MgUser @NewUserProperties }
 Catch {
    Write-Host ("Couldn't create new Guest account using these properties")
    Write-Host $NewUserProperties 
    Break }

  # Let the new guest appear in Exchange address lists
  Update-MgUser -UserId $NewGuestAccount.Id -ShowInAddressList
  # Hide the mail contact and keep a record of the old email address (that the guest account now has
  Set-MailContact -Identity $Contact.Alias -HiddenFromAddressListsEnabled $True -CustomAttribute1 $Contact.PrimarySmtpAddress -CustomAttribute2 "Migrated"

Yeni misafir hesabının OAB'de görünmesi bir gün kadar sürer. Bunun nedeni, Exchange'in, değişikliklerin görünür olması için istemcilerin işleyeceği değişiklik dosyaları oluşturması gerektiğidir. Bu gerçekleştikten sonra, taşınan kişiden oluşturulan konuk hesabı, Outlook (Şekil 1) veya OWA (mevcut olduğunda fotoğrafları görüntüler) aracılığıyla görüntülendiğinde diğer herhangi bir kişiye benzer.

Azure AD Konuk Hesaplarıyla Dağıtım Listelerini Güncelleştirme

Birçok posta kişisi dağıtım listelerinin üyesidir. Bir liste üyeliğindeki kişileri değiştirmek için komut dosyası, her posta kişisinin ait olduğu dağıtım listeleri kümesini bulur ve bu bilgiyi bir listeye yazar. Dağıtım listelerini hemen güncellemek güzel olurdu ancak bu, Exchange Online tarafından bir konuk hesabı için oluşturulan özel konuk kullanıcı nesnesini gerektirir. Exchange Online, konuk posta kullanıcısını geçerli bir e-posta alıcısı olarak tanır; dolayısıyla dağıtım listelerine eklenen nesnenin nedeni budur.

Ancak konuk posta kullanıcı nesnesinin oluşturulması hemen gerçekleşmez. Beş dakikaya kadar sürebilen bir arka plan işlemine bağlıdır. Bu nedenle script üyelikle ilgili bilgileri bir listeye yazar:

$DN = $Contact.DistinguishedName
  [array]$DLs = Get-ExoRecipient -ResultSize Unlimited -Filter "Members -eq '$DN'" -RecipientTypeDetails MailUniversalDistributionGroup -ErrorAction SilentlyContinue
  If ($DLs) {
   Write-Host ("User is a member of {0} groups" -f $DLs.count)
   ForEach ($DL in $DLs) {
    $DataLine  = [PSCustomObject] @{
     DLName      = $DL.DisplayName
     DLAlias     = $DL.Alias
     DLId        = $DL.ExternalDirectoryObjectId
     DLOldMember = $DN
     DLNewMember = $NewGuestAccount.Id }
   $DLUpdates.Add($Dataline) }
  } #End If $DLs

Tüm kişileri işledikten sonra komut dosyası, dağıtım listesi güncellemelerini bir CSV dosyasına yazar. Daha sonra ayrı bir komut dosyası, ayrıntıları CSV dosyasından içe aktarabilir ve kaynak kişileri dağıtım listelerinden kaldırarak ve bunları konuk posta kullanıcılarıyla değiştirerek güncellemeleri işleyebilir:

[array]$DLUpdatesToProcess = Import-CSV c:\temp\DLUpdateToProcess.csv
ForEach ($Update in $DLUpdatesToProcess) {
     Remove-DistributionGroupMember -Identity $Update.DLAlias -Member $Update.DLOldMember -Confirm:$False
     Add-DistributionGroupMember -Identity $Update.DLAlias -Member $Update.DLNewMember
}

Temizleme ile iletişime geçin

Daha sonra taşınan kişileri kaldırarak temizlik yapmalıyız; en azından yönetecek kişinin bir örneğinin olması en iyisidir. Şekil 3'te gösterildiği gibi, bunu yapmazsanız Exchange yönetim merkezi ve diğer yönetim arayüzleri, kişileri görüntülerken hem eski kaynak posta kişisini hem de yeni konuk posta kullanıcı nesnesini içerecektir.

Misafir Hesaplarının Bakımı ve Bakımı

Komut dosyasının gerçekleştirebileceği bazı adımları unuttuğuma eminim, ancak yukarıda listelenenler, posta kişileriyle aynı amaca hizmet edebileceklerini kanıtlamak için misafir hesapları oluşturmak için yeterlidir. Konuk hesaplarına geçiş yaptığınızda, Microsoft Entra yönetim merkezinin kişilerinizin gelecekteki bakımı için dayanak noktası haline geldiğinin farkına varmak önemlidir. Exchange yönetim merkezi konuk posta kullanıcı nesnelerini görüntüleyebilir ancak bunları güncelleyemez.

Şekil 4, taşınan bir kişiden oluşturulan bir misafir hesabını göstermektedir. Hesaba fotoğraf ekledim. Exchange Online, posta kişilerine fotoğraf eklemenize izin vermediğinden bu, konuk hesaplarından elde ettiğiniz bir katma değerdir.

Posta iletişimini konuk hesaplarıyla değiştirirseniz ele almanız gereken acil sorunlardan biri, Azure AD yönetim merkezinin konuğun e-posta adresine bir davet göndermeden konuk hesapları oluşturamamasıdır. Bu doğaldır ve tasarım gereğidir. Yönetim merkezi, Azure B2B işbirliğini destekler ve davetiye kullanımı, konukların kimliklerini kanıtlamaları ve Teams, SharePoint Online ve OneDrive İş'te depolanan kiracı kaynaklarına erişim kazanmaları için bir mekanizmadır.

Ancak posta kişisi yerine yeni bir konuk hesabı oluşturuyorsam, konuk hesabının Teams ve SharePoint Online tarafından desteklenen tür yerine e-posta üzerinden işbirliği için bir işaretçi görevi görmesi durumunda mutlaka davet göndermek istemiyorum . Konuk bir davet alırsa daveti kullanmak için yanıt verebilir ancak herhangi bir kiracı kaynağına erişemez, dolayısıyla bu bir bakıma işlem dışı bir durumdur. Herkesin yeni konuk hesapları oluşturmak için New-MgUser cmdlet'ini çalıştırmaktan memnun olacağından şüpheli olduğumdan, Azure AD yönetici merkezinin davetsiz temel konuk hesaplarının oluşturulmasını desteklemesi iyi olurdu.

Microsoft Platform Geçiş Planlaması ve Konsolidasyonu

Kullanıcılar için maliyetleri, riskleri ve kesintileri en aza indirirken geçiş planlamasını basitleştirin, geçiş zorluklarının üstesinden gelin ve projeleri daha hızlı tamamlayın.

Konuk Hesaplarına Geçiş

Posta kişilerinden misafir hesaplarına geçiş yapmak mümkündür (nasıl yaptığımı görmek için GitHub'dan bir komut dosyası indirebilirsiniz). Bu, zor olmayan ancak biraz dikkat gerektiren manuel bir işlemdir. Yönetim merkezi aracılığıyla davet olmadan konuk hesapları oluşturamamak küçük bir sorundur ve Microsoft'un, kuruluşların e-posta merkezli posta kişilerinden uzaklaşıp, daha basit bir nesneye geçiş yapmasına olanak sağlayacak altyapıyı hazırlamak için gereken çalışmayı henüz yapmadığının kanıtıdır. Microsoft 365 ekosistemiyle daha uyumlu. Belki bu çalışma zamanla gelecektir.

İlgili makaleler