Cómo crear y asignar roles personalizados de Intune con PowerShell
Los roles personalizados de Intune son una excelente manera de proporcionar acceso delegado y restringido a los recursos de Intune. Por ejemplo, puede evitar que los usuarios del servicio de asistencia técnica borren los dispositivos administrados o proporcionen acceso a informes a los miembros de ventas.
En este tutorial, le mostraré cómo crear roles de Intune personalizados utilizando Azure Portal y Microsoft Graph PowerShell.
Para poder ejecutar los scripts de este tutorial, debe asegurarse de tener instalado el módulo Microsoft Graph PowerShell. Consulta mi guía aquí para saber cómo hacerlo.
¿Qué son los roles de Intune?
Los roles en Microsoft Intune son grupos de permisos específicos que se pueden asignar a usuarios o grupos de usuarios. El rol define qué acciones puede realizar un usuario en Microsoft Intune y en qué dispositivos.
Hay muchos tipos de roles disponibles, así como la opción de crear roles personalizados que contengan permisos específicos que cubriré en este tutorial.
Intune viene con las siguientes funciones integradas:
- Gestor de aplicaciones
- Gerente de seguridad de terminales
- Gerente de Mensajes Organizacionales
- Administrador de escuela
- Operador de sólo lectura
- Administrador de funciones de Intune
- Operador de mesa de ayuda
- Gerente de políticas y perfiles
Para obtener un desglose detallado de cada función, puede ver las propiedades de la función desde el portal de Microsoft Intune:
1. Inicie sesión en https://intune.microsoft.com/
2. Seleccione Administración de inquilinos en el menú de la izquierda.
3. Seleccione Funciones.
4. Haga clic en el nombre del rol del permiso de rol que desea ver.
5. Seleccione Propiedades y en el lado derecho verá una lista de todos los permisos agrupados con este rol.
Cómo crear roles de Intune personalizados mediante el portal de Intune
Veamos cómo crear roles personalizados mediante el portal de Intune. Es conveniente crear roles de esta manera si está creando el rol como algo único y no necesita duplicar la configuración para otros inquilinos.
Comience siguiendo los pasos 1 > 3 en la sección anterior. Esto lo llevará a la página de roles de Intune en el portal de administración.
- Ahora está en la página de rol de Intune, seleccione Crear.
2. Ingrese un nombre para su función personalizada de Intune.
4. Desplácese hacia abajo en la lista y habilite las acciones de rol de Intune que desee.
5. Haga clic en Siguiente y cree una secuencia de comandos en la página de pestañas de alcance, luego haga clic en Crear.
6. Ahora verá su rol personalizado de Intune en la página de roles. Seleccione el rol para abrir las propiedades.
7. En el menú de la izquierda, seleccione Tareas.
8. Haga clic en Asignar.
9. Ingrese un nombre para la asignación de roles.
10. Haga clic en Agregar grupos e incluya los grupos de usuarios a los que desee asignar este rol.
11. En la pestaña de grupos de alcance, seleccioné Todos los dispositivos. En el caso de esta configuración, define los objetos sobre los que desea que los usuarios asignados tengan control. En este ejemplo, les doy a los administradores de aprobación acceso de solo lectura a todos los dispositivos.
12. Ahora haga clic en Siguiente, Siguiente nuevamente y Crear. Su rol personalizado ya ha sido creado y asignado.
También puedes seguir los pasos en mi vídeo de YouTube.
Cómo crear roles personalizados de Intune usando PowerShell
Para crear su rol personalizado usando Microsoft Graph PowerShell, use el siguiente script. Estos son los pasos para implementar el script:
- Complete los campos junto a $DisplayName y $RoleDescription para que coincidan con la configuración deseada.
- Hay cuatro áreas en la secuencia de comandos que incluyen el valor Microsoft.Intune_Organization_Read; debe reemplazarlo para incluir los permisos deseados.
- Utilice la referencia de permisos de Microsoft Docs cuando elija los permisos que desee aquí.
###
$DisplayName = "My Custom Role2" #Define your role name
$RoleDescription = "My custom role description2" #Define the role description
###
#Import module
Import-Module Microsoft.Graph.DeviceManagement.Administration
#Select beta profile
Select-MgProfile -Name Beta
#Connect to Microsoft Graph
Connect-MgGraph -scopes DeviceManagementRBAC.ReadWrite.All
#Store the URI path
$uri = "https://graph.microsoft.com/beta/deviceManagement/roleDefinitions/"
#Store Json Payload
$json = @'
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#deviceManagement/roleDefinitions/$entity",
"@odata.type": "#microsoft.graph.deviceAndAppManagementRoleDefinition",
"displayName": "<rname>",
"description": "<rdesc>",
"isBuiltInRoleDefinition": true,
"isBuiltIn": true,
"roleScopeTagIds": [],
"permissions": [
{
"actions": [
"Microsoft.Intune_Organization_Read",
],
"resourceActions": [
{
"allowedResourceActions": [
"Microsoft.Intune_ManagedDevices_Read",
],
"notAllowedResourceActions": []
}
]
}
],
"rolePermissions": [
{
"actions": [
"Microsoft.Intune_ManagedDevices_Read",
],
"resourceActions": [
{
"allowedResourceActions": [
"Microsoft.Intune_ManagedDevices_Read",
],
"notAllowedResourceActions": []
}
]
}
]
}
'@
#Update unique payload information
$json = $json -replace '<rname>',$DisplayName
$json = $json -replace '<rdesc>',$RoleDescription
#Create custom Intune role
Invoke-MgGraphRequest -Uri $uri -body $json -Method POST -ContentType "application/json"Puede aplicar varios permisos en su rol personalizado de Intune; por ejemplo, si desea incluir los permisos Administrar lectura de dispositivo y Actualización de dispositivo administrado, actualizaría la carga útil Json de la siguiente manera:
$json = @'
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#deviceManagement/roleDefinitions/$entity",
"@odata.type": "#microsoft.graph.deviceAndAppManagementRoleDefinition",
"displayName": "<rname>",
"description": "<rdesc>",
"isBuiltInRoleDefinition": true,
"isBuiltIn": true,
"roleScopeTagIds": [],
"permissions": [
{
"actions": [
"Microsoft.Intune_Organization_Read",
"Microsoft.Intune_Organization_Update",
],
"resourceActions": [
{
"allowedResourceActions": [
"Microsoft.Intune_ManagedDevices_Read",
"Microsoft.Intune_Organization_Update",
],
"notAllowedResourceActions": []
}
]
}
],
"rolePermissions": [
{
"actions": [
"Microsoft.Intune_ManagedDevices_Read",
"Microsoft.Intune_Organization_Update",
],
"resourceActions": [
{
"allowedResourceActions": [
"Microsoft.Intune_ManagedDevices_Read",
"Microsoft.Intune_Organization_Update",
],
"notAllowedResourceActions": []
}
]
}
]
}
'@Asignar miembros y ámbitos a roles de Intune con PowerShell
Ahora que ha creado el rol, puede observar que no hay miembros administradores asignados ni ámbitos de asignación definidos. Utilice el siguiente script para definir los miembros de la función y el alcance de la asignación.
Actualice el script de la siguiente manera:
- Actualice el campo $DisplayName al nombre deseado de su asignación de rol.
- Actualice el campo $AdminGroupName con el nombre exacto del grupo que contiene sus miembros objetivo.
- Actualice el campo $RoleName con el nombre exacto del rol para el que es la asignación.
###
$DisplayName = "My Display Name" #Define a name for your role assignment
$AdminGroupName = "Approval Admins" #Define the group that contains the user you wish you assign this role to
$RoleName = "Read-Only Device Role" #Define the name of the active role
###
#Import Module
Import-Module Microsoft.Graph.DeviceManagement.Administration
#Select beta profile
Select-MgProfile -Name Beta
#Connect to Microsoft Graph
Connect-MgGraph -scopes DeviceManagementRBAC.ReadWrite.All
#Store role and group information
$Role = Get-MgDeviceManagementRoleDefinition | Where-Object {$_.DisplayName -eq $Rolename}
$admingroup = Get-MgGroup | Where-Object {$_.DisplayName -eq $AdminGroupName} | select id
#Store URI path
$uri = "https://graph.microsoft.com/beta/deviceManagement/roleAssignments"
#Store Json payload
$json = @'
{
"id":"",
"description":"",
"displayName":"<dname>",
"members":["<admgroup>"],
"resourceScopes":[],
"[email ":"https://graph.microsoft.com/beta/deviceManagement/roleDefinitions('<roleid>')",
"scopeType":"allDevices"
}
'@
#Update unique payload information.
$json = $json -replace '<roleid>',$Role.id
$json = $json -replace '<dname>',$DisplayName
$json = $json -replace '<admgroup>',$admingroup.id
#Create role assignment
Invoke-MgGraphRequest -Uri $uri -body $json -Method POST -ContentType "application/json"












