다음을 통해 공유


Microsoft Entra 스키마 이해

다른 디렉터리와 마찬가지로 Microsoft Entra ID의 개체는 사용자, 그룹, 연락처 등을 나타내는 프로그래밍 방식의 개략적인 데이터 구문입니다. Microsoft Entra ID에서 새 사용자나 연락처를 만들면 해당 개체의 새 인스턴스가 만들어집니다. 이러한 인스턴스는 속성을 기반으로 구분할 수 있습니다.

Microsoft Entra ID의 속성은 Microsoft Entra ID의 개체 인스턴스에 대한 정보를 저장하는 요소입니다.

Microsoft Entra 스키마는 항목에 사용될 수 있는 속성, 해당 속성이 가질 수 있는 값의 종류, 사용자가 해당 값과 상호 작용할 수 있는 방법에 대한 규칙을 정의합니다.

Microsoft Entra ID에는 두 가지 형식의 속성이 있습니다.

  • 기본 제공 속성: Microsoft Entra 스키마에 의해 미리 정의된 속성입니다. 이러한 속성은 다양한 용도를 제공하며 액세스할 수 있거나 액세스할 수 없는 경우도 있습니다.
  • 디렉터리 확장: Microsoft Entra ID를 원하는 대로 사용자 지정할 수 있도록 제공되는 속성입니다. 예를 들어, 특정 특성을 사용하여 온-프레미스 Active Directory를 확장하고 해당 특성을 전달하려는 경우 제공되는 사용자 지정 속성 중 하나를 사용할 수 있습니다.

각 클라우드 동기화 구성에는 동기화 스키마가 포함됩니다. 이 동기화 스키마는 동기화할 개체와 동기화 방법을 정의합니다.

특성 및 식

사용자와 같은 개체가 Microsoft Entra ID에 프로비전되면 해당 사용자 개체의 새 인스턴스가 만들어집니다. 여기에는 해당 개체의 속성(특성)이 포함됩니다. 처음에는 새로 만든 개체의 특성이 동기화 규칙에 따라 결정되는 값으로 설정됩니다. 이러한 특성은 클라우드 프로비저닝 에이전트를 통해 최신 상태로 유지됩니다.

개체 프로비저닝

예를 들어, 사용자가 마케팅 부서의 일부일 수 있습니다. Microsoft Entra 부서 특성은 프로비전될 때 처음 만들어지며 값은 마케팅으로 설정됩니다. 6개월 후에 영업 부서로 변경되면 해당 온-프레미스 Active Directory 부서 특성이 Sales로 변경됩니다. 이 변경 내용은 Microsoft Entra ID와 동기화되며 해당 Microsoft Entra 사용자 개체에 반영됩니다.

특성 동기화는 직접적일 수 있으며, 여기서 Microsoft Entra ID의 값은 온-프레미스 특성 값으로 직접 설정됩니다. 또는 프로그래밍 식이 동기화를 처리할 수도 있습니다. 값을 채우도록 일부 논리 또는 결정을 수행해야 하는 경우 프로그래밍 식이 필요합니다.

예를 들어, 메일 특성 “john.smith@contoso.com”이 있고 "@contoso.com"을 제거하고 값 "john.smith"만 전달해야 하는 경우 다음과 같이 사용할 수 있습니다.

Replace([mail], "@contoso.com", , ,"", ,)

샘플 입/출력:

  • 입력(메일): “john.smith@contoso.com”
  • 출력: "john.smith"

사용자 지정 식 및 구문을 작성하는 방법에 대한 자세한 내용은 Microsoft Entra ID에서 특성 매핑을 위한 식 작성을 참조하세요.

다음 표에는 공통 특성과 해당 특성이 Microsoft Entra ID와 동기화되는 방법이 나열되어 있습니다.

온-프레미스 Active Directory 매핑 유형 Microsoft Entra ID
cn Direct commonName
countryCode Direct countryCode
displayName Direct displayName
givenName givenName
objectGUID Direct sourceAnchorBinary
userPrincipalName Direct userPrincipalName
proxyAddress Direct ProxyAddress

