管理應用程式同意原則
應用程式同意原則是管理應用程式存取組織中數據的許可權的方法。 他們用來控制使用者可以同意哪些應用程式,並確保應用程式符合特定準則,才能存取數據。 這些原則可協助組織控制其數據,並確保它們只授與信任應用程式的存取權。
在本文中,您將瞭解如何管理內建和自定義應用程式同意原則,以控制何時可授與同意。
透過 Microsoft Graph 和 Microsoft Graph PowerShell,您可以檢視和管理應用程式同意原則。
應用程式同意原則包含一或多個「包含」條件集和零或多個「排除」條件集。 若要在應用程式同意原則中考慮某個事件,它必須符合 至少 一個「包含」條件集,且不得符合 任何 「排除」條件集。
每個條件集都包含數個條件。 若要讓事件符合條件集, 必須符合條件集中的所有 條件。
標識符開頭為 「microsoft-」 的應用程式同意原則是內建原則。 其中一些內建原則會用於現有的內建目錄角色。 例如,microsoft-application-admin
應用程式同意原則描述允許應用程式 管理員 istrator 和 Cloud Application 管理員 istrator 角色授與全租用戶系統管理員同意的條件。 內建原則可用於自定義目錄角色和設定使用者同意設定,但無法編輯或刪除。
必要條件
- 具有下列其中一個角色的用戶或服務:
- 全域 管理員 istrator 目錄角色
- 特殊許可權角色 管理員 istrator 目錄角色
- 具有管理應用程式同意原則所需許可權的 自定義目錄角色
- 以應用程式或服務身分連線時,Microsoft Graph 應用程式角色 (應用程式權限)
Policy.ReadWrite.PermissionGrant
若要使用 Microsoft Graph PowerShell 管理應用程式同意原則,請連線至 Microsoft Graph PowerShell。
Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"
列出現有的應用程式同意原則
最好先熟悉組織中的現有應用程式同意原則:
列出所有應用程式同意原則:
Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
檢視原則的「包含」條件集:
Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
檢視 「排除」條件集:
Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
使用 PowerShell 建立自定義應用程式同意原則
請遵循下列步驟來建立自定義應用程式同意原則:
建立新的空白應用程式同意原則。
New-MgPolicyPermissionGrantPolicy ` -Id "my-custom-policy" ` -DisplayName "My first custom consent policy" ` -Description "This is a sample custom app consent policy."
新增 「include」 條件集。
# Include delegated permissions classified "low", for apps from verified publishers New-MgPolicyPermissionGrantPolicyInclude ` -PermissionGrantPolicyId "my-custom-policy" ` -PermissionType "delegated" ` -PermissionClassification "low" ` -ClientApplicationsFromVerifiedPublisherOnly
重複此步驟以新增更多「包含」條件集。
選擇性地新增 「排除」條件集。
# Retrieve the service principal for the Azure Management API $azureApi = Get-MgServicePrincipal -Filter "servicePrincipalNames/any(n:n eq 'https://management.azure.com/')" # Exclude delegated permissions for the Azure Management API New-MgPolicyPermissionGrantPolicyExclude ` -PermissionGrantPolicyId "my-custom-policy" ` -PermissionType "delegated" ` -ResourceApplication $azureApi.AppId
重複此步驟以新增更多「排除」條件集。
建立應用程式同意原則之後,您必須將它指派給 Microsoft Entra ID 中的自定義角色。 接著,您必須將使用者指派給該自定義角色,該角色會附加至您所建立的應用程式同意原則。 如需如何將應用程式同意原則指派給自定義角色的詳細資訊,請參閱 自定義角色的應用程式同意許可權。
使用 PowerShell 刪除自訂應用程式同意原則
下列 Cmdlet 示範如何刪除自定義應用程式同意原則。
Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-policy"
若要管理應用程式同意原則,請使用必要條件一節中列出的其中一個角色登入 Graph 總 管。
您必須同意 Policy.ReadWrite.PermissionGrant
許可權。
使用 Microsoft Graph 列出現有的應用程式同意原則
最好先熟悉組織中的現有應用程式同意原則:
列出所有應用程式同意原則:
GET /policies/permissionGrantPolicies?$select=id,displayName,description
檢視原則的「包含」條件集:
GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/includes
檢視 「排除」條件集:
GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/excludes
使用 Microsoft Graph 建立自訂應用程式同意原則
請遵循下列步驟來建立自定義應用程式同意原則:
建立新的空白應用程式同意原則。
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies Content-Type: application/json { "id": "my-custom-policy", "displayName": "My first custom consent policy", "description": "This is a sample custom app consent policy" }
新增 「include」 條件集。
針對已驗證發行者的應用程式,包含分類為「低」的委派許可權
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-policy }/includes Content-Type: application/json { "permissionType": "delegated", "PermissionClassification": "low", "clientApplicationsFromVerifiedPublisherOnly": true }
重複此步驟以新增更多「包含」條件集。
選擇性地新增 「排除」條件集。 排除 Azure 管理 API 的委派許可權 (appId 46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b)
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/my-custom-policy /excludes Content-Type: application/json { "permissionType": "delegated", "resourceApplication": "46e6adf4-a9cf-4b60-9390-0ba6fb00bf6b " }
重複此步驟以新增更多「排除」條件集。
建立應用程式同意原則之後,您必須將它指派給 Microsoft Entra ID 中的自定義角色。 接著,您必須將使用者指派給該自定義角色,該角色會附加至您所建立的應用程式同意原則。 如需如何將應用程式同意原則指派給自定義角色的詳細資訊,請參閱 自定義角色的應用程式同意許可權。
刪除自定義應用程式同意原則 Microsoft Graph
下列顯示如何刪除自定義應用程式同意原則。
DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
警告
無法還原已刪除的應用程式同意原則。 如果您不小心刪除自定義應用程式同意原則,則必須重新建立原則。
支援的條件
下表提供應用程式同意原則的支持條件清單。
Condition | 描述 |
---|---|
PermissionClassification | 要授與之許可權的許可權分類,或「全部」以符合任何許可權分類(包括未分類的許可權)。 預設值為 「all」。 |
PermissionType | 正在授與之許可權的許可權類型。 針對應用程式許可權使用 「應用程式」(例如應用程式角色)或「委派」來取得委派的許可權。 注意:「delegatedUserConsentable」 值表示 API 發行者未設定的委派許可權,以要求管理員同意。 此值可用於內建許可權授與原則中,但不能用於自定義許可權授與原則。 必要。 |
ResourceApplication | 要授與許可權的資源應用程式 AppId,或要與任何資源應用程式或 API 相符的「任何」許可權。 預設值為 「any」。。 |
權限 | 要比對之特定許可權的許可權標識符清單,或具有單一值 「all」 的清單,以符合任何許可權。 預設值為單一值 「all」。 - 委派的許可權標識碼可以在 API ServicePrincipal 物件的 OAuth2Permissions 屬性中找到。 - 您可以在 API ServicePrincipal 物件的 AppRoles 屬性中找到應用程式權限識別碼。 |
ClientApplicationIds | 用戶端應用程式要比對的 AppId 值清單,或具有單一值 「all」 的清單,以符合任何用戶端應用程式。 預設值為單一值 「all」。 |
ClientApplicationTenantIds | 註冊用戶端應用程式的 Microsoft Entra 租使用者識別碼清單,或具有單一值 「all」 的清單,以符合任何租用戶中註冊的用戶端應用程式。 預設值為單一值 「all」。 |
ClientApplicationPublisherIds | 用戶端應用程式已驗證發行者的 Microsoft 合作夥伴網路 (MPN) 識別碼清單,或具有單一值 「all」 的清單,以符合來自任何發行者的用戶端應用程式。 預設值為單一值 「all」。 |
ClientApplicationsFromVerifiedPublisherOnly | 將此參數設定為只與已驗證發行者在用戶端應用程式上相符。 停用此參數 (-ClientApplicationsFromVerifiedPublisherOnly:$false ) 以在任何用戶端應用程式上比對,即使它沒有已驗證的發行者也一樣。 預設值為 $false 。 |
scopeType | 預先核准套用的資源範圍類型。 可能的值:group 針對群組和小組、chat 聊天或tenant 全租使用者存取。 必要。 |
sensitivityLabels | 適用於範圍類型的敏感度標籤,且不會預先核准。 它可讓您保護機密組織數據。 瞭解 敏感度標籤。 注意: 聊天資源 尚不支援 sensitivityLabels。 |
下一步
若要取得協助或尋找問題解答: