Azure AD Connect ile Local ve Bulut Kullanıcılarını Hard Match Yöntemiyle Eşleştirme
Kurumsal ortamlarda hibrit kimlik yönetimi, hem on-premises Active Directory hem de Azure Active Directory (Entra ID) kullanıcılarının uyumlu çalışmasını gerektirir. Ancak bazı durumlarda, bulutta önceden oluşturulmuş bir kullanıcı ile on-prem kullanıcıyı eşleştirmek gerekebilir. Bu işlem, hard match olarak bilinir ve ImmutableId üzerinden yapılır. Bu makalede, hard match’in ne olduğunu, neden gerekli olduğunu ve nasıl uygulanacağını adım adım anlatıyoruz.
Hard Match Nedir ve Ne İçin Kullanılır?
- Hard Match, on-prem kullanıcı ile bulut kullanıcısını ImmutableId (Azure AD’de onPremisesImmutableId) üzerinden eşleştirme işlemidir.
- Kullanım senaryoları:
- Azure AD’de kullanıcı önceden manuel oluşturulmuşsa ve sonradan AAD Connect kurulmuşsa.
- Kullanıcıyı yanlışlıkla bulutta oluşturduktan sonra hibrit yapıya geçiş yapıyorsanız.
- E-posta adresleri veya UPN’ler farklı olsa bile, aynı kişiyi tek bir kimlik altında yönetmek istiyorsanız.
- Avantajları:
- Kullanıcı verileri (lisanslar, grup üyelikleri) korunur.
- Çift hesap oluşumu engellenir.
- Hibrit kimlik yönetimi sorunsuz hale gelir.

Benim senaryomda Localdeki AD üzerinde “test2@mss.local” kullanıcısı, bulutta ise DebraB@M365x30432834.OnMicrosoft.com kullanıcı bulunmaktadır. Bu her iki kullanıcıda herhangi bir şekilde bir benzerlik bulunmamaktadır (Proxy adress vs)
NOT: Bu işlemlerin tamamı local active directory sunucusu üzerinden yapılmaktadır. Modüller ile ilgili sıkıntı yaşamamak adına “Powershell 7.5” ve üzeri kullanmanız çok iyi olacaktır,

İlk olarak Active Directory üzerindeki kullanıcının GUID ID’sini alıyoruz
Import-Module ActiveDirectory
$adUser = Get-ADUser -Identity "test2" -Properties ObjectGUID
$guid = [Guid]$adUser.ObjectGUID

Sonra GUID ID’yi Base64’e çeviriyoruz.
$immutableId = [Convert]::ToBase64String($guid.ToByteArray())

Azure Kullanıcıya ImmutableId Set Ediyoruz
Install-Module Microsoft.Graph -Scope CurrentUser # Graph API kurulumu yapar
Connect-MgGraph -Scopes "User.ReadWrite.All"
Update-MgUser -UserId "DebraB@M365x30432834.OnMicrosoft.com" -OnPremisesImmutableId $immutableId

AAD Connect ile Sync Çalıştırıyoruz
Start-ADSyncSyncCycle -PolicyType Delta

Son olarak da doğrulama yapıyoruz.
Get-MgUser -UserId "DebraB@M365x30432834.OnMicrosoft.com" -Property OnPremisesSyncEnabled
Not: Eğer Another object with the same value for property onPremisesImmutableId already exists hatası alırsanız, bu ImmutableId başka bir kullanıcıda kayıtlıdır. Önce çakışmayı temizlemeniz gerekir.
