自訂安全性屬性布建可讓客戶使用Microsoft Entra 輸入布建功能自動設定自定義安全性屬性。 透過這項功能,您可以從權威來源取得自定義安全性屬性的來源值,例如來自 HR 系統的值。 自定義安全性屬性布建支援下列來源:Workday、SAP SuccessFactors 和其他使用 API 驅動布建的整合式 HR 系統。 設定目標是您的 Microsoft Entra ID 租戶。
自訂安全性屬性
Microsoft Entra ID 中的自訂安全性屬性是針對商務需求特定的屬性(鍵值對),您可以定義並指派給 Microsoft Entra 物件。 這些屬性可用來儲存資訊、分類物件,或對特定 Azure 資源強制執行微調的訪問控制。 若要深入瞭解自定義安全性屬性,請參閱 Microsoft Entra ID 中什麼是自定義安全性屬性?。
先決條件
若要布建自定義安全性屬性,您必須符合下列必要條件:
- Microsoft Entra ID Premium P1 授權,可設定下列其中一個入站佈建應用程式:
- 在屬性對應過程中,啟用租戶中的自訂安全屬性以進行探索。 使用此功能之前,您必須在 Microsoft Entra ID 租使用者中 建立自定義安全性屬性集 。 布建服務支援為、 和
String
類型的Integer
Boolean
自訂安全性屬性設定單一自由格式和預先定義的值。 - 若要在入站布建應用程式的屬性對應中設定自訂安全性屬性,請以有指派為 應用程式管理員 和 屬性布建系統管理員 的 Microsoft Entra 角色的使用者身分登入 Microsoft Entra 系統管理中心:
- 需要應用程式管理員才能建立及更新布建應用程式。
- 需要屬性布建系統管理員,才能在布建應用程式的屬性對應區段中新增或移除自定義安全性屬性。
已知的限制
- 不支援布建多重值自定義安全性屬性。
- 不支援設定已停用的自訂安全性屬性。
- 使用 屬性記錄讀取器 角色,您無法在布建記錄中檢視自定義安全性屬性值。
使用自訂安全性屬性設定布建應用程式
開始之前,請遵循下列步驟,在 Microsoft Entra ID 租使用者中新增自訂安全性屬性,並在入站佈建應用程式中對應這些自訂安全性屬性。
在您的 Microsoft Entra ID 租用戶中定義自定義安全性屬性
在 Microsoft Entra 系統管理中心中,存取從 Entra ID>自定義安全性屬性新增自定義安全性屬性的選項。 您必須至少有 屬性定義系統管理員 角色才能完成這項工作。
此範例包含您可以新增至租使用者的自訂安全性屬性。 使用 屬性集 HRConfidentialData
,然後將下列屬性新增至:
- EEOStatus (字串)
- FLSAStatus (字符串)
- PayGrade (字串)
- PayScaleType (字符串)
- IsRehire (布爾值)
- 員工等級(整數)
在入站佈建應用程式中對應自訂安全性屬性
以同時具有應用程式管理員和屬性布建系統管理員角色許可權的使用者身分登入 Microsoft Entra 系統管理中心。
移至 [企業應用程式],然後開啟您的輸入布建應用程式。
開啟 布建 畫面。
備註
本指南顯示了將 API 驅動的布建過程作用於 Microsoft Entra ID 的螢幕擷圖。 如果您使用 Workday 或 SuccessFactors 布建應用程式,則您會看到 Workday 和 SuccessFactors 相關的屬性和組態。
選取 [編輯佈建]。
選取 [屬性對應 ] 以開啟屬性對應畫面。
定義您想要儲存敏感數據的來源屬性,然後核取 [ 顯示進階選項 ] 方塊以開啟屬性清單。
選取 [編輯 API 的屬性清單 ],以識別您想要測試的屬性。
藉由定義 SCIM 架構命名空間,使用 入站布建 API 測試布建自定義安全屬性:
urn:ietf:params:scim:schemas:extension:microsoft:entra:csa
。 請務必包含下列屬性:urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:EEOStatus
urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:FLSAStatus
urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:PayGrade
urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:PayScaleType
urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:isRehire
urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:EmployeeLevel
備註
您可以定義自己的 SCIM 架構命名空間,以代表 SCIM 承載中的敏感人力資源資料。 請確定其開頭為
urn:ietf:params:scim:schemas:extension
。如果您使用 Workday 或 SuccessFactors 作為 HR 來源,請使用 API 運算式更新屬性清單,以擷取 HR 資料並將其儲存在自定義安全性屬性清單中。
如果您想要從 SuccessFactors 擷取同一組 HR 數據,請使用下列 API 運算式:
$.employmentNav.results[0].jobInfoNav.results[0].eeoClass
$.employmentNav.results[0].jobInfoNav.results[0].flsaStatus
$.employmentNav.results[0].jobInfoNav.results[0].payGradeNav.name
$.employmentNav.results[0].jobInfoNav.results[0].payScaleType
儲存架構變更。
從 [ 屬性對應] 畫面中,選取 [新增對應]。
- 自訂安全性屬性會以 格式
CustomSecurityAttributes.<AttributeSetName>_<AttributeName>
顯示。
- 自訂安全性屬性會以 格式
新增下列映射,然後儲存變更。
API 來源屬性 Microsoft Entra ID 目標屬性 urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:EEOStatus CustomSecurityAttributes.人力資源機密資料_EEO狀態 urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:FLSAStatus CustomSecurityAttributes.HRConfidentialData_FLSAStatus urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:PayGrade CustomSecurityAttributes.人力資源機密數據_薪資等級 urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:PayScaleType 自定安全屬性.人力資源機密資料_薪資等級類型 urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:isRehire CustomSecurityAttributes.HRConfidentialData_IsRehire urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:EmployeeLevel CustomSecurityAttributes.HR機密數據_員工級別
測試自定義安全性屬性布建
將 HR 來源屬性對應至自訂安全性屬性之後,請使用下列方法來測試自定義安全性屬性數據的流程。 您選擇的方法取決於您的佈建應用程式類型。
- 如果您的作業使用 Workday 或 SuccessFactors 作為其來源,請使用 隨需佈建功能 來測試自訂安全屬性數據流。
- 如果您的作業使用 API 驅動布建,請將 SCIM 大量承載傳送至作業的 bulkUpload API 端點。
使用 SuccessFactors 布建應用程式進行測試
在此範例中,SAP SuccessFactors 屬性會對應至自定義安全性屬性,如下所示:
- 開啟 SuccessFactors 布建作業,然後選取 按需布建。
在 [ 選取使用者] 方塊中,輸入您要測試之使用者的 personIdExternal 屬性。
布建記錄會顯示您設定的自定義安全性屬性。
備註
自訂安全性屬性的來源和目標值會在布建記錄中被編輯。
在使用者Microsoft Entra ID 設定檔的 [自定義安全性屬性 ] 畫面中,您可以檢視該使用者設定的實際值。 您至少需要 屬性指派管理員 或 屬性指派讀取者 角色,才能檢視此數據。
使用 API 驅動佈建應用程式進行測試
建立 SCIM 批量請求有效負載,其中包含自定義安全屬性的值。
- 若要存取完整的 SCIM 承載,請參閱 SCIM 承載範例。
從布建作業概觀頁面複製 bulkUpload API URL。
使用 Graph Explorer 或 cURL,然後將 SCIM 負載發送至 bulkUpload API 端點。
- 如果 SCIM 承載格式中沒有任何錯誤,您會收到 「已接受 」狀態。
- 等候幾分鐘,然後檢查 API 驅動布建作業的布建記錄。
自定義安全性屬性如下列範例所示。
備註
自訂安全性屬性的來源和目標值會在部署的記錄中被刪除。 若要檢視使用者設定的實際值,請移至使用者的Microsoft Entra ID 配置檔。
您可以在 [自定義安全性屬性 ] 畫面中檢視數據。 您至少需要屬性指派管理員或屬性指派讀取者角色,才能檢視此數據。
具有自定義安全性屬性的SCIM承載範例
此範例 SCIM 大量要求包含延伸模組 urn:ietf:params:scim:schemas:extension:microsoft:entra:csa
底下的自定義欄位,這些欄位可以對應至自定義安全性屬性。
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
"Operations": [{
"method": "POST",
"bulkId": "897401c2-2de4-4b87-a97f-c02de3bcfc61",
"path": "/Users",
"data": {
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"urn:ietf:params:scim:schemas:extension:microsoft:entra:csa"],
"id": "2819c223-7f76-453a-919d-413861904646",
"externalId": "701984",
"userName": "bjensen@example.com",
"name": {
"formatted": "Ms. Barbara J Jensen, III",
"familyName": "Jensen",
"givenName": "Barbara",
"middleName": "Jane",
"honorificPrefix": "Ms.",
"honorificSuffix": "III"
},
"displayName": "Babs Jensen",
"nickName": "Babs",
"emails": [{
"value": "bjensen@example.com",
"type": "work",
"primary": true
}
],
"addresses": [{
"type": "work",
"streetAddress": "234300 Universal City Plaza",
"locality": "Hollywood",
"region": "CA",
"postalCode": "91608",
"country": "USA",
"formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
"primary": true
}
],
"phoneNumbers": [{
"value": "555-555-5555",
"type": "work"
}
],
"userType": "Employee",
"title": "Tour Guide",
"preferredLanguage": "en-US",
"locale": "en-US",
"timezone": "America/Los_Angeles",
"active": true,
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "701984",
"costCenter": "4130",
"organization": "Universal Studios",
"division": "Theme Park",
"department": "Tour Operations",
"manager": {
"value": "89607",
"$ref": "../Users/26118915-6090-4610-87e4-49d8ca9f808d",
"displayName": "John Smith"
}
},
"urn:ietf:params:scim:schemas:extension:microsoft:entra:csa": {
"EEOStatus":"Semi-skilled",
"FLSAStatus":"Non-exempt",
"PayGrade":"IC-Level5",
"PayScaleType":"Revenue-based",
"IsRehire": false,
"EmployeeLevel": 64
}
}
}, {
"method": "POST",
"bulkId": "897401c2-2de4-4b87-a97f-c02de3bcfc61",
"path": "/Users",
"data": {
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
"urn:ietf:params:scim:schemas:extension:microsoft:entra:csa" ],
"id": "2819c223-7f76-453a-919d-413861904646",
"externalId": "701985",
"userName": "Kjensen@example.com",
"name": {
"formatted": "Ms. Kathy J Jensen, III",
"familyName": "Jensen",
"givenName": "Kathy",
"middleName": "Jane",
"honorificPrefix": "Ms.",
"honorificSuffix": "III"
},
"displayName": "Kathy Jensen",
"nickName": "Kathy",
"emails": [{
"value": "kjensen@example.com",
"type": "work",
"primary": true
}
],
"addresses": [{
"type": "work",
"streetAddress": "100 Oracle City Plaza",
"locality": "Hollywood",
"region": "CA",
"postalCode": "91618",
"country": "USA",
"formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
"primary": true
}
],
"phoneNumbers": [{
"value": "555-555-5545",
"type": "work"
}
],
"userType": "Employee",
"title": "Tour Lead",
"preferredLanguage": "en-US",
"locale": "en-US",
"timezone": "America/Los_Angeles",
"active": true,
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"employeeNumber": "701984",
"costCenter": "4130",
"organization": "Universal Studios",
"division": "Theme Park",
"department": "Tour Operations",
"manager": {
"value": "89607",
"$ref": "../Users/26118915-6090-4610-87e4-49d8ca9f808d",
"displayName": "John Smith"
}
},
"urn:ietf:params:scim:schemas:extension:microsoft:entra:csa": {
"EEOStatus":"Skilled",
"FLSAStatus":"Exempt",
"PayGrade":"Manager-Level2",
"PayScaleType":"Profit-based",
"IsRehire": true,
"EmployeeLevel": 63
}
}
}
],
"failOnErrors": null
}
為混合式使用者布建自定義安全性屬性
混合式使用者會先從內部部署 Active Directory 中的 HR 系統布建,然後使用 Entra Connect Sync 或 Cloud Sync 同步至Microsoft Entra ID。自定義安全性屬性可以指派給混合式使用者,而且這些屬性只會出現在混合式使用者的 Microsoft Entra 識別元配置檔上。
本節說明為混合式用戶自動布建自定義安全性屬性的布建拓撲。 它會使用 Workday 作為受信任的 HR 來源。 不過,相同的拓撲也可以與 SuccessFactors 和 API 驅動布建搭配使用。
假設 Workday 是身分識別記錄的 HR 系統。 若要在從 Workday 來源的混合式用戶上設定自定義安全性屬性,請設定兩個布建應用程式:
- Workday 至內部部署 Active Directory 布建: 此布建應用程式會在內部部署 Active Directory 中建立及更新混合式使用者。 它只會處理 Workday 中的一般屬性。
- Workday to Microsoft Entra ID provisioning: 將此布建應用程式設定為只處理 更新 作業,並將屬性對應限制為只包含自定義安全性屬性作為目標屬性。
透過此拓撲,以下是端對端流程的運作方式:
- Workday-to-AD 布建應用程式會從 Workday 匯入核心使用者配置檔。
- 應用程式會使用員工標識碼作為比對標識符,在內部部署 Active Directory 中建立/更新使用者帳戶。
- Microsoft Entra Connect Sync / Cloud Sync 會將使用者配置檔同步至 Microsoft Entra 標識符。
- 如果您已設定 Workday 回寫功能,則電子郵件或電話號碼資料會回傳到 Workday。
-
Workday 到 Microsoft Entra ID 供應應用程式已設定為僅處理更新,並將機密屬性設定為自訂安全屬性。 使用 [顯示進階選項] 底下的架構編輯器,移除與
accountEnabled
isSoftDeleted
此案例無關的預設屬性對應。
此組態會將自定義安全性屬性指派給從內部部署 Active Directory 同步至 Microsoft Entra ID 的混合式使用者。
備註
上述組態依賴三個不同的同步處理週期,以特定順序完成。 如果混合使用者設定檔無法在 Microsoft Entra ID 中使用,則當 Workday-to-Microsoft Entra ID 佈建 作業執行時,更新作業會失敗,並在下一次執行期間重試。 如果您使用 API 驅動的布建至 Microsoft Entra ID 應用程式,則您可以更妥善地控制自定義安全性屬性更新的執行時間。
自訂安全性屬性布建的 API 許可權
這項功能引進了下列新的圖形 API 許可權。 這項功能可讓您直接或代表登入使用者存取及修改包含自定義安全性屬性對應的布建應用程式架構。
CustomSecAttributeProvisioning.ReadWrite.All:此許可權授與呼叫端應用程式讀取和寫入包含自定義安全性屬性的屬性對應功能。 若要編輯包含自定義安全性屬性對應的布建應用程式,您需要具有
Application.ReadWrite.OwnedBy
、Synchronization.ReadWrite.All
或Application.ReadWrite.All
許可權(從最低到最高權限)。 此許可權可讓您取得包含自定義安全性屬性的完整架構,以及使用自定義安全性屬性來更新或重設架構。CustomSecAttributeProvisioning.Read.All:此許可權授與呼叫端應用程式讀取屬性對應和包含自定義安全性屬性的布建記錄的能力。 需要具有
Synchronization.Read.All
或Application.Read.All
的這個許可權(從最低許可權到最高許可權),才能檢視受保護資源中的自定義安全性屬性名稱和值。
如果應用程式沒有 CustomSecAttributeProvisioning.ReadWrite.All
許可權或 CustomSecAttributeProvisioning.Read.All
許可權,就無法存取或修改包含自定義安全性屬性的布建應用程式。 相反地,會出現錯誤訊息或修訂的數據。
針對自定義安全性屬性布建進行疑難解答
問題 | 疑難排解步驟 |
---|---|
自訂安全性屬性未顯示在 目標屬性 對應下拉式清單中。 | - 確定您要將自訂安全性屬性新增至支援自訂安全性屬性的布建應用程式。 - 確定已登入的使用者已獲指派角色 屬性布建系統管理員 (用於編輯存取權)或 屬性布建讀取器 (用於檢視存取權)。 |
當您重設或更新佈建應用程式架構時,傳回錯誤。 HTTP 403 Forbidden - InsufficientAccountPermission Provisioning schema has custom security attributes. The account does not have sufficient permissions to perform this operation. |
請確定已登入的使用者已獲指派角色 屬性布建系統管理員。 |
無法移除屬性對應中存在的自定義安全性屬性。 | 請確定已登入的使用者已獲指派角色 屬性布建系統管理員。 |
屬性對應數據表具有數據列,其中字串 redacted 會出現在來源和目標屬性之下。 |
如果登入的用戶沒有 屬性布建系統管理員 或 屬性布建讀取者 角色,這種行為是在預期之中。 指派其中一個角色會顯示自定義安全性屬性對應。 |
返回錯誤 The provisioning service does not support setting custom security attributes of type boolean and integer. Unable to set CSA attribute 。 |
從布建應用程式屬性對應中移除整數/布爾值自定義安全性屬性。 |
返回錯誤 The provisioning service does not support setting custom security attributes that are deactivated. Unable to set CSA attribute <attribute name> 。 |
嘗試更新已停用的自定義安全性屬性。 從布建應用程式屬性對應中移除停用的自定義安全性屬性。 |