Administrar directivas de consentimiento de aplicaciones para los propietarios del grupo
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 las aplicaciones de confianza acceden a ellos.
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 del propietario del grupo.
Con Microsoft Graph y PowerShell de Microsoft Graph, puede ver y administrar directivas de consentimiento del propietario del grupo.
Una directiva de consentimiento del propietario del grupo se compone de cero 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 del propietario del grupo, el conjunto de condiciones de tipo "include" 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 del propietario del grupo en las que el id. comienza por "Microsoft" son directivas integradas. Por ejemplo, la directiva de consentimiento del propietario del grupo de microsoft-pre-approval-apps-for-group
describe las condiciones en las que los propietarios del grupo pueden conceder consentimiento a las aplicaciones de la lista aprobada previamente por el administrador para acceder a los datos de los grupos que poseen. 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
- Un usuario o servicio con uno de los siguientes roles:
- Administrador de roles con privilegios
- Un rol personalizado con los permisos necesarios para administrar las directivas de consentimiento del propietario del grupo
- El rol de aplicación de Microsoft Graph (permiso de aplicación) Policy.ReadWrite.PermissionGrant (cuando se conecta como una aplicación o un servicio)
- Para permitir el consentimiento del propietario del grupo a las directivas de consentimiento de la aplicación, la configuración del consentimiento del propietario del grupo debe estar deshabilitada. Una vez deshabilitada, la directiva actual se lee de la directiva de consentimiento de la aplicación. Para obtener información sobre cómo deshabilitar el consentimiento del propietario del grupo, consulte Deshabilitar la configuración de consentimiento del propietario del grupo
Para administrar las directivas de consentimiento del propietario del grupo para aplicaciones con PowerShell de Microsoft Graph, conéctese a PowerShell de Microsoft Graph e inicie sesión con uno de los roles enumerados en la sección de requisitos previos. También tiene que dar su consentimiento al permiso de Policy.ReadWrite.PermissionGrant
.
# change the profile to beta by using the `Select-MgProfile` command
Select-MgProfile -Name "beta"
Connect-MgGraph -Scopes "Policy.ReadWrite.PermissionGrant"
Recuperación del valor actual de la directiva de consentimiento del propietario del grupo mediante PowerShell
Obtenga información sobre cómo comprobar si la configuración de consentimiento del propietario del grupo se ha autorizado de otras maneras.
Recuperar el valor actual de la configuración de consentimiento del propietario del grupo
Get-MgPolicyAuthorizationPolicy | select -ExpandProperty DefaultUserRolePermissions | ft PermissionGrantPoliciesAssigned
Si
ManagePermissionGrantPoliciesForOwnedResource
se devuelve enPermissionGrantPoliciesAssigned
, es posible que la configuración de consentimiento del propietario del grupo se haya autorizado de otras maneras.Compruebe si la directiva tiene el ámbito de
group
.Get-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | Select -ExpandProperty AdditionalProperties
Si ResourceScopeType
== group
, la configuración de consentimiento del propietario del grupo se ha autorizado de otras maneras. Además, si se ha asignado la directiva de consentimiento de la aplicación para grupos microsoft-pre-approval-apps-for-group
, significa que la característica de aprobación previa está habilitada para el inquilino.
Enumeración de las directivas de consentimiento del propietario del grupo existentes mediante PowerShell
Para empezar, familiarícese con las directivas de consentimiento del propietario del grupo existentes en su organización:
Enumerar todas las directivas de consentimiento del propietario del grupo:
Get-MgPolicyPermissionGrantPolicy | ft Id, DisplayName, Description
Consulte los conjuntos de condiciones de tipo "include" de una directiva:
Get-MgPolicyPermissionGrantPolicyInclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
Consulte los conjuntos de condiciones de tipo "exclude":
Get-MgPolicyPermissionGrantPolicyExclude -PermissionGrantPolicyId {"microsoft-all-application-permissions-for-group"} | fl
Creación de una directiva de consentimiento del propietario del grupo personalizado mediante PowerShell
Siga estos pasos para crear una directiva de consentimiento del propietario del grupo personalizada:
Cree una nueva directiva de consentimiento del propietario del grupo vacío.
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"}
Agregue los conjuntos de condiciones de tipo "include".
# 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 este paso para agregar conjuntos de condiciones de tipo "include".
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-app-consent-policy-for-group" ` -PermissionType "delegated" ` -ResourceApplication $azureApi.AppId
Repita este paso para agregar conjuntos de condiciones de tipo "exclude".
Una vez creada la directiva de consentimiento de aplicaciones para el grupo, puede permitir el consentimiento de los propietarios del grupo que esté sujeto a esta directiva.
Eliminación de una directiva de consentimiento del propietario del grupo personalizado mediante PowerShell
A continuación, se muestra cómo se puede eliminar una directiva de consentimiento del propietario del grupo personalizada.
Remove-MgPolicyPermissionGrantPolicy -PermissionGrantPolicyId "my-custom-app-consent-policy-for-group"
Para administrar directivas de consentimiento del propietario del grupo, inicie sesión en el Probador de Graph con uno de los roles enumerados en la sección de requisitos previos. También tiene que dar su consentimiento al permiso de Policy.ReadWrite.PermissionGrant
.
Recuperar el valor actual de la directiva de consentimiento del propietario del grupo mediante Microsoft Graph
Obtenga información sobre cómo comprobar si la configuración de consentimiento del propietario del grupo se ha autorizado de otras maneras.
Recuperación del valor de la directiva actual
GET /policies/authorizationPolicy
Si
ManagePermissionGrantPoliciesForOwnedResource
aparece, es posible que la configuración de consentimiento del propietario del grupo se haya autorizado de otras maneras.Compruebe si la directiva tiene como ámbito
group
GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }
Si
resourceScopeType
==group
, la configuración de consentimiento del propietario del grupo se ha autorizado de otras maneras. Además, si se ha asignado la directiva de consentimiento de la aplicación para gruposmicrosoft-pre-approval-apps-for-group
, significa que la característica de aprobación previa está habilitada para el inquilino.
Enumerar las directivas de consentimiento del propietario del grupo existentes mediante Microsoft Graph
Para empezar, familiarícese con las directivas de consentimiento del propietario del grupo existentes en su organización:
Enumere todas las directivas de consentimiento de aplicaciones:
GET /policies/permissionGrantPolicies
Consulte los conjuntos de condiciones de tipo "include" de una directiva:
GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/includes
Consulte los conjuntos de condiciones de tipo "exclude":
GET /policies/permissionGrantPolicies/{ microsoft-all-application-permissions-for-group }/excludes
Creación de una directiva de consentimiento del propietario del grupo personalizado mediante Microsoft Graph
Siga estos pasos para crear una directiva de consentimiento del propietario del grupo personalizada:
Cree una nueva directiva de consentimiento del propietario del grupo vacío.
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" }
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-app-consent-policy-for-group }/includes { "permissionType": "delegated", "permissionClassification": "low", "clientApplicationsFromVerifiedPublisherOnly": true }
Repita este paso para agregar conjuntos de condiciones de tipo "include".
De forma opcional, puede agregar conjuntos de condiciones de tipo "exclude". Excluir permisos delegados para la API de administración de 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 este paso para agregar conjuntos de condiciones de tipo "exclude".
Una vez creada la directiva de consentimiento del propietario del grupo, puede permitir el consentimiento de los propietarios del grupo que esté sujeto a esta directiva.
Eliminación de una directiva de consentimiento del propietario del grupo personalizado mediante Microsoft Graph
A continuación, se muestra cómo se puede eliminar una directiva de consentimiento del propietario del grupo personalizada.
DELETE https://graph.microsoft.com/v1.0/policies/permissionGrantPolicies/ my-custom-policy
Advertencia
Las directivas de consentimiento del propietario del grupo eliminadas no se pueden restaurar. Si elimina accidentalmente una directiva de consentimiento del propietario del grupo 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 del propietario del grupo.
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 "todos". |
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 ha configurado 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 "cualquiera". |
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 "todos". : 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 "todos". |
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 "todos". |
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 "todos". |
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 . |
Advertencia
Las directivas de consentimiento del propietario del grupo eliminadas no se pueden restaurar. Si elimina accidentalmente una directiva de consentimiento del propietario del grupo personalizada, tendrá que volver a crearla.
Para obtener ayuda o encontrar respuestas a sus preguntas: