Office 365 veya Azure AD üzerinde Soft Match (SMTP) – Hard Match (immutableID) ile kullanıcı eşleştirme – Bölüm 2
Makalenin ilk bölümünde anlattığım Directory eşleştirme senaryoları ve Soft Match (SMTP) kavramından sonra şimdide Hard Match konusunu ele alacağım.
Hard Match (ImmutableID)
AD Connect sunucumuzda yaşanacak bir geçici kesinti’de , Active Directory veya AD Connect sunucularından birini tamamen kaybetmemiz durumunda neler oluyor bunlara bir bakalım.
Öncelikle ADConnect sunucusunun kapanması veya sunucuyu tamamen kaybetmeniz durumunda herhangi br sistem kesintisi yaşamazsınız (Password Hash sync veya Pass-through HA kullanılması durumunda) sunucuya erişilememe sürecinde Active Directory üzerinde oluşturulan , değiştirilen objeler sadece Azure AD’ye sync olamıyor olacak. Sunucuyu ayağa kaldırmanız durumunda kaldığı yerden sync tüm yapılan değişiklikleri algılayarak görevine devam edecek. Sunucudaki bir problemden dolayı sunucuyu kaybetmeniz durumunda ise bu sefer yeni AD Connect sunucusu kurarak eşitlemeyi tekrardan devralmaya başlamanız gerekmektedir. İşte bu nokta’da devreye Hard match kavramı girmektedir. Yani benim daha önceden local’deki bir kullanıcım Cloud’da mevcut aradaki sync toolunu tekrardan kurarak bu Local ve Cloud yapısındaki kullanıcılarının aynı kullanıcı olduğunu ispatlamamız gerekmektedir.Bunuda yapacak kişi aslında AD Connect tool’udur.
Bunun için öncelikle yapmanız gereken işlerin başında yeni bir AD Connect sunucusu kurup AD Connect tool’unu ilgili sunucuya indirip tekrardan senkronizasyonu başlatınız. AD Connect sunucusunu kaybettiğiniz için yeniden kurulum sonrası daha önceki sync olan kullanıcıların bilgisi veritabanında bulunmayacağı için ilk önce bir Full sync dediğimiz metot ile sync başlıyor olacak her obje tek tek hem Local hem Azure AD üzerinde tespit edilip birbirleri ile eşleştirilerek hangisinin sync edilip hangisinin edilmeyeceğine sistem kendi karar veriyor olacak.
Directory üzerindeki her kullanıcının kendine özgü benzersiz bir ObjectGUID değeri bulunmaktadır. Objelerin eşleştirilmesinde bu sefer devreye ImmutableID (Cloud Attribute ) ve ObjectGUID (On-Premise Attribute) attribute değerleri devreye giriyor olacak.On-Premisedeki kullanıcının ObjectGUID değeri AD Connect aracılığıyla okunacak ve yeniden kurulumdaki ilk full sync sırasında Cloud üzerinde daha önceden aynı değer ile sync olan kullanıcıyla eşleşme yapılacaktır.
On-Premise Active Directory üzerinde bulunan kullanıcının ObjectGUID değeri Base-64 olarak sistem tarafından convert edilerek öncelikle AD Connect üzerinde tanımlı SourceAnchor değerine oradan ise Azure Active Directory de bilinen ImmutableID attributine eşlenmektedir.
Uyarı ! : ObjectGUID ve ImmutableID attributeleri değiştirilemezdir.
ADConnect’in ilk kurulumu sırasında aslında biz değeri default olarak Azure AD yönetimine bırakmaktayız. Dilersenizde SourceAnchor değerini custom bir attribute olarakta belirleyebilirsiniz.
Üstte çalışma mantığını anlattığım topolojinin AD tarafındaki kontrolünü sağlayalım.
· On-Premise Active Directory üzerinden kullanıcının ObjectGUID değeri kontrol edilir.
Get-ADUser hakan.marangoz | fl objectguid
· ObjectGUID değerinin Base-64 olarak convert edilerek Azure AD üzerinde geçerli olan ImmutableID değerine dönüştürülmesi gerekmektedir. AD Connect bunu sync işlemi yaparken kendi yapıyor ama ben bu değerin doğru olup olmadığını anlamak adına , bu convert işlemi kendim yaparak technette bulunan hazır bir script’ten yararlanarak ilerliyeceğim. Aşağıdaki örnekteki gibi scripti indirip kullanıcının ObjectGUID değerini vererek convert edilmiş ImmutableID değerini alabiliriz.
· Office üzerine Powershell ile bağlanılarak Azure Active Directory üzerindeki kullanıcısının Immutable ID değerini Local’deki kullanıcımın değeri ile eşleşip eşleşmediğini kontrol edeceğim.
Office 365 Exchange Online PowerShell ile bağlantı kurulur.
Import-Module MSOnline
$O365Cred = Get-Credential
$O365Session = New-PSSession –ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $O365Cred -Authentication Basic -AllowRedirection
Import-PSSession $O365Session
Connect-MsolService –Credential $O365Cred
Get-MsolUser -UserPrincipalName [email protected] | Select immutableid
Yukarıdaki Azure Active Directory değeri ile benim Local Active Directory’de bulunan kullanıcımın ObjectGUID’den Base-64‘e çevrilmiş ImmutableID değeri birebir tutmaktadır.
Toparlamak gerekirse ;
1. AD Connect sunucumuzu kaybetmemişsek , ADConnect sunucusunun yeniden kurulması sonrası objeler daha önce’den Cloud’a sync edildiyse hard match yöntemindeki Object GUID ve ImmutableID değerinden birbirlerini tanımakta ve tekrar sync kaldığı yerden devam etmektedir.
2. Active Directory sunucunuzu kaybettiyseniz ve yeni bir Active Directory kurup kullanıcıları yeniden oluşturduysanız bu sefer her bir kullanıcı için ObjectGUID değeri değişeceği için AD Connect sync sırasında değerleri eşleştiremeyerek kullanıcıları dumplicate ediyor olacak. Active Directory sunucunuzu kaybetmeniz durumunda öncelikle
i. AD Connect sync işlemini Tenant üzerinde turn off ediniz.
ii. Sonrasında Azure Active Directory üzerindeki objelerin Cloud objesine convert olmasını bekleyiniz.
iii. Her bir kullanıcının ImmutableID değerlerini powershell ile temizleyiniz.
iv. Yeni Local Active Directory üzerindeki her bir kullanıcının ObjectGUID değeri Base-64 convert edilerek alınan ImmutableID değerini Azure AD üzerindeki aynı kullanıcıya set ediniz. Set-MsolUser -UserPrincipalName [email protected] -ImmutableId EOi8OHnqKUuusvZ/J6X5SA==
v. Tekrar’dan AD Connect kurulumu yapılarak sync işlemini yapınız.
Umarım faydalı olmuştur , keyifli okumalar.
Eline sağlık.