동기화 스키마 보기

Warning

클라우드 동기화 구성에서는 서비스 주체를 만듭니다. 서비스 주체는 Microsoft Entra 관리 센터에 표시됩니다. Microsoft Entra 관리 센터의 서비스 주체 환경을 사용하여 특성 매핑을 수정하면 안 됩니다. 이는 지원되지 않습니다.

클라우드 동기화 구성 동기화 스키마를 보고 확인하려면 다음 단계를 수행하세요.

  1. Graph 탐색기로 이동합니다.

  2. 전역 관리자 계정으로 로그인합니다.

  3. 왼쪽에서 Modify permissions을 선택하고 Directory.ReadWrite.AllConsented인지 확인합니다.

  4. 쿼리 https://graph.microsoft.com/beta/serviceprincipals/?$filter=startswith(DisplayName, ‘{sync config name}’)를 실행합니다. 이 쿼리는 서비스 사용자의 필터링된 목록을 반환합니다. 이는 Microsoft Entra ID 아래의 앱 등록 노드를 통해서도 얻을 수 있습니다.

  5. "appDisplayName": "Active Directory to Azure Active Directory Provisioning"을 찾아 "id"의 값을 기록해 둡니다.

    "value": [
            {
                "id": "00d41b14-7958-45ad-9d75-d52fa29e02a1",
                "deletedDateTime": null,
                "accountEnabled": true,
                "appDisplayName": "Active Directory to Azure Active Directory Provisioning",
                "appId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
                "applicationTemplateId": null,
                "appOwnerOrganizationId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
                "appRoleAssignmentRequired": false,
                "displayName": "Active Directory to Azure Active Directory Provisioning",
                "errorUrl": null,
                "homepage": "https://account.activedirectory.windowsazure.com:444/applications/default.aspx?metadata=AD2AADProvisioning|ISV9.1|primary|z",
                "loginUrl": null,
                "logoutUrl": null,
                "notificationEmailAddresses": [],
                "preferredSingleSignOnMode": null,
                "preferredTokenSigningKeyEndDateTime": null,
                "preferredTokenSigningKeyThumbprint": null,
                "publisherName": "Active Directory Application Registry",
                "replyUrls": [],
                "samlMetadataUrl": null,
                "samlSingleSignOnSettings": null,
                "servicePrincipalNames": [
                    "http://adapplicationregistry.onmicrosoft.com/adprovisioningtoaad/primary",
                    "1a4721b3-e57f-4451-ae87-ef078703ec94"
                ],
                "signInAudience": "AzureADMultipleOrgs",
                "tags": [
                    "WindowsAzureActiveDirectoryIntegratedApp"
                ],
                "addIns": [],
                "api": {
                    "resourceSpecificApplicationPermissions": []
                },
                "appRoles": [
                    {
                        "allowedMemberTypes": [
                            "User"
                        ],
                        "description": "msiam_access",
                        "displayName": "msiam_access",
                        "id": "a0326856-1f51-4311-8ae7-a034d168eedf",
                        "isEnabled": true,
                        "origin": "Application",
                        "value": null
                    }
                ],
                "info": {
                    "termsOfServiceUrl": null,
                    "supportUrl": null,
                    "privacyStatementUrl": null,
                    "marketingUrl": null,
                    "logoUrl": null
                },
                "keyCredentials": [],
                "publishedPermissionScopes": [
                    {
                        "adminConsentDescription": "Allow the application to access Active Directory to Azure Active Directory Provisioning on behalf of the signed-in user.",
                        "adminConsentDisplayName": "Access Active Directory to Azure Active Directory Provisioning",
                        "id": "d40ed463-646c-4efe-bb3e-3fa7d0006688",
                        "isEnabled": true,
                        "type": "User",
                        "userConsentDescription": "Allow the application to access Active Directory to Azure Active Directory Provisioning on your behalf.",
                        "userConsentDisplayName": "Access Active Directory to Azure Active Directory Provisioning",
                        "value": "user_impersonation"
                    }
                ],
                "passwordCredentials": []
            },
    
  6. {Service Principal id}를 값으로 바꾸고 https://graph.microsoft.com/beta/serviceprincipals/{Service Principal id}/synchronization/jobs/ 쿼리를 실행합니다.

  7. "id": "AD2AADProvisioning.fd1c9b9e8077402c8bc03a7186c8f976"을 찾아 "id"의 값을 기록해 둡니다.

    {
                "id": "AD2AADProvisioning.fd1c9b9e8077402c8bc03a7186c8f976",
                "templateId": "AD2AADProvisioning",
                "schedule": {
                    "expiration": null,
                    "interval": "PT2M",
                    "state": "Active"
                },
                "status": {
                    "countSuccessiveCompleteFailures": 0,
                    "escrowsPruned": false,
                    "code": "Active",
                    "lastSuccessfulExecutionWithExports": null,
                    "quarantine": null,
                    "steadyStateFirstAchievedTime": "2019-11-08T15:48:05.7360238Z",
                    "steadyStateLastAchievedTime": "2019-11-20T16:17:24.7957721Z",
                    "troubleshootingUrl": "",
                    "lastExecution": {
                        "activityIdentifier": "2dea06a7-2960-420d-931e-f6c807ebda24",
                        "countEntitled": 0,
                        "countEntitledForProvisioning": 0,
                        "countEscrowed": 15,
                        "countEscrowedRaw": 15,
                        "countExported": 0,
                        "countExports": 0,
                        "countImported": 0,
                        "countImportedDeltas": 0,
                        "countImportedReferenceDeltas": 0,
                        "state": "Succeeded",
                        "error": null,
                        "timeBegan": "2019-11-20T16:15:21.116098Z",
                        "timeEnded": "2019-11-20T16:17:24.7488681Z"
                    },
                    "lastSuccessfulExecution": {
                        "activityIdentifier": null,
                        "countEntitled": 0,
                        "countEntitledForProvisioning": 0,
                        "countEscrowed": 0,
                        "countEscrowedRaw": 0,
                        "countExported": 5,
                        "countExports": 0,
                        "countImported": 0,
                        "countImportedDeltas": 0,
                        "countImportedReferenceDeltas": 0,
                        "state": "Succeeded",
                        "error": null,
                        "timeBegan": "0001-01-01T00:00:00Z",
                        "timeEnded": "2019-11-20T14:09:46.8855027Z"
                    },
                    "progress": [],
                    "synchronizedEntryCountByType": [
                        {
                            "key": "group to Group",
                            "value": 33
                        },
                        {
                            "key": "user to User",
                            "value": 3
                        }
                    ]
                },
                "synchronizationJobSettings": [
                    {
                        "name": "Domain",
                        "value": "{\"DomainFQDN\":\"contoso.com\",\"DomainNetBios\":\"CONTOSO\",\"ForestFQDN\":\"contoso.com\",\"ForestNetBios\":\"CONTOSO\"}"
                    },
                    {
                        "name": "DomainFQDN",
                        "value": "contoso.com"
                    },
                    {
                        "name": "DomainNetBios",
                        "value": "CONTOSO"
                    },
                    {
                        "name": "ForestFQDN",
                        "value": "contoso.com"
                    },
                    {
                        "name": "ForestNetBios",
                        "value": "CONTOSO"
                    },
                    {
                        "name": "QuarantineTooManyDeletesThreshold",
                        "value": "500"
                    }
                ]
            }
    
  8. 이제 https://graph.microsoft.com/beta/serviceprincipals/{Service Principal Id}/synchronization/jobs/{AD2AAD Provisioning id}/schema 쿼리를 실행합니다.

    {Service Principal Id}{AD2ADD Provisioning Id}를 값으로 바꿉니다.

  9. 이 쿼리는 동기화 스키마를 반환합니다.

    반환된 스키마

다음 단계