문제 개요
Azure AD Connect를 사용하여 온프레미스 Active Directory(AD)와 클라우드 간의 사용자 정보를 동기화하는 과정에서 ImmutableID 관련 오류가 발생할 수 있습니다. 이 문서에서는 이러한 문제를 진단하고 해결하는 방법을 설명합니다.
ImmutableID와 mS-DS-ConsistencyGuid 관계 이해
ImmutableID는 클라우드에서 사용자를 고유하게 식별하기 위한 필수 속성입니다. 이 값은 일반적으로 온프레임스 AD의 objectGUID(mS-DS-ConsistencyGuid)를 Base64로 인코딩한 결과입니다.
예시: AD에서 GUID 확인
# AD 사용자의 ObjectGUID 확인
PS C:\Users\Administrator> (Get-ADUser -Identity test1).objectguid
198208a4-8cf1-4b27-89ba-297611c9b5e2
# GUID를 바이트 배열로 변환
PS C:\Users\Administrator> (Get-ADUser -Identity test1 -Properties *).objectguid.tobytearray()
164, 8, 130, 25, 241, 140, 39, 75, 137, 186, 41, 118, 17, 201, 181, 226
클라우드에서 ImmutableID 확인 및 변환
# Office 365에서 특정 사용자의 ImmutableID 확인
PS C:\Users\goozgk> Get-MsolUser -UserPrincipalName test1@pat201808.onmicrosoft.com | select ImmutableID
pAiCGfGMJ0uJuil2Ecm14g==
# Base64 디코딩 후 16진수로 표시
PS C:\Users\goozgk> [system.convert]::FromBase64String("pAiCGfGMJ0uJuil2Ecm14g==") | %{$result += "{0:X} " -f $_}; $result.TrimEnd()
A4 8 82 19 F1 8C 27 4B 89 BA 29 76 11 C9 B5 E2
동기화 중단 및 복구
동기화 중 문제가 발생하면 일시적으로 동기화를 중단해야 합니다.
# Azure AD Connect에서 동기화 비활성화
Set-MsolDirSyncEnabled -EnableDirSync $false
# 현재 상태 확인
(Get-MSOLCompanyInformation).DirectorySynchronizationEnabled
(Get-MSOLCompanyInformation).DirectorySynchronizationStatus
삭제된 사용자 복구 및 수정
사용자가 삭제된 경우 다음 단계를 수행합니다.
# 삭제된 사용자 목록 확인
Get-MsolUser -ReturnDeletedUsers | Format-List
# 삭제된 사용자 영구 제거
Remove-MsolUser -UserPrincipalName username@theirdomain.onmicrosoft.com -RemoveFromRecycleBin
# 새로운 ImmutableID 설정
Set-MsolUser -UserPrincipalName user@domain.com -ImmutableId $newImmutableId
클라우드와 로컬 AD 간 GUID 변환
다음 스크립트를 사용하여 GUID와 ImmutableID를 서로 변환할 수 있습니다.
# Local AD GUID를 Cloud ImmutableID로 변환
$adGuid = "198208a4-8cf1-4b27-89ba-297611c9b5e2"
$cloudId = [Convert]::ToBase64String(([Guid]$adGuid).ToByteArray())
# Cloud ImmutableID를 Local AD GUID로 변환
$cloudId = "pAiCGfGMJ0uJuil2Ecm14g=="
$adGuid = [Guid]([System.Convert]::FromBase64String($cloudId))
Azure AD Connect 동기화 실행
# AAD Connect 서버에서 전체 동기화 실행
Start-ADSyncSyncCycle -PolicyType Initial
# AAD Connect 서버에서 증분 동기화 실행
Start-ADSyncSyncCycle -PolicyType Delta
Managed Domain으로 전환 후 ImmutableID 재설정
특정 상황에서는 Managed Domain으로 전환하여 ImmutableID를 재설정한 후 다시 원래 도메인으로 이전해야 할 수 있습니다.
# Federated 도메인을 Managed 도메인으로 변경
Set-MsolUserPrincipalName -UserPrincipalName user@federateddomain.com -NewUserPrincipalName user@manageddomain.onmicrosoft.com
# ImmutableID를 NULL로 설정
Set-MsolUser -UserPrincipalName user@manageddomain.onmicrosoft.com -ImmutableId "$null"
# 새로운 ImmutableID 설정
Set-MsolUser -UserPrincipalName user@manageddomain.onmicrosoft.com -ImmutableId "새GUID"
# 다시 Federated 도메인으로 이전
Set-MsolUserPrincipalName -UserPrincipalName user@manageddomain.onmicrosoft.com -NewUserPrincipalName user@federateddomain.com