Gerenciar políticas de consentimento do aplicativo de proprietários de grupo
As políticas de consentimento do aplicativo são uma forma de gerenciar as permissões que os aplicativos têm para acessar dados em sua organização. Elas são usadas para controlar com quais aplicativos os usuários podem consentir e para garantir que os aplicativos atendam a determinados critérios antes de poderem acessar dados. Essas políticas ajudam as organizações a manter o controle sobre seus dados e a garantir que eles sejam acessados apenas por aplicativos confiáveis.
Neste artigo, você aprenderá a gerenciar políticas internas e personalizadas de consentimento do aplicativo para controlar quando o consentimento do proprietário do grupo pode ser concedido.
Com o Microsoft Graph e o Microsoft Graph PowerShell, você pode visualizar e gerenciar políticas de consentimento do proprietário do grupo.
Uma política de consentimento do proprietário do grupo consiste em zero ou mais conjuntos de condições de “incluir” e zero ou mais conjuntos de condições de “excluir”. Para que um evento seja considerado em uma política de consentimento do proprietário do grupo, o conjunto da condição de “incluir” não deve corresponder a nenhum conjunto da condição de “excluir”.
Cada conjunto de condições consiste em várias condições. Para que um evento corresponder a um conjunto de condições, todas as condições no conjunto de condições devem ser atendidas.
As políticas de consentimento do proprietário do grupo em que a ID começa com "microsoft-" são políticas internas. Por exemplo, a política de consentimento do proprietário do grupo microsoft-pre-approval-apps-for-group
descreve as condições sob as quais os proprietários de grupo têm permissão para dar consentimento aos aplicativos da lista pré-aprovada pelo administrador para acessar dados para os grupos que eles possuem. As políticas internas podem ser usadas em funções de diretório personalizadas e para definir configurações de consentimento do usuário, mas não podem ser editadas ou excluídas.
Pré-requisitos
- Um usuário ou serviço com uma das seguintes funções:
- Administrador de Função com Privilégios
- Uma função personalizada com as permissões necessárias para gerenciar as políticas de consentimento do proprietário do grupo
- A função de aplicativo do Microsoft Graph (permissão de aplicativo) Policy.ReadWrite.PermissionGrant (ao conectar-se a um aplicativo ou um serviço)
- Para permitir o consentimento do proprietário do grupo sujeito a políticas de consentimento do aplicativo, a configuração de consentimento do proprietário do grupo deve ser desabilitada. Depois de desabilitada, sua política atual será lida da política de consentimento do aplicativo. Para saber como desabilitar o consentimento do proprietário do grupo, consulte Desabilitar a configuração de consentimento do proprietário do grupo
Para gerenciar políticas de consentimento do proprietário do grupo para aplicativos com o Microsoft Graph PowerShell, conecte-se ao Microsoft Graph PowerShell e entre com uma das funções listadas na seção de pré-requisitos. Você também precisa consentir com a permissão Policy.ReadWrite.PermissionGrant
.
# change the profile to beta by using the `Select-MgProfile` command
Select-MgProfile -Name "beta"
Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"
Recuperar o valor atual da política de consentimento do proprietário do grupo usando o PowerShell
Saiba como verificar se a configuração de consentimento do proprietário do grupo foi autorizada de outras formas.
Recuperar o valor atual para a configuração de consentimento do proprietário do grupo
Get-MgPolicyAuthorizationPolicy | select -ExpandProperty DefaultUserRolePermissions | ft PermissionGrantPoliciesAssigned
Se
ManagePermissionGrantPoliciesForOwnedResource
for retornado emPermissionGrantPoliciesAssigned
, a configuração de consentimento do proprietário do grupo poderá ter sido autorizada de outras formas.Verifique se a política está no escopo
group
.Get-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | Select -ExpandProperty AdditionalProperties
Se ResourceScopeType
== group
, sua configuração de consentimento do proprietário do grupo foi autorizada de outras formas. Além disso, se a política de consentimento do aplicativo para grupos tiver sido atribuída microsoft-pre-approval-apps-for-group
, isso significa que o recurso pré-aprovado está habilitado para seu locatário.
Listar políticas existentes de consentimento do proprietário do grupo usando o PowerShell
É uma boa ideia começar familiarizando-se com as políticas existentes de consentimento do proprietário do grupo em sua organização:
Listar todas as políticas de consentimento do proprietário do grupo:
Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
Exibir os conjuntos de condições "inclui" de uma política:
Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
Exibir os conjuntos de condições "exclui":
Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
Criar uma política personalizada de consentimento do proprietário do grupo usando o PowerShell
Siga estas etapas para criar uma política personalizada de consentimento de proprietário do grupo:
Criar uma nova política vazia de consentimento de proprietário do grupo.
New-MgPolicyPermissionGrantPolicy ` -Id "my-custom-app-consent-policy-for-group" ` -DisplayName "My first custom app consent policy for group" ` -Description "This is a sample custom app consent policy for group." ` -AdditionalProperties @{includeAllPreApprovedApplications = $false; resourceScopeType = "group"}
Adicione conjuntos de condições "inclui".
# Include delegated permissions classified "low", for apps from verified publishers New-MgPolicyPermissionGrantPolicyInclude ` -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group" ` -PermissionType "delegated" ` -PermissionClassification "low" ` -ClientApplicationsFromVerifiedPublisherOnly
Repita essa etapa para adicionar mais conjuntos de condições "include".
Opcionalmente, adicione os conjuntos de condição "exclui".
# 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-app-consent-policy-for-group" ` -PermissionType "delegated" ` -ResourceApplication $azureApi.AppId
Repita essa etapa para adicionar mais conjuntos de condições "exclude".
Depois que a política de consentimento do aplicativo para grupo tiver sido criada, você poderá permitir o consentimento de proprietários do grupo sujeito a essa política.
Excluir uma política personalizada de consentimento do proprietário do grupo usando o PowerShell
A seguir, é mostrado como você pode excluir uma política personalizada de consentimento de proprietário do grupo.
Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group"
Para gerenciar as políticas de consentimento de proprietário do grupo, entre no Explorador do Graph com uma das funções listadas na seção de pré-requisitos. Você também precisa consentir com a permissão Policy.ReadWrite.PermissionGrant
.
Recuperar o valor atual da política de consentimento do proprietário do grupo usando o Microsoft Graph
Saiba como verificar se a configuração de consentimento do proprietário do grupo foi autorizada de outras formas.
Recuperar o valor da política atual
GET /policies/authorizationPolicy
Se
ManagePermissionGrantPoliciesForOwnedResource
aparecer, a configuração de consentimento do proprietário do grupo poderá ter sido autorizada de outras formas.Verifique se a política está no escopo para
group
GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }
Se
resourceScopeType
==group
, sua configuração de consentimento do proprietário do grupo foi autorizada de outras formas. Além disso, se a política de consentimento do aplicativo para grupos tiver sido atribuídamicrosoft-pre-approval-apps-for-group
, isso significa que o recurso pré-aprovado está habilitado para seu locatário.
Listar políticas existentes de consentimento do proprietário do grupo usando o Microsoft Graph
É uma boa ideia começar familiarizando-se com as políticas existentes de consentimento do proprietário do grupo em sua organização:
Listar todas as políticas de consentimento do aplicativo:
GET /policies/permissionGrantPolicies
Exibir os conjuntos de condições "inclui" de uma política:
GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/includes
Exibir os conjuntos de condições "exclui":
GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/excludes
Criar uma política personalizada de consentimento do proprietário do grupo usando o Microsoft Graph
Siga estas etapas para criar uma política personalizada de consentimento de proprietário do grupo:
Criar uma nova política vazia de consentimento de proprietário do grupo.
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies { "id": "my-custom-app-consent-policy-for-group", "displayName": "My first custom app consent policy for group", "description": "This is a sample custom app consent policy for group", "includeAllPreApprovedApplications": false, "resourceScopeType": "group" }
Adicione conjuntos de condições "inclui".
Incluir permissões delegadas classificadas como “baixas” para aplicativos de editores verificados
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/includes { "permissionType": "delegated", "permissionClassification": "low", "clientApplicationsFromVerifiedPublisherOnly": true }
Repita essa etapa para adicionar mais conjuntos de condições "include".
Opcionalmente, adicione os conjuntos de condição "exclui". Excluir permissões delegadas da API de Gerenciamento do Azure (appId 00001111-aaaa-2222-bbbb-3333cccc4444)
POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-app-consent-policy-for-group }/excludes { "permissionType": "delegated", "resourceApplication": "00001111-aaaa-2222-bbbb-3333cccc4444 " }
Repita essa etapa para adicionar mais conjuntos de condições "exclude".
Depois que a política de consentimento do proprietário do grupo tiver sido criada, você poderá permitir o consentimento de proprietários do grupo sujeito a essa política.
Excluir uma política personalizada de consentimento do proprietário do grupo usando o Microsoft Graph
A seguir, é mostrado como você pode excluir uma política personalizada de consentimento de proprietário do grupo.
DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
Aviso
Não é possível restaurar as políticas de consentimento de proprietário do grupo excluídas. Se você excluir acidentalmente uma política personalizada de consentimento de proprietário do grupo, será necessário recriar a política.
Condições com suporte
A tabela a seguir fornece a lista de condições com suporte para políticas de consentimento de proprietário do grupo.
Condição | Descrição |
---|---|
PermissionClassification | A classificação de permissão para a permissão que está sendo concedida ou "all" para corresponder a qualquer classificação de permissão (incluindo permissões que não são classificadas). O padrão é "all". |
PermissionType | O tipo de permissão da permissão que está sendo concedida. Use "application" para permissões de aplicativo (por exemplo, funções de aplicativo) ou "delegated" para permissões delegadas. Observação: o valor "delegatedUserConsentable" indica permissões delegadas que não foram configuradas pelo editor de API para exigir o consentimento do administrador. Esse valor pode ser usado em políticas internas de concessão de permissão, mas não pode ser usado em políticas de concessão de permissão personalizadas. Obrigatório. |
ResourceApplication | A AppID do aplicativo de recurso (por exemplo, a API) para o qual uma permissão está sendo concedida ou "any" para corresponder a qualquer aplicativo de recurso ou API. O padrão é "any". |
Permissões | A lista de IDs de permissão para as permissões específicas a serem correspondidas ou uma lista com o valor único "all" para corresponder a qualquer permissão. O padrão é o valor único "all". As IDs de permissão delegadas podem ser encontradas na propriedade OAuth2Permissions do objeto ServicePrincipal da API. – As IDs de permissão do aplicativo podem ser encontradas na propriedade AppRoles do objeto ServicePrincipal da API. |
ClientApplicationIds | Uma lista de valores AppId para os aplicativos cliente corresponderem ou uma lista com o único valor "all" para corresponder a qualquer aplicativo cliente. O padrão é o valor único "all". |
ClientApplicationTenantIds | Uma lista de IDs de locatário do Microsoft Entra em que o aplicativo cliente está registrado ou uma lista com o valor único “all” para corresponder aos aplicativos cliente registrados em qualquer locatário. O padrão é o valor único "all". |
ClientApplicationPublisherIds | Uma lista de IDs Microsoft Partner Network (MPN) para editores verificados do aplicativo cliente ou uma lista com o único valor "all" para corresponder aos aplicativos cliente de qualquer editor. O padrão é o valor único "all". |
ClientApplicationsFromVerifiedPublisherOnly | Defina essa opção para corresponder apenas a aplicativos cliente com um editor verificado. Desabilite essa opção (-ClientApplicationsFromVerifiedPublisherOnly:$false ) para corresponder a qualquer aplicativo cliente, mesmo que ele não tenha um editor verificado. O padrão é $false . |
Aviso
Não é possível restaurar as políticas de consentimento de proprietário do grupo excluídas. Se você excluir acidentalmente uma política personalizada de consentimento de proprietário do grupo, será necessário recriar a política.
Para obter ajuda ou encontrar respostas às suas perguntas: