Administración de directivas de consentimiento de aplicaciones

Las directivas de consentimiento de aplicaciones son una manera de administrar los permisos que las aplicaciones tienen para acceder a los datos de la organización. Se usan para controlar a qué aplicaciones pueden dar su consentimiento los usuarios y asegurarse de que las aplicaciones cumplan determinados criterios antes de que puedan acceder a los datos. Estas directivas ayudan a las organizaciones a mantener el control sobre sus datos y asegurarse de que solo conceden acceso a aplicaciones de confianza.

En este artículo, puede obtener información sobre cómo administrar las directivas de consentimiento de aplicaciones integradas y personalizadas para controlar el momento en que se puede conceder ese consentimiento.

Con Microsoft Graph y PowerShell de Microsoft Graph, puede ver y administrar directivas de consentimiento de aplicaciones.

Una directiva de consentimiento de aplicaciones se compone de uno o más conjuntos de condiciones de tipo "include" y cero o más conjuntos de condiciones de tipo "exclude". Para que un evento se tenga en cuenta en una directiva de consentimiento de aplicaciones, debe coincidir, al menos, con un conjunto de condiciones de tipo "include" y no debe coincidir con ningún conjunto de condiciones de tipo "exclude".

Cada conjunto de condiciones está formado por varias condiciones. Para que un evento coincida con un conjunto de condiciones, se deben cumplir todas las condiciones detalladas en el conjunto de condiciones.

Las directivas de consentimiento de aplicaciones en las que el id. comienza por "Microsoft" son directivas integradas. Algunas de estas directivas integradas se usan en los roles de directorio integrados. Por ejemplo, la directiva de consentimiento de aplicaciones microsoft-application-admin describe las condiciones en las que los roles de Administrador de aplicaciones y de Administrador de aplicaciones en la nube pueden conceder consentimiento de administrador para todo el inquilino. Las directivas integradas se pueden usar en roles de directorio personalizados y para configurar el consentimiento del usuario, pero no se pueden editar ni eliminar.

Requisitos previos

Para administrar directivas de consentimiento de aplicaciones para aquellas con PowerShell de Microsoft Graph, conéctese a PowerShell de Microsoft Graph.

Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"

Para empezar, familiarícese con las directivas de consentimiento de aplicaciones existentes en su organización:

  1. Enumere todas las directivas de consentimiento de aplicaciones:

    Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
    
  2. Consulte los conjuntos de condiciones de tipo "include" de una directiva:

    Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    
  3. Consulte los conjuntos de condiciones de tipo "exclude":

    Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId "microsoft-application-admin" | fl
    

