為使用者指派、更新、列出或移除自訂安全性屬性
Microsoft Entra ID (Microsoft Entra 的一部分) 中的 自訂安全性屬性 是您可以定義並指派給 Microsoft Entra 物件的商務特定屬性 (索引鍵/值組)。 例如,您可以指派自訂安全性屬性來篩選員工,或協助判斷可以存取資源的人員。 本文描述如何指派、更新、列出或移除 Microsoft Entra ID 的自訂安全性屬性。
必要條件
若要指派或移除 Microsoft Entra 租用戶中的使用者自訂安全性屬性,您需要:
- 屬性指派系統管理員
- 使用 Microsoft Graph PowerShell 時的 Microsoft.Graph 模組
- 使用 Azure AD PowerShell 時,為 AzureADPreview 2.0.2.138 版或更新版本
重要
依預設,全域管理員和其他系統管理員角色無權讀取、定義或指派自訂安全性屬性。
將自訂安全性屬性指派給使用者
提示
根據您開始使用的入口網站,本文中的步驟可能略有不同。
請確定您已定義自訂安全性屬性。 如需詳細資訊,請參閱在 Microsoft Entra ID 中新增或停用自訂安全性屬性定義。
瀏覽至 [身分識別]>[使用者]>[所有使用者]。
尋找並選取您想要指派自訂安全性屬性的使用者。
在 [管理] 區段中,選取 [自訂安全性屬性]。
選取 [新增指派]。
在 [屬性集] 中,從清單中選取屬性集。
在 [屬性名稱] 中,從清單中選取自訂安全性屬性。
您可以根據所選自訂安全性屬性的內容,輸入單一值、選取預先定義清單中的值,或新增多個值。
- 若為自由格式的單一值自訂安全性屬性,請在 [已指派值] 方塊中輸入值。
- 若為預先定義的自訂安全性屬性值,請從 [已指派值] 清單中選取值。
- 若為多個值的自訂安全性屬性,請選取 [新增值] 開啟 [屬性值] 窗格,然後新增值。 值新增完成後,請選取 [完成]。
完成後,請選取 [儲存],將自訂安全性屬性指派給使用者。
更新使用者的自訂安全性屬性指派值
瀏覽至 [身分識別]>[使用者]>[所有使用者]。
尋找並選取有您想要更新之自訂安全性屬性指派值的使用者。
在 [管理] 區段中,選取 [自訂安全性屬性]。
尋找您想要更新的自訂安全性屬性指派值。
將自訂安全性屬性指派給使用者之後,您就只能變更自訂安全性屬性的值。 不能變更自訂安全性屬性的其他內容,例如屬性集或屬性名稱。
根據所選自訂安全性屬性的內容,您可以更新單一值、選取預先定義清單中的值,或更新多個值。
完成後,請選取儲存。
根據自訂安全性屬性指派篩選使用者
您可以在 [所有使用者] 頁面上,篩選指派給使用者的自訂安全性屬性清單。
瀏覽至 [身分識別]>[使用者]>[所有使用者]。
選取 [新增篩選條件] 以開啟 [新增篩選條件] 窗格。
選取 [自訂安全性屬性]。
選取屬性集和屬性名稱。
針對 [運算子],您可以選取等於 (==)、不等於 (!=),或開頭值。
在 [值] 中輸入或選取值。
若要套用篩選,請選取 [套用]。
移除使用者的自訂安全性屬性指派
瀏覽至 [身分識別]>[使用者]>[所有使用者]。
尋找並選取有您想要移除之自訂安全性屬性指派的使用者。
在 [管理] 區段中,選取 [自訂安全性屬性]。
在您想要移除的所有自訂安全性屬性指派旁邊,新增核取記號。
選取 [移除指派]。
PowerShell 或 Microsoft Graph API
您可以使用 PowerShell 或 Microsoft Graph API 來管理 Microsoft Entra 組織中的使用者自訂安全性屬性指派。 您可以使用下列範例來管理指派。
將具有一個字串值的自訂安全性屬性指派給使用者
下列範例將具有一個字串值的自訂安全性屬性指派給使用者。
- 屬性集:
Engineering
- 屬性:
ProjectDate
- 屬性資料類型:字串
- 屬性值:
"2024-11-15"
$customSecurityAttributes = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"ProjectDate" = "2024-11-15"
}
}
Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
將具有多個字串值的自訂安全性屬性指派給使用者
下列範例將具有多字串值的自訂安全性屬性指派給使用者。
- 屬性集:
Engineering
- 屬性:
Project
- 屬性資料類型:字串集合
- 屬性值:
["Baker","Cascade"]
$customSecurityAttributes = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"Project@odata.type" = "#Collection(String)"
"Project" = @("Baker","Cascade")
}
}
Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
將具有一個整數值的自訂安全性屬性指派給使用者
下列範例將具有整數值的自訂安全性屬性指派給使用者。
- 屬性集:
Engineering
- 屬性:
NumVendors
- 屬性資料類型:整數
- 屬性值:
4
$customSecurityAttributes = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"NumVendors@odata.type" = "#Int32"
"NumVendors" = 4
}
}
Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
將具有多個整數值的自訂安全性屬性指派給使用者
下列範例將具有多個整數值的自訂安全性屬性指派給使用者。
- 屬性集:
Engineering
- 屬性:
CostCenter
- 屬性資料類型:整數集合
- 屬性值:
[1001,1003]
$customSecurityAttributes = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"CostCenter@odata.type" = "#Collection(Int32)"
"CostCenter" = @(1001,1003)
}
}
Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
將具有一個布林值的自訂安全性屬性指派給使用者
下列範例將具有一個布林值的自訂安全性屬性指派給使用者。
- 屬性集:
Engineering
- 屬性:
Certification
- 屬性資料類型:布林值
- 屬性值:
true
$customSecurityAttributes = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"Certification" = $true
}
}
Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
更新使用者具有一個整數值的自訂安全性屬性指派
下列範例更新使用者具有一個整數值的自訂安全性屬性指派。
- 屬性集:
Engineering
- 屬性:
NumVendors
- 屬性資料類型:整數
- 屬性值:
8
$customSecurityAttributes = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"NumVendors@odata.type" = "#Int32"
"NumVendors" = 8
}
}
Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
更新使用者具有一個布林值的自訂安全性屬性指派
下列範例更新使用者具有一個布林值的自訂安全性屬性指派。
- 屬性集:
Engineering
- 屬性:
Certification
- 屬性資料類型:布林值
- 屬性值:
false
$customSecurityAttributes = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"Certification" = $false
}
}
Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
更新使用者具有多個字串值的自訂安全性屬性指派
下列範例更新使用者具有一個多字串值的自訂安全性屬性指派。
- 屬性集:
Engineering
- 屬性:
Project
- 屬性資料類型:字串集合
- 屬性值:
("Alpine","Baker")
$customSecurityAttributes = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"Project@odata.type" = "#Collection(String)"
"Project" = @("Alpine","Baker")
}
}
Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
取得使用者的自訂安全性屬性指派
下列範例取得使用者的自訂安全性屬性指派。
$userAttributes = Get-MgUser -UserId $userId -Property "customSecurityAttributes"
$userAttributes.CustomSecurityAttributes.AdditionalProperties | Format-List
$userAttributes.CustomSecurityAttributes.AdditionalProperties.Engineering
$userAttributes.CustomSecurityAttributes.AdditionalProperties.Marketing
Key : Engineering
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [Project@odata.type, #Collection(String)], [Project, System.Object[]],
[ProjectDate, 2024-11-15]…}
Key : Marketing
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [EmployeeId, GS45897]}
Key Value
--- -----
@odata.type #microsoft.graph.customSecurityAttributeValue
Project@odata.type #Collection(String)
Project {Baker, Alpine}
ProjectDate 2024-11-15
NumVendors 8
CostCenter@odata.type #Collection(Int32)
CostCenter {1001, 1003}
Certification False
Key Value
--- -----
@odata.type #microsoft.graph.customSecurityAttributeValue
EmployeeId KX45897
如果未將任何自訂安全性屬性指派給使用者,或呼叫主體沒有存取權,回應會是空的。
列出所有自訂安全性屬性指派等於值的使用者
下列範例列出所有自訂安全性屬性指派等於值的使用者。 會擷取名稱為 AppCountry
,其值等於 Canada
的自訂安全性屬性使用者。 篩選值會區分大小寫。 您必須在要求或標頭中新增 ConsistencyLevel=eventual
。 您也必須包含 $count=true
,確保正確路由要求。
- 屬性集:
Marketing
- 屬性:
AppCountry
- 篩選條件:AppCountry eq 'Canada'
$userAttributes = Get-MgUser -CountVariable CountVar -Property "id,displayName,customSecurityAttributes" -Filter "customSecurityAttributes/Marketing/AppCountry eq 'Canada'" -ConsistencyLevel eventual
$userAttributes | select Id,DisplayName,CustomSecurityAttributes
$userAttributes.CustomSecurityAttributes.AdditionalProperties | Format-List
Id DisplayName CustomSecurityAttributes
-- ----------- ------------------------
00aa00aa-bb11-cc22-dd33-44ee44ee44ee Jiya Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
11bb11bb-cc22-dd33-ee44-55ff55ff55ff Jana Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
Key : Engineering
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [Datacenter@odata.type, #Collection(String)], [Datacenter, System.Object[]]}
Key : Marketing
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [AppCountry@odata.type, #Collection(String)], [AppCountry, System.Object[]],
[EmployeeId, KX19476]}
Key : Marketing
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [AppCountry@odata.type, #Collection(String)], [AppCountry, System.Object[]],
[EmployeeId, GS46982]}
列出所有自訂安全性屬性指派以值為開頭使用者
下列範例列出所有自訂安全性屬性指派以值為開頭的使用者。 會擷取名稱為 EmployeeId
,其值以 GS
開頭的自訂安全性屬性使用者。 篩選值會區分大小寫。 您必須在要求或標頭中新增 ConsistencyLevel=eventual
。 您也必須包含 $count=true
,確保正確路由要求。
- 屬性集:
Marketing
- 屬性:
EmployeeId
- 篩選條件:EmployeeId startsWith 'GS'
$userAttributes = Get-MgUser -CountVariable CountVar -Property "id,displayName,customSecurityAttributes" -Filter "startsWith(customSecurityAttributes/Marketing/EmployeeId,'GS')" -ConsistencyLevel eventual
$userAttributes | select Id,DisplayName,CustomSecurityAttributes
$userAttributes.CustomSecurityAttributes.AdditionalProperties | Format-List
Id DisplayName CustomSecurityAttributes
-- ----------- ------------------------
22cc22cc-dd33-ee44-ff55-66aa66aa66aa Chandra Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
11bb11bb-cc22-dd33-ee44-55ff55ff55ff Jana Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
33dd33dd-ee44-ff55-aa66-77bb77bb77bb Joe Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
Key : Marketing
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [EmployeeId, GS36348]}
Key : Marketing
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [AppCountry@odata.type, #Collection(String)], [AppCountry, System.Object[]],
[EmployeeId, GS46982]}
Key : Engineering
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [Project@odata.type, #Collection(String)], [Project, System.Object[]],
[ProjectDate, 2024-11-15]…}
Key : Marketing
Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [EmployeeId, GS45897]}
列出所有自訂安全性屬性指派不等於值的使用者
下列範例列出所有自訂安全性屬性指派不等於值的使用者。 會擷取名稱為 AppCountry
,其值不等於 Canada
的自訂安全性屬性使用者。 篩選值會區分大小寫。 您必須在要求或標頭中新增 ConsistencyLevel=eventual
。 您也必須包含 $count=true
,確保正確路由要求。
- 屬性集:
Marketing
- 屬性:
AppCountry
- 篩選條件:AppCountry ne 'Canada'
$userAttributes = Get-MgUser -CountVariable CountVar -Property "id,displayName,customSecurityAttributes" -Filter "customSecurityAttributes/Marketing/AppCountry ne 'Canada'" -ConsistencyLevel eventual
$userAttributes | select Id,DisplayName,CustomSecurityAttributes
Id DisplayName CustomSecurityAttributes
-- ----------- ------------------------
22cc22cc-dd33-ee44-ff55-66aa66aa66aa Chandra Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
44ee44ee-ff55-aa66-bb77-88cc88cc88cc Isabella Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
00aa00aa-bb11-cc22-dd33-44ee44ee44ee Alain Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
33dd33dd-ee44-ff55-aa66-77bb77bb77bb Joe Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
00aa00aa-bb11-cc22-dd33-44ee44ee44ee Dara Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
移除使用者的單一值自訂安全性屬性指派
下列範例將值設為 null,移除使用者的單一值自訂安全性屬性指派。
- 屬性集:
Engineering
- 屬性:
ProjectDate
- 屬性值:
null
$params = @{
"customSecurityAttributes" = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"ProjectDate" = $null
}
}
}
Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/v1.0/users/$userId" -Body $params
移除使用者的多值自訂安全性屬性指派
下列範例將值設為空白,移除使用者的多值自訂安全性屬性指派。
- 屬性集:
Engineering
- 屬性:
Project
- 屬性值:
[]
$customSecurityAttributes = @{
"Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
"Project" = @()
}
}
Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
常見問題集
哪些工具支援使用者的自訂安全性屬性指派?
Microsoft Entra 系統管理中心、PowerShell 和 Microsoft Graph API 都支援使用者的自訂安全性屬性指派。 我的應用程式或 Microsoft 365 系統管理中心不支援自訂安全性屬性指派。
誰可以檢視指派給使用者的自訂安全性屬性?
只有在租用戶範圍內獲派屬性指派系統管理員或屬性指派讀者角色的使用者,才能檢視指派給租用戶所有使用者的自訂安全性屬性。 使用者無法檢視指派給其設定檔或其他使用者的自訂安全性屬性。 無論租用戶上設定的來賓權限為何,來賓都無法檢視自訂安全性屬性。
我需要建立應用程式才能新增自訂安全性屬性指派嗎?
否,自訂安全性屬性不需要應用程式就可以指派給使用者物件。
為什麼嘗試儲存自訂安全性屬性指派一直發生錯誤?
您無權將自訂安全性屬性指派給使用者。 請確定您已獲指派屬性指派系統管理員角色。
我可以將自訂安全性屬性指派給來賓嗎?
是,您可以將自訂安全性屬性指派給您租用戶的成員或來賓。
我可以將自訂安全性屬性指派給目錄同步的使用者嗎?
是,您可以將自訂安全性屬性指派給內部部署 Active Directory 的目錄同步使用者。
自訂安全性屬性指派可供組動態成員資格群組規則使用嗎?
否,不支援使用指派給使用者的自訂安全性屬性來設定組動態成員資格群組規則。
自訂安全性屬性和 B2C 租用戶的自訂屬性是否相同?
否,B2C 租用戶不支援自訂安全性屬性,這些屬性也與 B2C 功能無關。