Microsoft Entra 프로비전 로그를 다운로드하고 분석하는 방법
Microsoft Entra 프로비전 로그는 테넌트에서 발생하는 프로비전 이벤트에 대한 세부 정보를 제공합니다. 프로비전 로그에 캡처된 정보를 사용하여 프로비전된 사용자와 관련된 문제를 해결하기 위해 도움을 받을 수 있습니다.
이 문서에서는 Microsoft Entra 관리 센터에서 프로비전 로그를 다운로드하는 옵션과 로그를 분석하는 방법을 설명합니다. 오류 코드 및 특별 고려 사항도 포함되어 있습니다.
필수 조건
- 연결된 Microsoft Entra ID P1 또는 P2 라이선스가 있는 작업 중인 Microsoft Entra 테넌트입니다.
- 보고서 판독 기는 프로비저닝 로그에 액세스하는 데 필요한 최소 권한 있는 역할입니다.
- 역할의 전체 목록은 태스크별 최소 권한 역할을 참조 하세요.
프로비전 로그를 보는 방법
프로비전 로그를 보거나 분석하는 방법에는 여러 가지가 있습니다.
- Microsoft Entra 관리 센터에서 확인하세요.
- 진단 설정을 통해 로그를 Azure Monitor로 스트리밍합니다.
- 통합 문서 템플릿을 통해 로그를 분석합니다.
- Microsoft Graph API를 통해 프로그래밍 방식으로 로그에 액세스합니다.
- CSV 또는 JSON 파일로 로그를 다운로드합니다.
팁
이 문서의 단계는 시작하는 포털에 따라 약간 다를 수도 있습니다.
Microsoft Entra 관리 센터에서 로그에 액세스하려면 다음을 수행합니다.
- Microsoft Entra 관리 센터에 보고서 읽기 권한자 이상의 권한으로 로그인합니다.
- ID>모니터링 및 상태>프로비전 로그로 이동합니다.
프로비전 로그를 다운로드하는 방법
프로비전 로그를 다운로드하려면 프로비전 로그 페이지에서 다운로드를 선택하세요. 다운로드 크기와 시간을 줄이려면 필터를 최대한 구체적으로 설정하세요.
CSV 형식
CSV 다운로드에는 다음 세 개의 파일이 포함됩니다.
- ProvisioningLogs: 프로비저닝 단계 및 수정된 속성을 제외한 모든 로그를 다운로드합니다.
- ProvisioningLogs_ProvisioningSteps: 프로비저닝 단계 및 변경 ID가 포함되어 있습니다. 변경 ID를 사용하여 다른 두 파일과 이벤트를 조인할 수 있습니다.
- ProvisioningLogs_ModifiedProperties: 변경된 특성과 변경 ID가 포함되어 있습니다. 변경 ID를 사용하여 다른 두 파일과 이벤트를 조인할 수 있습니다.
JSON 형식
JSON 파일을 열려면 Microsoft Visual Studio Code와 같은 텍스트 편집기를 사용합니다. Visual Studio Code는 파일을 더 쉽게 읽을 수 있도록 구문 강조 표시를 제공합니다. 또한 Microsoft Edge와 같이 편집할 수 없는 형식의 브라우저를 사용하여 JSON 파일을 열 수 있습니다.
JSON 파일 꾸미기
JSON 파일은 다운로드 크기를 줄이기 위한 형식으로 다운로드됩니다. 이 형식을 사용하면 페이로드를 읽는 것이 어려울 수 있습니다. 파일을 꾸미려면 두 가지 옵션이 있습니다..
PowerShell을 사용하여 JSON 형식을 지정합니다. 이 스크립트는 탭과 공백이 포함된 형식으로 JSON 출력을 생성합니다.
$JSONContent = Get-Content -Path "<PATH TO THE PROVISIONING LOGS FILE>" | ConvertFrom-JSON
$JSONContent | ConvertTo-Json > <PATH TO OUTPUT THE JSON FILE>
JSON 파일 구문 분석
편안하게 사용할 수 있는 모든 프로그래밍 언어를 사용할 수 있습니다. 다음 예는 PowerShell에 있습니다.
-
$JSONContent = Get-Content -Path "<PATH TO THE PROVISIONING LOGS FILE>" | ConvertFrom-JSON
이제 시나리오에 따라 데이터를 구문 분석할 수 있습니다. 몇 가지 예는 다음과 같습니다.
JSON 파일의 모든 작업 ID를 출력합니다.
foreach ($provitem in $JSONContent) { $provitem.jobId }
"만들기" 작업이었던 이벤트에 대한 모든 변경 ID를 출력합니다.
foreach ($provitem in $JSONContent) {
if ($provItem.action -eq 'Create') {
$provitem.changeId
}
}
알아야 할 사항
프로비전 로그 분석에 대한 몇 가지 팁과 고려 사항은 다음과 같습니다.
Microsoft Entra 관리 센터는 프리미엄 버전을 사용하는 경우 30일 동안, 무료 버전을 사용하는 경우 7일 동안 보고된 프로비전 데이터를 저장합니다. 30일 이상 보관하려면 프로비전 로그를 Azure Monitor 로그로 라우팅할 수 있습니다.
예를 들어, 제품 지원과 상호 작용할 때 유용할 수 있는 고유 식별자로 변경 ID 특성을 사용할 수 있습니다.
범위에 포함되지 않은 사용자에 대해 건너뛴 이벤트가 표시될 수 있습니다.
- 예 1: 범위가
all users and groups
(으)로 설정되어 있고 범위 지정 필터를 설정한 경우, 범위 지정 기준을 충족하지 않는 사용자에 대한 건너뛴 로그가 표시될 수 있습니다. - 예 2: 범위가
assigned users and groups
(으)로 설정된 경우, 사용자가 응용 프로그램에 할당되지 않았더라도 로그에서 사용자가 건너뛴 것으로 계속 표시될 수 있습니다. 프로비전 서비스가 디렉터리에서 변경 내용을 수신하는 방식에 따라 이러한 사용자가 나타납니다.
- 예 1: 범위가
프로비전 로그에는 역할 가져오기가 표시되지 않습니다(Amazon Web Services, Salesforce 및 Zendesk에 적용됨). 역할 가져오기에 대한 로그는 감사 로그에서 확인할 수 있습니다.
오류 코드
다음 표를 사용하여 프로비저닝 로그에서 발견한 오류를 해결하는 방법을 자세히 알아봅니다.
오류 코드 | 설명 |
---|---|
Conflict, EntryConflict |
Microsoft Entra ID 또는 애플리케이션에서 충돌하는 특성 값을 수정합니다. 또는 충돌하는 사용자 계정을 일치시키고 인계해야 하는 경우 일치하는 특성 구성을 검토합니다. 일치하는 특성을 구성하는 방법에 대한 자세한 내용은 Microsoft Entra ID에서 SaaS 애플리케이션에 대한 사용자 프로비저닝 특성 매핑 사용자 지정을 참조하세요. |
TooManyRequests | 대상 앱이 너무 많은 요청을 받고 있어 사용자 업데이트 시도를 거부했습니다. 수행할 작업이 없습니다. 이 시도는 자동으로 다시 시도되고 Microsoft에 이 문제에 대한 안내를 받았습니다. |
InternalServerError | 대상 앱에서 예기치 않은 오류를 반환했습니다. 대상 애플리케이션의 서비스 문제로 인해 작동하지 않을 수 있습니다. 이 시도는 40분 후에 자동으로 다시 시도됩니다. |
InsufficientRights, MethodNotAllowed, NotPermitted, Unauthorized |
Microsoft Entra ID가 대상 응용 프로그램에서 인증되었지만 업데이트를 수행할 권한이 없습니다. 대상 응용 프로그램이 제공한 지침을 각 응용 프로그램과 함께 검토합니다. 자세한 내용은 Microsoft Entra ID와 응용 프로그램을 통합하는 방법에 대한 자습서를 참조하세요. |
UnprocessableEntity | 대상 애플리케이션에서 예기치 않은 응답을 반환했습니다. 대상 애플리케이션의 구성이 올바르지 않거나 대상 애플리케이션의 서비스 문제로 인해 작동하지 않을 수 있습니다. |
WebExceptionProtocolError | 대상 응용 프로그램에 연결하는 동안 HTTP 프로토콜 오류가 발생했습니다. 수행할 작업이 없습니다. 이 시도는 40분 후에 자동으로 다시 시도됩니다. |
InvalidAnchor | 프로비저닝 서비스에서 이전에 만들었거나 일치하는 사용자가 더 이상 존재하지 않습니다. 사용자가 존재하는지 확인합니다. 모든 사용자에 대한 새 일치를 적용하려면 Microsoft Graph API를 사용하여 작업을 다시 시작합니다. 프로비전을 다시 시작하면 초기 주기가 트리거되며 완료하는 데 시간이 걸릴 수 있습니다. 또한 프로비저닝을 다시 시작하면 프로비저닝 서비스가 작동하는 데 사용하는 캐시도 삭제됩니다. 즉, 테넌트의 모든 사용자와 그룹을 다시 평가해야 하며 특정 프로비전 이벤트가 삭제될 수 있습니다. |
NotImplemented | 대상 앱에서 예기치 않은 응답을 반환했습니다. 앱의 구성이 올바르지 않거나 대상 앱의 서비스 문제로 인해 작동하지 않을 수 있습니다. 대상 응용 프로그램이 제공한 지침을 각 응용 프로그램과 함께 검토합니다. 자세한 내용은 Microsoft Entra ID와 응용 프로그램을 통합하는 방법에 대한 자습서를 참조하세요. |
MandatoryFieldsMissing, MissingValues |
필수 값이 없으므로 사용자를 만들 수 없습니다. 원본 레코드에서 누락된 특성 값을 수정하거나 일치하는 특성 구성을 검토하여 필수 필드가 생략되지 않았는지 확인합니다. 자세한 내용은 Microsoft Entra ID에서 SaaS 애플리케이션에 대한 사용자 프로비저닝 특성 매핑 사용자 지정를 참조하세요. |
SchemaAttributeNotFound | 대상 응용 프로그램에 없는 특성이 지정되었으므로 이 작업을 수행할 수 없습니다. Microsoft Entra ID에서 SaaS 애플리케이션에 대한 사용자 프로비저닝 특성 매핑 사용자 지정을 참조하여 구성이 올바른지 확인합니다. |
InternalError | Microsoft Entra 프로비전 서비스 내에서 내부 서비스 오류가 발생했습니다. 수행할 작업이 없습니다. 이 시도는 40분 후에 자동으로 다시 시도됩니다. |
InvalidDomain | 특성 값에 잘못된 도메인 이름이 포함되어 있으므로 이 작업을 수행할 수 없습니다. 사용자의 도메인 이름을 업데이트하거나 대상 애플리케이션의 허용 목록에 추가합니다. |
시간 제한 | 대상 애플리케이션에서 응답하는 데 너무 오래 걸려 이 작업을 완료할 수 없습니다. 수행할 작업이 없습니다. 이 시도는 40분 후에 자동으로 다시 시도됩니다. |
LicenseLimitExceeded | 이 사용자에게 사용 가능한 라이선스가 없으므로 대상 애플리케이션에서 사용자를 만들 수 없습니다. 대상 애플리케이션에 대한 추가 라이선스를 얻습니다. 또는 사용자 할당 및 특성 매핑 구성을 검토하여 올바른 사용자에게 올바른 특성이 할당되었는지 확인합니다. |
DuplicateTargetEntries | 대상 애플리케이션에서 둘 이상의 사용자에게 구성된 일치 특성이 있으므로 이 작업을 완료할 수 없습니다. 대상 응용 프로그램에서 중복 사용자를 제거하거나 특성 매핑을 다시 구성합니다. 자세한 내용은 Microsoft Entra ID에서 SaaS 애플리케이션에 대한 사용자 프로비저닝 특성 매핑 사용자 지정를 참조하세요. |
DuplicateSourceEntries | 둘 이상의 사용자에게 구성된 일치 특성이 있으므로 이 작업을 완료할 수 없습니다. 중복 사용자를 제거하거나 특성 매핑을 다시 구성합니다. 자세한 내용은 Microsoft Entra ID에서 SaaS 애플리케이션에 대한 사용자 프로비저닝 특성 매핑 사용자 지정를 참조하세요. |
ImportSkipped | 각 사용자가 평가되면 시스템에서 원본 시스템의 사용자를 가져오려고 시도합니다. 이 오류는 일반적으로 가져올 사용자에게 특성 매핑에 정의된 일치 속성이 없을 때 발생합니다. 일치 특성에 대한 사용자 개체에 값이 없는 경우 시스템에서 범위 지정, 일치 또는 변경 내용 내보내기를 평가할 수 없습니다. 이 오류가 있는 경우 아직 사용자에 대한 범위를 평가하지 않았으므로 사용자가 범위 내에 있음을 나타내는 것은 아닙니다. |
EntrySynchronizationSkipped | 프로비전 서비스가 원본 시스템을 성공적으로 쿼리하고 사용자를 식별했습니다. 사용자에 대한 추가 작업을 수행하지 않았으므로 건너뛰었습니다. 사용자가 범위를 벗어났거나 더 이상 변경할 필요 없이 대상 시스템에 이미 존재했을 수도 있습니다. |
SystemForCrossDomainIdentity ManagementMultipleEntriesInResponse |
사용자 또는 그룹을 검색하기 위한 GET 요청의 응답에서 여러 사용자 또는 그룹을 받았습니다. 시스템은 응답에서 하나의 사용자 또는 그룹만 받아합니다. 예를 들어, GET Group 요청을 수행하여 그룹을 검색하고 멤버를 제외하는 필터를 제공하고 SCIM(System for Cross-Domain Identity Management) 엔드포인트에서 멤버를 반환하면 이 오류가 발생합니다. |
SystemForCrossDomainIdentity ManagementServiceIncompatible |
Microsoft Entra 프로비전 서비스가 Microsoft가 아닌 업체의 응용 프로그램의 응답을 구문 분석할 수 없습니다. 애플리케이션 개발자와 협력하여 SCIM 서버가 Microsoft Entra SCIM 클라이언트와 호환되는지 확인합니다. |
SchemaPropertyCanOnlyAcceptValue | 대상 시스템의 속성은 하나의 값만 허용할 수 있지만 원본 시스템의 속성에는 여러 개의 값이 있습니다. 단일 값 특성을 오류를 발생시키는 속성에 매핑하거나 원본의 값을 단일 값으로 업데이트하거나 매핑에서 특성을 제거해야 합니다. |
테넌트 간 동기화에 대한 오류 코드
다음 표를 사용하여 테넌트 간 동기화에 대한 프로비전 로그에서 발견한 오류를 해결하는 방법을 자세히 알아봅니다.
오류 코드 | 원인 | 해답 |
---|---|---|
AzureActiveDirectoryCannot UpdateObjectsOriginated InExternalService |
사용자에 대한 권한의 출처는 Exchange Online입니다. 프로비전 서비스에서 사용자의 하나 이상의 교환 속성(예: extensionAttribute 1~15)을 업데이트할 수 없습니다. 이렇게 하면 대상 테넌트에 존재하던 사용자가 dirSyncEnabled 속성이 “True”에서 “False”로 변경될 때 영향을 받습니다. | 대상 테넌트의 온라인 교환에서 직접 속성을 업데이트합니다. 예: Set-MailUser -Identity CloudMailUser5 -CustomAttribute2 "Updated with EXO PowerShell" |
Microsoft Entra ID CannotUpdateObjectsOriginated InExternalService |
동기화 엔진이 대상 테넌트에서 하나 이상의 사용자 속성을 업데이트할 수 없습니다. SOA(원본 권한) 적용으로 인해 Microsoft Graph API 작업에 실패했습니다. 현재 다음 속성이 목록에 표시됩니다. Mail showInAddressList |
경우에 따라(예: showInAddressList 속성이 사용자 업데이트의 일부인 경우) 동기화 엔진은 잘못된 속성 없이 (사용자) 업데이트를 자동으로 다시 시도할 수 있습니다. 그렇지 않으면 대상 테넌트에서 직접 속성을 업데이트해야 합니다. |
AzureDirectory B2BManagementPolicy CheckFailure |
자동 상환을 허용하는 테넌트 간 동기화 정책에 실패했습니다. 동기화 엔진은 대상 테넌트의 관리자가 자동 상환을 허용하는 인바운드 테넌트 간 동기화 정책을 만들도록 확인합니다. 동기화 엔진은 원본 테넌트의 관리자가 자동 상환을 위해 아웃바운드 정책을 사용하도록 설정했는지도 확인합니다. |
원본 테넌트와 대상 테넌트 모두에 대해 자동 상환 설정을 사용하도록 설정했는지 확인합니다. 자세한 내용은 자동 사용 설정을 참조하세요. |
Microsoft Entra ID QuotaLimitExceeded |
테넌트에서 개체 수가 디렉터리 제한을 초과합니다. Microsoft Entra ID에는 테넌트에서 만들 수 있는 개체 수에 대한 제한이 있습니다. |
할당량을 늘릴 수 있는지 확인합니다. 디렉터리 제한 및 할당량을 늘리는 단계에 대한 자세한 내용은 Microsoft Entra 서비스 제한 및 제한 사항을 참조하세요. |
InvitationCreationFailure | Microsoft Entra 프로비전 서비스가 대상 테넌트의 사용자를 초대하려고 했습니다. 해당 초대에 실패했습니다. | 추가 조사를 위해서는 지원팀에 문의해야 할 수 있습니다. |
InvitationCreationFailureUserAccountDisabled | Microsoft Entra 프로비전 서비스가 대상 테넌트의 사용자를 초대하려고 했습니다. 해당 초대에 실패했습니다. | 사용자가 대상 테넌트에 있지만 계정이 사용되지 않고 초대가 보류 중입니다. 대상 테넌트에서 사용자 계정을 사용하고 사용자를 다시 프로비전하려고 시도합니다. |
Microsoft Entra ID 금지 |
외부 공동 작업 설정이 초대를 차단했습니다. | 사용자 설정으로 이동하여 외부 협업 설정이 허용되는지 확인합니다. |
InvitationCreation FailureInvalidPropertyValue |
가능한 원인: * 기본 SMTP 주소의 값이 올바르지 않습니다. * UserType이 게스트 또는 구성원이 아님 * 그룹 전자 이메일 주소가 지원되지 않음 |
잠재적 해결 방법: * 기본 SMTP 주소에 잘못된 값이 있습니다. 이 문제를 해결하려면 원본 사용자의 메일 속성을 업데이트해야 할 수 있습니다. 자세한 내용은 Microsoft 365에 대한 디렉터리 동기화 준비를 참조하세요. * userType 속성이 게스트 또는 구성원 형식으로 프로비전되었는지 확인합니다. userType 속성이 어떻게 매핑되는지 이해하려면 속성 매핑을 확인하세요. * 사용자의 이메일 주소는 테넌트에서 그룹의 이메일 주소와 일치합니다. 두 개체 중 하나의 메일 주소를 업데이트합니다. |
InvitationCreation FailureAmbiguousUser |
초대된 사용자에게는 대상 테넌트에서 내부 사용자와 일치하는 프록시 주소가 있습니다. 프록시 주소는 고유해야 합니다. | 이 오류를 해결하려면 대상 테넌트에서 기존 내부 사용자를 삭제하거나 동기화 범위에서 이 사용자를 제거합니다. |
Microsoft Entra ID CannotUpdateObjects MasteredOnPremises |
대상 테넌트의 사용자가 원래 AD에서 Microsoft Entra ID로 동기화되어 외부 사용자로 변환된 경우 인증 원본은 여전히 온-프레미스이며 사용자를 업데이트할 수 없습니다. | 테넌트 간 동기화로 사용자를 업데이트할 수 없습니다. |
EntityTypeNotSupported | 그룹을 사용하여 프로비전 범위에 있는 사용자를 확인할 수 있습니다. 그룹 개체는 동기화할 수 없습니다. | 고객이 수행할 작업은 없습니다. 건너뛴 이벤트입니다. 주문형 프로비전을 사용하는 경우 프로비전할 그룹이 아닌 사용자를 선택해야 합니다. |