How AAD Connect calculates ImmutableId
Hallo zusammen,
Wie die ImmutableId vom AAD Objekt mit dem synchronisierten Objekt im Active Directory zusammenhängt, habe ich in untenstehender Grafik versucht zu verdeutlichen.
Aber alles mal der Reihe nach....
Bis zur Version 1.1.486.0 wurde von AAD Connect das AD Attribut objectGUID als sourceAnchor verwendet. Ab der Version 1.1.542.0 und später wird das AD Attribut ms-DS-ConsistencyGuid als sourceAnchor verwendet. Beim Upgrade gab es ein entsprechendes Prozedere um den sourceAnchor anzupassen.
Azure AD Connect: Design concepts
https://docs.microsoft.com/en-us/azure/active-directory/hybrid/plan-connect-design-concepts
Wir schauen uns mal die objectGUID von meinem Active Directory User Objekt an.
In der HEX Ansicht sieht das so aus
Wir vergleichen das mit dem AD Attribut ms-DS-ConsistencyGuid ebenfalls in der HEX Ansicht. Wir stellen fest, der Wert ist identitisch und wurde vom AAD Connect so eingetragen.
Hier ein Screenshot vom AAD Connect. Man sieht, dass der Source Anchor auf das AD Attribut ms-DS-ConsistencyGuid festgelegt ist.
Einen User findet man mit dem AcitveDirectory PowerShell Modul auch über die objectGUID
Get-ADUser -Identity <objectGUID>
Die immutableId im Azure Active Directory ist im Prinzip nichts anderes als eine Base64 Encoding des Attributes objectGuid, bziehungsweise vom Attribut ms-DS-ConsistencyGuid.
$userUPN = "a.bohren@icewolf.ch"
$guid = [guid]((Get-ADUser -LdapFilter "(userPrincipalName=$userUPN)").objectGuid)
$immutableId = [System.Convert]::ToBase64String($guid.ToByteArray())
$immutableId
Schauen wir uns mal den Azure Active Directory mit dem MSOnline PowerShell Module an.
Get-Msoluser -UserPrincipalName <UPN> | fl Name, *id*
Die objectGUID lässt sich auch aus der ImmutableId mittels Base64 Decoding errechnen.
$AADUser = Get-MsolUser -UserPrincipalName a.bohren@icewolf.ch
$ImmutableID = $AADUser.ImmutableID
$guid =([GUID][System.Convert]::FromBase64String($ImmutableID)).Guid
$guid