Siga estos pasos para crear una directiva de consentimiento de aplicaciones personalizada:

  1. Cree una directiva de consentimiento de aplicaciones que esté vacía.

    New-MgPolicyPermissionGrantPolicy `
        -Id "my-custom-policy" `
        -DisplayName "My first custom consent policy" `
        -Description "This is a sample custom app consent policy."
    
  2. Agregue los conjuntos de condiciones de tipo "include".

    # Include delegated permissions classified "low", for apps from verified publishers
    New-MgPolicyPermissionGrantPolicyInclude `
        -PermissionGrantPolicyId "my-custom-policy" `
        -PermissionType "delegated" `
        -PermissionClassification "low" `
        -ClientApplicationsFromVerifiedPublisherOnly
    

    Repita este paso para agregar conjuntos de condiciones de tipo "include".

  3. De forma opcional, puede agregar conjuntos de condiciones de tipo "exclude".

    # 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
    

    Repita este paso para agregar conjuntos de condiciones de tipo "exclude".

Después de crear la directiva de consentimiento de la aplicación, debe asignarla a un rol personalizado en Microsoft Entra ID. A continuación, debe asignar usuarios a ese rol personalizado, que está asociado a la directiva de consentimiento de la aplicación que creó. Para obtener más información sobre cómo asignar la directiva de consentimiento de la aplicación a un rol personalizado, consulte Permisos de consentimiento de la aplicación para roles personalizados.

El siguiente cmdlet muestra cómo se puede eliminar una directiva de consentimiento de aplicaciones personalizada.

   Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-policy"

Para administrar directivas de consentimiento de aplicaciones, inicie sesión en el Probador de Graph con uno de los roles enumerados en la sección de requisitos previos.

Tiene que dar su consentimiento al permiso Policy.ReadWrite.PermissionGrant.

Para empezar, familiarícese con las directivas de consentimiento de aplicaciones existentes en su organización:

  1. Enumere todas las directivas de consentimiento de aplicaciones:

    GET /policies/permissionGrantPolicies?$select=id,displayName,description
    
  2. Consulte los conjuntos de condiciones de tipo "include" de una directiva:

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/includes
    
  3. Consulte los conjuntos de condiciones de tipo "exclude":

    GET /policies/permissionGrantPolicies/{ microsoft-application-admin }/excludes
    

Siga estos pasos para crear una directiva de consentimiento de aplicaciones personalizada:

  1. Cree una directiva de consentimiento de aplicaciones que esté vacía.

    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"
    }
    
  2. Agregue los conjuntos de condiciones de tipo "include".

    Incluir permisos delegados clasificados como "bajos" para aplicaciones de publicadores comprobados

    POST https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/{ my-custom-policy }/includes
    Content-Type: application/json
    
    {
      "permissionType": "delegated",
      "PermissionClassification": "low",
      "clientApplicationsFromVerifiedPublisherOnly": true
    }
    

    Repita este paso para agregar conjuntos de condiciones de tipo "include".

  3. De forma opcional, puede agregar conjuntos de condiciones de tipo "exclude". Excluir permisos delegados para Azure Management 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 "
    }
    

    Repita este paso para agregar conjuntos de condiciones de tipo "exclude".

Después de crear la directiva de consentimiento de la aplicación, debe asignarla a un rol personalizado en Microsoft Entra ID. A continuación, debe asignar usuarios a ese rol personalizado, que está asociado a la directiva de consentimiento de la aplicación que creó. Para obtener más información sobre cómo asignar la directiva de consentimiento de la aplicación a un rol personalizado, consulte Permisos de consentimiento de la aplicación para roles personalizados.

  1. A continuación se muestra cómo se puede eliminar una directiva de consentimiento de aplicaciones personalizada.

    DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
    

Advertencia

Las directivas de consentimiento de aplicaciones eliminadas no se pueden restaurar. Si elimina accidentalmente una directiva de consentimiento de aplicaciones personalizada, tendrá que volver a crearla.

Condiciones que se admiten

En la tabla siguiente se proporciona la lista de condiciones admitidas para las directivas de consentimiento de aplicaciones.

Condición Descripción
PermissionClassification La clasificación de permisos referente al permiso que se va a conceder, o bien el valor "all" para hacer que coincida con cualquier clasificación de permisos (incluidos los permisos que no están clasificados). El valor predeterminado es "all."
PermissionType Es el tipo del permiso que se va a conceder. Use "application" para permisos de aplicaciones (por ejemplo, roles de aplicación) o "delegated" para los permisos delegados.

Nota: El valor "delegatedUserConsentable" indica los permisos delegados que el publicador de API no configura para requerir el consentimiento del administrador. Este valor se puede usar en directivas de concesión de permisos integradas, pero no se puede usar en directivas de concesión de permisos personalizadas. Necesario.
ResourceApplication El valor AppId de la aplicación de recursos (por ejemplo, la API) para la que se concede un permiso, o bien "any" para que coincida con cualquier aplicación de recursos o API. El valor predeterminado es "any."
Permisos Lista de id. de permisos que deben coincidir con los permisos específicos, o una lista con el valor único "Todos" para que así los valores coincidan con cualquier permiso. El valor predeterminado es el valor único "all."
: Los id. de permisos delegados se pueden encontrar en la propiedad OAuth2Permissions del objeto ServicePrincipal de la API.
: Los id. de permisos de aplicación se pueden encontrar en la propiedad AppRoles del objeto ServicePrincipal de la API.
ClientApplicationIds Es una lista de valores de AppId que deben coincidir con las aplicaciones cliente o una lista con el valor único "todos" para que así los valores coincidan con cualquier aplicación cliente. El valor predeterminado es el valor único "all."
ClientApplicationTenantIds Una lista de los id. de inquilinos de Microsoft Entra ID en los que está registrada la aplicación cliente, o una lista con el valor único “todos” para que coincida con las aplicaciones cliente registradas en cualquier inquilino. El valor predeterminado es el valor único "all."
ClientApplicationPublisherIds Es una lista de id. de Microsoft Partner Network (MPN) para publicadores comprobados de la aplicación cliente, o una lista con el valor único "todos" para que coincida con las aplicaciones cliente de cualquier publicador. El valor predeterminado es el valor único "all."
ClientApplicationsFromVerifiedPublisherOnly Establezca este conmutador para que solo coincida con las aplicaciones cliente con publicadores comprobados. Deshabilite este conmutador (-ClientApplicationsFromVerifiedPublisherOnly:$false) para que coincida con cualquier aplicación de cliente, incluso si no tiene un publicador comprobado. El valor predeterminado es $false.
scopeType El tipo de ámbito de recurso al que se aplica la aprobación previa. Valores posibles: group para grupos y equipos, chat para chats o tenant para el acceso a todo el inquilino. Necesario.
sensitivityLabels Las etiquetas de confidencialidad que son aplicables al tipo de ámbito y no se han aprobado previamente. Permite proteger datos de la organización confidenciales. Información sobre las etiquetas de confidencialidad. Nota: El recurso de chat aún no admite sensitivityLabels.

Pasos siguientes

Para obtener ayuda o encontrar respuestas a sus preguntas: