設定群組和小組擁有者對應用程式的同意
在本文中,您將了解如何設定群組和小組擁有者同意應用程式的方式,以及如何停用群組和小組擁有者未來對應用程式的所有同意作業。
群組和小組擁有者可以授權應用程式 (例如由第三方廠商發佈的應用程式),讓這些應用程式有權存取與群組相關聯的組織資料。 例如,Microsoft Teams 中的小組擁有者可以允許應用程式讀取小組中的所有 Teams 訊息,或列出群組成員的基本設定檔。 若要深入了解,請參閱 Microsoft Teams 中的資源專屬同意。
群組擁有者同意可透過兩種不同的方式來管理:透過 Microsoft Entra 系統管理中心,以及透過建立應用程式同意原則。 在 Microsoft Entra 系統管理中心內,您可以啟用所有群組擁有者、啟用選取的群組擁有者,或停用群組擁有者同意應用程式的能力。 另一方面,應用程式同意原則可讓您指定哪些應用程式同意原則會控管群組擁有者對應用程式的同意。 接著,您可以彈性地指派 Microsoft 內建原則,或建立您自己的自訂原則,以有效管理群組擁有者的同意程序。
在建立應用程式同意原則來管理群組擁有者同意之前,您必須透過 Microsoft Entra 系統管理中心停用群組擁有者的同意設定。 停用此設定可讓群組擁有者同意受應用程式同意原則所約束。 您可以在本文中了解如何以各種方式停用群組擁有者的同意設定。 深入了解如何透過針對您的需求量身訂做的應用程式同意原則來管理群組擁有者同意。
必要條件
若要設定群組和小組擁有者的同意,您需要:
使用 Microsoft Entra 系統管理中心來管理群組擁有者對應用程式的同意
您可以設定允許哪些使用者同意應用程式存取其群組或其小組的資料,或者您可以對於所有使用者停用這項設定。
提示
根據您開始使用的入口網站,本文中的步驟可能略有不同。
若要透過 Microsoft Entra 系統管理中心來設定群組和小組擁有者的同意設定:
遵循下列步驟來管理群組擁有者同意存取群組資料的應用程式:
- 以至少 [特殊權限角色管理員] 身分登入 Microsoft Entra 系統管理中心。
- 瀏覽至 [身分識別]>[應用程式]>[企業應用程式]>[同意和權限]>[使用者同意設定]。
- 在 [群組擁有者同意存取資料的應用程式] 底下,選取您要啟用的選項。
- 選取 [儲存] 以儲存您的設定。
在此範例中,所有群組擁有者都可以同意應用程式存取其群組的資料:
您可以使用 Microsoft Graph PowerShell (英文) 模組,來啟用或停用群組擁有者同意應用程式存取其所擁有貴組織群組資料的能力。 本節中的 Cmdlet 是 Microsoft.Graph.Identity.SignIns (英文) 模組的一部分。
連線到 Microsoft Graph PowerShell,並至少以特殊權限角色管理員 (部分機器翻譯) 身分登入。 若要讀取目前的使用者同意設定,請使用 Policy.Read.All
權限。 若要讀取和變更使用者同意設定,請使用 Policy.ReadWrite.Authorization
權限。
使用
Select-MgProfile
命令將設定檔變更為 Beta。Select-MgProfile -Name "beta"
使用最低特殊權限
Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization" # If you need to create a new setting based on the templates, please use this permission Connect-MgGraph -Scopes "Directory.ReadWrite.All"
使用 Microsoft Graph PowerShell 來擷取目前的設定
擷取您租用戶中同意原則設定目錄設定的目前值。 這需要檢查是否已建立這項功能的目錄設定,如果未建立,則使用對應目錄設定範本中的值。
$consentSettingsTemplateId = "dffd5d46-495d-40a9-8e21-954ff55e198a" # Consent Policy Settings
$settings = Get-MgDirectorySetting | ?{ $_.TemplateId -eq $consentSettingsTemplateId }
if (-not $settings) {
$template = Get-MgDirectorySettingTemplate -DirectorySettingTemplateId $consentSettingsTemplateId
$body = @{
"templateId" = $template.Id
"values" = @(
@{
"name" = "EnableGroupSpecificConsent"
"value" = $true
},
@{
"name" = "BlockUserConsentForRiskyApps"
"value" = $true
},
@{
"name" = "EnableAdminConsentRequests"
"value" = $true
},
@{
"name" = "ConstrainGroupSpecificConsentToMembersOfGroupId"
"value" = ""
}
)
}
$settings = New-MgDirectorySetting -BodyParameter $body
}
$enabledValue = $settings.Values | ? { $_.Name -eq "EnableGroupSpecificConsent" }
$limitedToValue = $settings.Values | ? { $_.Name -eq "ConstrainGroupSpecificConsentToMembersOfGroupId" }
了解 Microsoft Graph PowerShell 中的設定值
有兩個設定值可定義哪些使用者可以允許應用程式存取其群組的資料:
設定 | 類型 | 描述 |
---|---|---|
EnableGroupSpecificConsent | 布林值 | 表示是否允許群組擁有者授與群組特定權限的旗標。 |
ConstrainGroupSpecificConsentToMembersOfGroupId | Guid | 如果 EnableGroupSpecificConsent 設定為 "True",且此值設定為群組的物件識別碼,則已識別群組的成員會獲得授權,將群組特定權限授與他們所擁有的群組。 |
使用 Microsoft Graph PowerShell 來更新所需設定的設定值
# Disable group-specific consent entirely
$enabledValue.Value = "false"
$limitedToValue.Value = ""
# Enable group-specific consent for all users
$enabledValue.Value = "true"
$limitedToValue.Value = ""
# Enable group-specific consent for users in a given group
$enabledValue.Value = "true"
$limitedToValue.Value = "{group-object-id}"
使用 Microsoft Graph PowerShell 來儲存您的設定
```powershell
# Update an existing directory settings
Update-MgDirectorySetting -DirectorySettingId $settings.Id -Values $settings.Values
若要使用 Graph 總管 (英文) 透過目錄設定來管理群組和小組擁有者的同意設定:
您必須以特殊權限角色管理員 (部分機器翻譯) 身分登入。 若要讀取目前的使用者同意設定,請同意 Policy.Read.All
權限。 若要讀取和變更使用者同意設定,請同意 Policy.ReadWrite.Authorization
權限。
使用 Microsoft Graph API 來擷取目前的設定
從租用戶的 Microsoft Entra 系統管理中心擷取「同意原則設定」的目前值。 這需要檢查是否已建立這項功能的目錄設定,如果未建立,則使用第二個 Microsoft Graph 呼叫來建立對應的目錄設定。
GET https://graph.microsoft.com/beta/settings
回應
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#settings",
"value": [
{
"id": "{ directorySettingId }",
"displayName": "Consent Policy Settings",
"templateId": "dffd5d46-495d-40a9-8e21-954ff55e198a",
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "true"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": ""
}
]
}
]
}
如果 value
是空的,請建立對應的目錄設定 (請參閱下面的範例)。
GET https://graph.microsoft.com/beta/settings
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#settings",
"value": []
}
POST https://graph.microsoft.com/beta/settings
{
"templateId": "dffd5d46-495d-40a9-8e21-954ff55e198a",
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "true"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": ""
}
]
}
了解 Microsoft Graph API 中的設定值
有兩個設定值可定義哪些使用者可以允許應用程式存取其群組的資料:
設定 | 類型 | 描述 |
---|---|---|
EnableGroupSpecificConsent | 布林值 | 表示是否允許群組擁有者授與群組特定權限的旗標。 |
ConstrainGroupSpecificConsentToMembersOfGroupId | Guid | 如果 EnableGroupSpecificConsent 設定為 "True",且此值設定為群組的物件識別碼,則已識別群組的成員會獲得授權,將群組特定權限授與他們所擁有的群組。 |
使用 Microsoft Graph API 來更新所需設定的設定值
在擷取目前的設定時,將 {directorySettingId}
取代為 value
集合中的實際識別碼
完全停用群組特定同意
PATCH https://graph.microsoft.com/beta/settings/{directorySettingId}
{
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "false"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": ""
}
]
}
為所有使用者啟用群組特定同意
PATCH https://graph.microsoft.com/beta/settings/{directorySettingId}
{
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "true"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": ""
}
]
}
為指定群組中的使用者啟用群組特定同意
PATCH https://graph.microsoft.com/beta/settings/{directorySettingId}
{
"values": [
{
"name": "EnableGroupSpecificConsent",
"value": "true"
},
{
"name": "BlockUserConsentForRiskyApps",
"value": "true"
},
{
"name": "EnableAdminConsentRequests",
"value": "true"
},
{
"name": "ConstrainGroupSpecificConsentToMembersOfGroupId",
"value": "{group-object-id}"
}
]
}
注意
當 [使用者可以同意應用程式代表其存取公司資料] 設定關閉時,不會停用 [使用者可以同意應用程式存取他們所擁有之群組的公司資料] 選項。
透過應用程式同意原則來管理群組擁有者對應用程式的同意
您可以透過應用程式同意原則來設定哪些使用者可以存取應用程式存取其群組或小組的資料。 若要讓群組擁有者同意受應用程式同意原則所約束,就必須停用群組擁有者的同意設定。 停用之後,系統便會從應用程式同意原則讀取您目前的原則。
若要選擇控管應用程式使用者同意的應用程式同意原則,您可以使用 Microsoft Graph PowerShell 模組。 此處使用的 Cmdlet 包含在 Microsoft.Graph.Identity.SignIns 模組中。
使用所需的最低權限連線到 Microsoft Graph PowerShell。 若要讀取目前的使用者同意設定,請使用 Policy.Read.All
。 若要讀取和變更使用者同意設定,請使用 Policy.ReadWrite.Authorization
。 您必須以特殊權限角色管理員 (部分機器翻譯) 身分登入。
# change the profile to beta by using the `Select-MgProfile` command
Select-MgProfile -Name "beta".
Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization"
使用 Microsoft Graph PowerShell 停用群組擁有者同意以使用應用程式同意原則
檢查
ManagePermissionGrantPoliciesForOwnedResource
的範圍是否在group
中。擷取群組擁有者同意設定的目前值。
Get-MgPolicyAuthorizationPolicy | select -ExpandProperty DefaultUserRolePermissions | ft PermissionGrantPoliciesAssigned
如果
PermissionGrantPoliciesAssigned
中傳回ManagePermissionGrantPoliciesForOwnedResource
,您的群組擁有者同意設定「可能」已受到應用程式同意原則所控管。檢查原則的範圍是否為
group
。Get-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | ft AdditionalProperties
如果
resourceScopeType
==group
,表示您的群組擁有者同意設定「已經」受到應用程式同意原則所控管。
若要停用群組擁有者同意以利用應用程式同意原則,請確定在更新集合時,同意原則 (
PermissionGrantPoliciesAssigned
) 有包含目前的ManagePermissionGrantsForSelf.*
原則和其他目前的ManagePermissionGrantsForOwnedResource.*
原則 (如果有任何不適用於群組的原則的話)。 如此一來,您就可以針對使用者同意設定和其他資源同意設定來保有目前的設定。# only exclude policies that are scoped in group $body = @{ "permissionGrantPolicyIdsAssignedToDefaultUserRole" = @( "managePermissionGrantsForSelf.{current-policy-for-user-consent}", "managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}" ) } Update-MgPolicyAuthorizationPolicy -AuthorizationPolicyId authorizationPolicy -BodyParameter $body
使用 Microsoft Graph PowerShell 將應用程式同意原則指派給群組擁有者
若要讓群組擁有者同意受應用程式同意原則所約束,請選擇哪些應用程式同意原則應控管群組擁有者用來向應用程式授與同意的授權。 請確定同意原則 (PermissionGrantPoliciesAssigned
) 在更新集合時包含目前的 ManagePermissionGrantsForSelf.*
原則和其他 ManagePermissionGrantsForOwnedResource.*
原則 (如果有的話)。 如此一來,您就可以針對使用者同意設定和其他資源同意設定來保有目前的設定。
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForSelf.{current-policy-for-user-consent}",
"managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}",
"managePermissionGrantsForOwnedResource.{app-consent-policy-id-for-group}" #new app consent policy for groups
)
}
Update-MgPolicyAuthorizationPolicy -AuthorizationPolicyId authorizationPolicy -BodyParameter $body
將 {app-consent-policy-id-for-group}
取代為您想要套用的原則識別碼。 您可以選擇您所建立的自訂應用程式同意原則,也可以從下列內建原則中進行選擇:
識別碼 | 描述 |
---|---|
microsoft-pre-approval-apps-for-group | 僅允許群組擁有者同意預先核准的應用程式 僅允許群組擁有者同意其所擁有之群組的系統管理員所預先核准的應用程式。 |
microsoft-all-application-permissions-for-group | 允許群組擁有者同意應用程式 此選項可讓所有群組擁有者針對其所擁有之群組的任何應用程式,同意任何不需要系統管理員同意的權限。 其中包含已由權限授與預先核准原則預先核准群組資源特定同意的應用程式。 |
例如,若要讓群組擁有者同意受內建原則 microsoft-all-application-permissions-for-group
所約束,請執行下列命令:
$body = @{
"permissionGrantPolicyIdsAssignedToDefaultUserRole" = @(
"managePermissionGrantsForSelf.{current-policy-for-user-consent}",
"managePermissionGrantsForOwnedResource.{all-policies-that-are-not-applicable-to-groups}",
"managePermissionGrantsForOwnedResource.{microsoft-all-application-permissions-for-group}" # policy that is be scoped to group
)
}
Update-MgPolicyAuthorizationPolicy -AuthorizationPolicyId authorizationPolicy -BodyParameter $body
使用 Graph 總管 (英文) 來選擇哪些群組擁有者同意原則會控管使用者同意群組擁有者同意應用程式存取其所擁有貴組織群組資料的能力。
使用 Microsoft Graph API 停用群組擁有者同意以使用應用程式同意原則
檢查
ManagePermissionGrantPoliciesForOwnedResource
的範圍是否在group
中。- 擷取群組擁有者同意設定的目前值
GET https://graph.microsoft.com/v1.0/policies/authorizationPolicy
如果
permissionGrantPolicyIdsAssignedToDefaultUserRole
中傳回ManagePermissionGrantsForOwnedResource
,您的群組擁有者同意設定可能已受到應用程式同意原則所控管。2. 檢查原則的範圍是否為
group
。GET https://graph.microsoft.com/beta/policies/permissionGrantPolicies/{microsoft-all-application-permissions-for-group}
如果
resourceScopeType
==group
,表示您的群組擁有者同意設定已經受到應用程式同意原則所控管。若要停用群組擁有者同意以利用應用程式同意原則,請確定同意原則 (
PermissionGrantPoliciesAssigned
) 有包含目前的ManagePermissionGrantsForSelf.*
原則和其他目前的ManagePermissionGrantsForOwnedResource.*
原則 (如果有任何不適用於群組的原則的話)。 如此一來,您就可以針對使用者同意設定和其他資源同意設定來保有目前的設定。PATCH https://graph.microsoft.com/beta/policies/authorizationPolicy { "defaultUserRolePermissions": { "permissionGrantPoliciesAssigned": [ "managePermissionGrantsForSelf.{current-policy-for-user-consent}", "managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}" ] } }
使用 Microsoft Graph API 將應用程式同意原則指派給群組擁有者
若要讓群組擁有者同意受應用程式同意原則所約束,請選擇哪些應用程式同意原則應控管群組擁有者用來向應用程式授與同意的授權。 請確定同意原則 (PermissionGrantPoliciesAssigned
) 在更新集合時包含目前的 ManagePermissionGrantsForSelf.*
原則和其他目前的 ManagePermissionGrantsForOwnedResource.*
原則 (如果有的話)。 如此一來,您就可以針對使用者同意設定和其他資源同意設定來保有目前的設定。
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"managePermissionGrantsForSelf.{current-policy-for-user-consent}",
"managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}",
"managePermissionGrantsForOwnedResource.{app-consent-policy-id-for-group}"
}
}
將 {app-consent-policy-id-for-group}
取代為您想要為群組套用之原則的識別碼。 您可以選擇您所建立的群組自訂應用程式同意原則,也可以從下列內建原則中進行選擇:
識別碼 | 描述 |
---|---|
microsoft-pre-approval-apps-for-group | 僅允許群組擁有者同意預先核准的應用程式 僅允許群組擁有者同意其所擁有之群組的系統管理員所預先核准的應用程式。 |
microsoft-all-application-permissions-for-group | 允許群組擁有者同意應用程式 此選項可讓所有群組擁有者針對其所擁有之群組的任何應用程式,同意任何不需要系統管理員同意的權限。 其中包含已由權限授與預先核准原則預先核准群組資源特定同意的應用程式。 |
例如,若要讓群組擁有者同意受內建原則 microsoft-pre-approval-apps-for-group
所約束,請使用下列 PATCH 命令:
PATCH https://graph.microsoft.com/v1.0/policies/authorizationPolicy
{
"defaultUserRolePermissions": {
"permissionGrantPoliciesAssigned": [
"managePermissionGrantsForSelf.{current-policy-for-user-consent}",
"managePermissionGrantsForOwnedResource.{other-policies-that-are-not-applicable-to-groups}",
"managePermissionGrantsForOwnedResource.microsoft-pre-approval-apps-for-group"
]
}
}
下一步
若要取得協助或尋找您的問題解答:
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應