Creación de un paquete de acceso en la administración de derechos para una aplicación con un solo rol mediante PowerShell
Artigo
En la administración de derechos de Microsoft Entra, un paquete de acceso abarca las directivas de cómo los usuarios pueden obtener asignaciones para uno o varios roles de recursos. Los recursos pueden incluir grupos, aplicaciones y sitios de SharePoint Online.
En este artículo se describe cómo crear un paquete de acceso para una sola aplicación con un solo rol mediante PowerShell de Microsoft Graph. Este escenario se aplica principalmente a entornos que usan la administración de derechos para automatizar el acceso continuo para una aplicación de middleware o negocio específica. Puede basarse en las instrucciones de este y otros artículos para abordar escenarios más complejos, como el acceso a través de varias aplicaciones o el acceso a aplicaciones y otros tipos de recursos. Una organización que tiene varios recursos o recursos con varios roles también puede modelar sus directivas de acceso con paquetes de acceso:
Para crear el paquete de acceso y sus directivas y asignaciones asociadas, deberá tener lista la siguiente información:
Caso de uso
Opción de configuración
Variable de PowerShell
All
Nombre de la aplicación en el inquilino de Microsoft Entra ID
$servicePrincipalName
All
Nombre del rol de la aplicación
$servicePrincipalRoleName
Aplicaciones que dependen de un grupo de seguridad
Identificador del grupo de seguridad de Microsoft Entra usado por la aplicación, si existe
$groupId
All
Nombre del catálogo que contiene el paquete de acceso
$catalogName
All
Nombre para proporcionar al paquete de acceso
$accessPackageName
All
Descripción para proporcionar al paquete de acceso
$accessPackageDescription
Separación de requisitos de deberes con un paquete de acceso no compatible
Id. del paquete de acceso no compatible
$incompatibleAccessPackageId (en caso de ser necesario)
Los usuarios que aún no tienen asignaciones y no se asignarán automáticamente
lista de usuarios
$inputpath (en caso de ser necesario)
Los usuarios con atributos específicos tienen automáticamente asignaciones
expresión de consulta para los usuarios en el ámbito
$autoAssignmentPolicyFilter (en caso de ser necesario)
Permitir que los usuarios que no tengan una asignación soliciten una asignación
el ámbito de los usuarios que pueden solicitar, los aprobadores y el período de revisión de acceso
depende de los requisitos
Automatización de la creación o eliminación de asignaciones en función de flujos de trabajo de unión o de salida en flujos de trabajo de ciclo de vida
los nombres de los flujos de trabajo que proporcionan y quitan acceso
depende de los requisitos
Autenticarse en Microsoft Entra ID
En esta sección se muestra cómo interactuar con Gobierno de Microsoft Entra ID mediante cmdlets de PowerShell de Microsoft Graph.
La primera vez que la organización use estos cmdlets para este escenario, deberá tener un rol de administrador global para permitir el uso de PowerShell de Microsoft Graph en el inquilino. Las interacciones posteriores pueden usar un rol con privilegios inferiores, como:
Si es la primera vez que ha usado este comando, es posible que tenga que dar su consentimiento para permitir que las herramientas de la línea de comandos de Microsoft Graph tengan estos permisos.
Creación de un catálogo en la administración de derechos de Microsoft Entra
De manera predeterminada, cuando un administrador interactúa por primera vez con la administración de derechos, se crea automáticamente un catálogo predeterminado. Sin embargo, los paquetes de acceso para las aplicaciones gobernadas deben estar en un catálogo designado.
Especifique el nombre del catálogo.
PowerShell
$catalogName = "Business applications"
Si ya tiene un catálogo para el escenario de gobernanza de las aplicaciones, continúe con el paso 4 de esta sección.
Si aún no tiene un catálogo para el escenario de gobernanza de las aplicaciones, cree un catálogo.
Seleccione el rol que se incluirá en el paquete de acceso.
PowerShell
$resourceRole = $nullforeach ($rin$resourceRoles) { if ($r.DisplayName -eq$servicePrincipalRoleName) { $resourceRole = $r; break; } }
if ($resourceRole -eq$null) { throw"role $servicePrincipalRoleName not located" }
Agregar el grupo como un recurso al catálogo
Si la aplicación se basa en un grupo de seguridad, agregue ese grupo al catálogo para que se pueda incluir como un recurso. Si la aplicación no se basa en un grupo de seguridad, continúe en la sección siguiente.
Especifique el identificador del grupo. Use el id. del grupo como valor de servicePrincipalName.
PowerShell
$groupId = "7c2b967b-68c2-418a-a1c6-a3c7efb895a7"
Compruebe si el grupo ya está presente en el catálogo como un recurso. Si ya está presente, continúe en el paso 4 de esta sección.
PowerShell
$groupResourceId = $nullforeach ($rin$catalog.Resources) { if ($r.OriginId -eq$groupId) { $groupResourceId = $r.id; break } }
if ($groupResourceId -ne$null) { write-output"resource for group already in catalog" } else {write-output"resource for group not yet in catalog"}
Agregue el grupo como un recurso al catálogo.
PowerShell
$groupResourceAddParams = @{
requestType = "adminAdd"
resource = @{
originId = $groupId
originSystem = "AadGroup"
}
catalog = @{ id = $catalogId }
}
$groupResourceAdd = New-MgEntitlementManagementResourceRequest -BodyParameter$groupResourceAddParamsif ($groupResourceAdd -eq$null) { throw"group resource could not be added" }
sleep 5
Recupere el identificador y el ámbito del recurso de grupo en ese catálogo.
PowerShell
$groupResource = $null$groupResourceId = $null$groupResourceScope = $null$catalogResources = Get-MgEntitlementManagementCatalogResource -AccessPackageCatalogId$CatalogId -ExpandProperty"scopes" -allforeach ($rin$catalogResources) { if ($r.OriginId -eq$groupId) { $groupResource = $r; $groupResourceId = $r.id; $groupResourceScope = $r.Scopes[0]; break } }
if ($groupResourceId -eq$null) { throw"resource was not added" }
Recupere el rol member del recurso de grupo en ese catálogo.
Si la aplicación se basa en un grupo, vincule la pertenencia del grupo al paquete de acceso. Si la aplicación no se basa en un grupo, continúe en la sección siguiente.
Crear directivas de asignación de paquetes de acceso para la asignación directa
En esta sección creará la primera directiva de asignación de paquetes de acceso en el paquete de acceso, una directiva de asignación de paquetes de acceso para la asignación directa, que se puede usar para realizar un seguimiento de los usuarios que ya tienen acceso a la aplicación. En la directiva de ejemplo creada en esta sección, solo los administradores o los administradores de asignación de paquetes de acceso pueden asignar acceso; los usuarios conservan el acceso indefinidamente y no hay aprobaciones ni revisiones de acceso.
Configurar las restricciones en la separación de obligaciones
La administración de derechos de Microsoft Entra puede aplicar la separación de las comprobaciones de obligaciones para evitar que un usuario que ya tenga una asignación existente a otro paquete de acceso designado, o la pertenencia a un grupo designado, solicite un paquete de acceso.
Si no tiene requisitos de separación de obligaciones para esta aplicación, continúe con la sección siguiente.
Si tiene requisitos de separación de tareas, configure los paquetes de acceso no compatibles o los grupos existentes para el paquete de acceso.
Especifique el otro paquete de acceso que no es compatible con este. Cambie el valor de incompatibleAccessPackageId por el id. de otro paquete de acceso en la administración de derechos de Microsoft Entra.
Agregar asignaciones de usuarios existentes que ya tengan acceso a la aplicación
Agregue asignaciones de usuarios existentes que ya tengan acceso a la aplicación, al paquete de acceso y a su directiva de asignación directa. Puede asignar directamente cada usuario a un paquete de acceso.
Recupere las asignaciones de roles de aplicación existentes.
Incorporación de asignaciones para los usuarios adicionales que deban tener acceso a la aplicación
Este script muestra el uso de los cmdlets de PowerShell de Microsoft Graph para agregar asignaciones para usuarios adicionales, de modo que tengan acceso a la aplicación. Si no tienes ningún usuario que necesite acceso y no lo recibiría automáticamente, continúa con la sección siguiente.
Este script supone que tienes un archivo CSV de entrada que contiene una columna, UserPrincipalName, para asignar esos usuarios al paquete de acceso a través de su directiva de asignación directa.
Especifica el nombre del archivo de entrada.
PowerShell
$inputpath = "users.csv"
Para evitar crear asignaciones duplicadas, recupera las asignaciones existentes en el paquete de acceso.
Agregar una directiva a los paquetes de acceso para la asignación automática
Si la directiva de tu organización para quién puede recibir acceso a una aplicación incluye una regla basada en los atributos del usuario para asignar y quitar el acceso automáticamente en función de esos atributos, puedes representarlo mediante una directiva de asignación automática. Un paquete de acceso puede tener como máximo una directiva de asignación automática. Si no tienes un requisito para una asignación automática, continúa con la sección siguiente.
Especifica la expresión de filtro de asignación automática para que los usuarios reciban una asignación. Cambia el valor de autoAssignmentPolicyFilter para que sea un filtro para los usuarios de Microsoft Entra ID que están en el ámbito. La sintaxis y los atributos permitidos se proporcionan en reglas de grupos de pertenencia dinámica en Microsoft Entra ID.
Crear directivas adicionales para permitir que los usuarios soliciten acceso
Si los usuarios que aún no tienen acceso pueden solicitar ser asignados a la aplicación, también puedes configurar una directiva de asignación de paquetes de acceso para permitir a los usuarios solicitar un paquete de acceso. Puedes agregar directivas adicionales a un paquete de acceso y, en cada directiva, especificar qué usuarios pueden solicitar y quién debe aprobar. Si deseas que el acceso se asigne a los usuarios automáticamente o que lo asigne un administrador, continúa con la sección siguiente.
Especifica el nombre, la descripción de la directiva y el id. de un usuario de Microsoft Entra que será el aprobador.
PowerShell
$policy3Name = "example policy"$policy3Description = "example of a policy for users to request assignment"$policy3ApproverSingleUserId = "1aaaaaa1-2bb2-3cc3-4dd4-5eeeeeeeeee5"
Configurar tareas de flujos de trabajo del ciclo de vida
Si usas flujos de trabajo del ciclo de vida de Microsoft Entra para eventos de unión, movimiento y salida de empleados, también puedes agregar tareas a esos flujos de trabajo para agregar o quitar asignaciones a este paquete de acceso. Si no usas flujos de trabajo de ciclo de vida, continúa con la sección siguiente.
En este ejemplo se muestra cómo realizar un cambio en los flujos de trabajo de eventos de unión y salida.
Agrega una tarea a la lista de tareas de ese flujo de trabajo.
Nombre para mostrar de la tarea
taskDefinitionId
argumentos
Solicitar asignación de paquete de acceso de usuario
c1ec1e76-f374-4375-aaa6-0bb6bd4c60be
name: assignmentPolicyId value: el id. de la directiva de asignación, como el valor de $directAssignmentPolicyId si no se requiere ninguna aprobación, para el paquete de acceso que deseas asignar al usuario.
name: accessPackageId value: el id. del paquete de acceso, $accessPackageId, para el paquete de acceso que deseas asignar al usuario.
Agrega una tarea a la lista de tareas de ese flujo de trabajo.
Nombre para mostrar de la tarea
taskDefinitionId
argumentos
Eliminar la asignación de paquete de acceso para el usuario
4a0b64f2-c7ec-46ba-b117-18f262946c50
name: accessPackageId value: un id. de paquete de acceso válido, accessPackageId, para el paquete de acceso del que deseas anular la asignación al usuario.
Una vez creados los paquetes de acceso, las directivas y las asignaciones iniciales, a los usuarios se les asigna acceso al rol de la aplicación.
Más adelante, puede supervisar los cambios en las asignaciones, o bien agregar o quitar asignaciones mediante programación.
Recuperar asignaciones existentes
Este script muestra el uso de un filtro para recuperar las asignaciones al paquete de acceso que están en estado Delivered. El script genera un archivo CSV assignments.csv con una lista de usuarios que tienen asignaciones, con una fila por asignación.
Muestre las características de Microsoft Entra ID para modernizar las soluciones de identidad, implementar soluciones híbridas e implementar la gobernanza de identidades.
Tutorial paso a paso sobre cómo crear su primer paquete de acceso mediante el centro de administración de Microsoft Entra en la administración de derechos.
Aprenda a delegar la gobernanza del acceso de los administradores de TI en los administradores de paquetes de acceso y los jefes de proyecto para que ellos mismos puedan encargarse del acceso.