了解 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 時,會建立使用者物件的新執行個體。 也會建立該物件的屬性 (property),又稱為屬性 (attribute)。 一開始,新建立的物件會將其屬性設定為同步規則決定的值。 這些屬性接著會透過雲端佈建代理程式保持最新狀態。
例如,使用者可能是行銷部門的成員。 其 Microsoft Entra 部門屬性一開始會在佈建時建立,值會設定為 Marketing。 六個月後,如果使用者調至業務部門,其內部部署的 Active Directory 部門屬性會變更為 Sales。 此變更會同步處理至 Microsoft Entra ID,並反映在其 Microsoft Entra 使用者物件中。
屬性同步處理可能直接進行,此時,Microsoft Entra ID 中的值會直接設定為內部部署屬性的值。 或者程式設計運算式可能會處理同步。 萬一必須執行某些邏輯或決定來填入值,需有程式設計運算式。
舉例來說,如果您有電子郵件屬性 "john.smith@contoso.com",且必須移除 "@contoso .com" 部分,並只流動值 "john smith",您會使用如下所示內容:
Replace([mail], "@contoso.com", , ,"", ,)
範例輸入/輸出:
- 輸入 (mail):"john.smith@contoso.com"
- 輸出:"john.smith"
如需如何撰寫自訂運算式和語法的詳細資訊,請參閱在 Microsoft Entra ID 中撰寫屬性對應的運算式。
下表列出常見屬性,以及同步處理至 Microsoft Entra ID 的方式。
內部部署 Active Directory | 對應類型 | Microsoft Entra ID |
---|---|---|
cn | 直接 | commonName |
countryCode | 直接 | countryCode |
displayName | 直接 | displayName |
givenName | 運算式 | givenName |
objectGUID | 直接 | sourceAnchorBinary |
userPrincipalName | 直接 | userPrincipalName |
proxyAddress | 直接 | ProxyAddress |
檢視同步處理結構描述
警告
雲端同步設定會建立服務主體。 服務主體會顯示在 Microsoft Entra 系統管理中心。 您不應在 Microsoft Entra 系統管理中心使用服務主體體驗來修改屬性對應。 不支援此連結方式。
若要檢視雲端同步設定同步處理結構描述,並加以驗證,請遵循下列步驟。
移至 Graph 總管。
以全域管理員帳戶登入。
選取左側的 [修改權限],並確保「已同意」Directory.ReadWrite.All。
執行查詢
https://graph.microsoft.com/beta/serviceprincipals/?$filter=startswith(DisplayName, ‘{sync config name}’)
。 此查詢會傳回服務主體的篩選過清單。 這也可以透過 [Microsoft Entra ID] 底下的 [應用程式註冊] 節點來取得。找到
"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": "00001111-aaaa-2222-bbbb-3333cccc4444", "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": [] },
以您的值取代
{Service Principal id}
,然後執行查詢https://graph.microsoft.com/beta/serviceprincipals/{Service Principal id}/synchronization/jobs/
。找到
"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" } ] }
現在執行查詢
https://graph.microsoft.com/beta/serviceprincipals/{Service Principal Id}/synchronization/jobs/{AD2AAD Provisioning id}/schema
。請將
{Service Principal Id}
和{AD2ADD Provisioning Id}
取代為您的值。此查詢會傳回同步處理結構描述。