同步擴展屬性以進行 Microsoft Entra 應用程式佈建
Microsoft Entra ID 必須包含將使用者帳戶從 Microsoft Entra ID 佈建至 SaaS 應用程式 或內部部署應用程式時,建立使用者設定檔所需的所有資料 (屬性)。 自訂使用者佈建的屬性對應時,您可能會發現您想要對應的屬性並未出現在 Microsoft Entra ID的 [來源屬性] 清單中。 此文章說明如何新增遺漏的屬性。
判斷需要新增擴充項目的位置
新增應用程式所需的遺漏屬性將會從內部部署的 Active Directory 或 Microsoft Entra ID 開始,視使用者帳戶所在的位置以及它們如何帶入 Microsoft Entra ID 而定。
首先,找出在您的 Microsoft Entra 租用戶中需要存取應用程式的使用者,因此這些使用者將被納入佈建至應用程式的範疇。
接下來,判斷屬性的來源,以及用於將這些使用者帶入 Microsoft Entra ID 的拓撲。
屬性的來源 | 拓撲 | 所需的步驟 |
---|---|---|
HR 系統 | HR 系統中的員工會被設定為 Microsoft Entra ID 的使用者。 |
在 Microsoft Entra ID 中建立擴充屬性。 更新 HR 輸入對應,從 HR 系統填入 Microsoft Entra ID 使用者的擴充屬性。 |
HR 系統 | HR 系統的員工會被設為 Windows Server AD 中的使用者。 Microsoft Entra Connect 雲端同步處理會將它們同步處理到 Microsoft Entra ID 中。 |
如有必要,請擴充 AD 架構。 使用雲端同步處理在 Microsoft Entra ID 中建立擴充屬性。 更新 HR 輸入對應,從 HR 系統填入 AD 使用者的擴充屬性。 |
HR 系統 | HR 系統的員工會被設立為 Windows Server AD 中的使用者。 Microsoft Entra Connect 將它們同步到 Microsoft Entra ID。 |
如有必要,請擴充 AD 架構。 使用 Microsoft Entra Connect 在 Microsoft Entra ID 中建立擴充屬性。 更新 HR 輸入對應,從 HR 系統填入 AD 使用者的擴充屬性。 |
如果您組織的使用者已經位於內部部署的 Active Directory 中,或您是在 Active Directory 中建立他們嗎?如果是,則必須將使用者從 Active Directory 同步至 Microsoft Entra ID。 您可以使用 Microsoft Entra Connect 或 Microsoft Entra Connect 雲端同步 來同步處理使用者和屬性。
- 請洽詢內部部署 Active Directory 網域管理員,這些屬性是否為 AD DS 架構
User
物件類別的一部分,如果不是,請在這些使用者擁有帳戶的網域中 擴充 Active Directory Domain Services 架構。 - 設定 Microsoft Entra Connect 或Microsoft Entra Connect 雲端同步,將使用者及其擴充屬性從 Active Directory 同步至Microsoft Entra ID。 這兩個解決方案都會自動將特定屬性同步至Microsoft Entra ID,但並非所有屬性。 此外,某些預設同步處理的屬性 (例如
sAMAccountName
) 可能不會使用圖形 API 公開。 在這些情況下,您可以 使用 Microsoft Entra Connect 目錄擴充功能,將屬性同步至 Microsoft Entra ID,或 使用 Microsoft Entra Connect 雲端同步。如此一來,圖形 API 和 Microsoft Entra 佈建服務就會看到該屬性。 - 如果內部部署的 Active Directory 中的使用者還沒有必要的屬性,您必須更新 Active Directory 中的使用者。 您可以從 Workday、SAP SuccessFactors 讀取屬性,或使用 輸入 HR API (如果您使用不同的 HR 系統) 來完成此更新。
- 等候 Microsoft Entra Connect 或 Microsoft Entra Connect 雲端同步,以同步您在 Active Directory 架構中所做的更新,並將 Active Directory 使用者同步至 Microsoft Entra ID。
或者,如果需要存取應用程式的使用者皆非來自內部部署的 Active Directory,則您必須在 Microsoft Entra ID 中先使用 PowerShell 或 Microsoft Graph建立模式擴充功能,然後設定將其佈建至您的應用程式。
下列各節概述如何為具有僅限雲端使用者的租用戶,以及具有 Active Directory 使用者的租用戶建立擴充屬性。
在具有僅限雲端使用者的租用戶中建立擴充屬性
您可以使用 Microsoft Graph 和 PowerShell,針對 Azure AD 中的使用者擴充使用者結構描述。 如果您有需要該屬性的使用者,且其中沒有任何屬性是源於內部部署的 Active Directory 或從其同步處理,則這是必要的。 (如果您有 Active Directory,請繼續閱讀以下關於如何 使用 Microsoft Entra Connect 目錄擴充功能將屬性同步處理至 Microsoft Entra ID 的章節。)
在大部分情況下,一旦建立結構描述擴充功能,當您下次瀏覽 Microsoft Entra 系統管理中心的佈建頁面時,這些擴充屬性將自動被發現。
當您的服務主體超過 1000 個時,您可能會在來源屬性清單中找到遺漏的擴充項目。 如果您建立的屬性未自動出現,請驗證該屬性已建立,並手動將其新增至您的結構描述。 若要驗證該屬性是否已建立,請使用 Microsoft Graph 和 Graph 總管。 若要手動將其新增至您的結構描述,請參閱編輯支援的屬性清單。
使用 Microsoft Graph 建立僅限雲端用戶的擴充屬性
您可以使用 Microsoft Graph 來擴充 Microsoft Entra 使用者的結構描述。
首先,列出您租戶中的應用程式,以取得您正在工作的應用程式識別碼。 若要深入了解,請參閱列出擴展屬性。
GET https://graph.microsoft.com/v1.0/applications
接著,建立擴充屬性。 以在上一個步驟中擷取的識別碼取代以下的 ID 屬性。 您必須使用 「ID」 屬性,而不是「appId」。 若要深入了解,請參閱[建立 extensionProperty]/graph/api/application-post-extensionproperty)。
POST https://graph.microsoft.com/v1.0/applications/{id}/extensionProperties
Content-type: application/json
{
"name": "extensionName",
"dataType": "string",
"targetObjects": [
"User"
]
}
先前的要求已建立具有 extension_appID_extensionName
格式的擴充屬性。 您現在可以使用此擴充屬性來更新使用者。 若要深入了解,請參閱更新使用者。
PATCH https://graph.microsoft.com/v1.0/users/{id}
Content-type: application/json
{
"extension_inputAppId_extensionName": "extensionValue"
}
最後,驗證使用者的屬性。 若要深入了解,請參閱取得使用者。 Graph v1.0 預設不會傳回任何使用者的目錄擴充屬性,除非在要求中指定該屬性做為要傳回的屬性之一。
GET https://graph.microsoft.com/v1.0/users/{id}?$select=displayName,extension_inputAppId_extensionName
使用 PowerShell 建立僅限雲端使用者的擴充屬性
您可以使用 PowerShell 建立自訂擴充項目。
#Connect to your Entra tenant
Connect-Entra -Scopes 'Application.ReadWrite.All'
#Create an application (you can instead use an existing application if you would like)
$App = New-EntraApplication -DisplayName "test app name" -IdentifierUris https://testapp
#Create a service principal
New-EntraServicePrincipal -AppId $App.AppId
#Create an extension property
New-EntraApplicationExtensionProperty -ApplicationId $App.ObjectId -Name "TestAttributeName" -DataType "String" -TargetObjects "User"
您可以選擇性地測試是否可以在僅限雲端用戶上設定擴充屬性。
#List users in your tenant to determine the objectid for your user
Get-EntraUser
#Set a value for the extension property on the user. Replace the objectid with the ID of the user and the extension name with the value from the previous step
Set-EntraUserExtension -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb -ExtensionName "extension_6552753978624005a48638a778921fan3_TestAttributeName"
#Verify that the attribute was added correctly.
Get-EntraUser -ObjectId aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb | Select -ExpandProperty ExtensionProperty
使用雲端同步建立擴充屬性
如果您在 Active Directory 中擁有使用者,並正在使用 Microsoft Entra Connect 的雲端同步,那麼當您新增對應時,雲端同步會自動偵測本機 Active Directory 中的擴展。 如果您使用 Microsoft Entra Connect 同步處理,請繼續閱讀下一節的 使用 Microsoft Entra Connect 建立擴充屬性。
使用下列步驟自動化探索這些屬性,並設定對應配置至 Microsoft Entra ID。
- 以至少 混合式身分識別系統管理員 身分登入 Microsoft Entra 系統管理中心。
- 瀏覽至 [身分識別]>[混合式管理]>Microsoft Entra Connect>Cloud sync。
- 選取您想要將延伸屬性和映射新增到的組態。
- 在 [管理屬性] 中,選擇 [點擊以編輯映射]。
- 選擇 新增屬性對應。 屬性會被自動發現。
- 新的屬性可在 來源屬性 下的下拉式清單中取得。
- 填入您想要的對應類型,然後選取 [套用]。
如需詳細資訊,請參閱 Microsoft Entra Connect 雲端同步中的自訂屬性對應。
使用 Microsoft Entra Connect 建立擴充屬性
如果存取應用程式的使用者源自內部部署的 Active Directory,則必須將屬性與 Active Directory 中的使用者同步至 Microsoft Entra ID。 如果您使用 Microsoft Entra Connect,您必須先執行下列工作,才能對佈建至您的應用程式進行設定。
請洽詢內部部署 Active Directory 網域管理員,這些屬性是否為 AD DS 架構
User
物件類別的一部分,如果不是,請在這些使用者擁有帳戶的網域中 擴充 Active Directory Domain Services 架構。開啟 [Microsoft Entra Connect 精靈],選擇 [工作],然後選擇 [自訂同步處理選項]。
以 混合式身分識別系統管理員 身分登入。
在 [選用功能] 頁面上,選取 [目錄擴充屬性同步處理]。
選取您想要擴充至 Microsoft Entra ID 的屬性。
注意
[可用屬性] 下的搜尋會區分大小寫。
完成 Microsoft Entra Connect 精靈向導,並允許完整的同步處理週期運行。 當週期完成時,架構會擴充,並且新值會在您的本機 AD 與 Microsoft Entra ID 之間同步。
注意
目前不支援從內部部署 AD 配置參考屬性(例如 managedby 或 DN/DistinguishedName)的能力。 您可以在 User Voice \(英文\) 上要求此功能。
填入並使用新屬性
在 Microsoft Entra 系統管理中心,當您 編輯使用者屬性對應 以進行單一登錄或從 Microsoft Entra ID 佈建至應用程式時,Source 屬性 清單現在會以 <attributename> (extension_<appID>_<attributename>)
格式包含新增的屬性,其中 appID 是租用戶中應用程式預留位置的識別碼。 選取屬性,並將其對應至目標應用程式以進行佈建。
然後,您必須在啟用佈建至應用程式之前,先將指派給應用程式的使用者填入必要的屬性。 如果屬性不是源自 Active Directory,則有五種方式可以大量填入使用者:
- 如果屬性源自 HR 系統,且您正將該 HR 系統中的員工配置到 Active Directory 作為使用者,請設定從 Workday、SAP SuccessFactors 的對應關係,或如果您使用不同的 HR 系統,則使用 HR API 輸入到 Active Directory 屬性的對應。 然後,等候 Microsoft Entra Connect 或 Microsoft Entra Connect 雲端同步,以同步您在 Active Directory 架構中所做的更新,並將 Active Directory 使用者同步至 Microsoft Entra ID。
- 如果屬性源自 HR 系統,而且您不是使用 Active Directory,您可以透過 輸入 API 來設定從 Workday、 SAP SuccessFactors 或其他項目到 Microsoft Entra 使用者屬性的對應。
- 如果屬性源自另一個內部部署系統,您可以設定 MIM Connector for Microsoft Graph 來建立或更新 Microsoft Entra 使用者。
- 如果屬性源自使用者本身,則您可以要求使用者在要求存取應用程式時提供屬性值,方法是在 權利管理目錄 中包含屬性需求。
- 針對所有其他情況,自訂應用程式可以透過 Microsoft Graph API 來更新使用者。