Delegación del acceso de commandlet de Powershell de AD FS a usuarios que no son administradores
De forma predeterminada, solo los administradores de AD FS pueden realizar la administración de AD FS a través de PowerShell. Para muchas organizaciones grandes, es posible que este no sea un modelo operativo viable al tratar con otros roles, como el personal del departamento de soporte técnico.
Con Just Enough Administration (JEA), los clientes ahora pueden delegar permisos para commandlets específicos a diferentes grupos de personal.
Un buen ejemplo de este caso de uso es permitir que el personal del departamento de soporte técnico consulte el estado de bloqueo de una cuenta de AD FS y restablezca el estado de bloqueo de la cuenta en AD FS una vez que se haya examinado un usuario. En este caso, los commandlets que tendrían que delegarse son los siguientes:
Get-ADFSAccountActivity
Set-ADFSAccountActivity
Reset-ADFSAccountLockout
Este ejemplo se usa en el resto del documento. Pero se puede personalizar para permitir que la delegación establezca también las propiedades de los usuarios de confianza y las transmita a los propietarios de aplicaciones dentro de la organización.
Cree los grupos necesarios para conceder permisos a los usuarios
- Cree una cuenta de servicio administrada de grupo. La cuenta de gMSA se usa para permitir que el usuario de JEA acceda a los recursos de red como otras máquinas o servicios web. Proporciona una identidad de dominio que se puede usar para autenticarse en recursos en cualquier máquina del dominio. A la cuenta de gMSA se le conceden los derechos administrativos necesarios más adelante en la configuración. En este ejemplo, la cuenta se llama gMSAContoso.
- Cree un grupo de Active Directory en el que se puedan agregar los usuarios a los que se les deben conceder derechos para los comandos delegados. En este ejemplo, al personal del departamento de soporte técnico se le conceden permisos para leer, actualizar y restablecer el estado de bloqueo de AD FS. Nos referimos a este grupo en el ejemplo como JEAContoso.
Instalación de la cuenta de gMSA en el servidor de AD FS
Cree una cuenta de servicio que tenga derechos administrativos para los servidores de AD FS. Puede hacer esto en el controlador de dominio o de forma remota siempre que instale el paquete RSAT de AD. La cuenta de servicio debe crearse en el mismo bosque que el servidor de AD FS.
Modifique los valores del ejemplo con la configuración de su granja de servidores.
# This command should only be run if this is the first time gMSA accounts are enabled in the forest
Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))
# Run this on every node that you want to have JEA configured on
$adfsServer = Get-ADComputer server01.contoso.com
# Run targeted at domain controller
$serviceaccount = New-ADServiceAccount gMSAcontoso -DNSHostName <FQDN of the domain containing the KDS key> -PrincipalsAllowedToRetrieveManagedPassword $adfsServer –passthru
# Run this on every node
Add-ADComputerServiceAccount -Identity server01.contoso.com -ServiceAccount $ServiceAccount
Instale la cuenta de gMSA en el servidor de AD FS. Es necesario hacer esto en todos los nodos de AD FS de la granja.
Install-ADServiceAccount gMSAcontoso
Concesión de derechos de administrador de cuenta a la cuenta de gMSA
Si la granja usa la administración delegada, conceda derechos de administrador de cuenta a la cuenta de gMSA agregándola al grupo existente que tiene acceso de administrador delegado.
Si la granja de servidores no usa la administración delegada, conceda a la cuenta de gMSA derechos de administrador convirtiéndola en el grupo de administración local en todos los servidores de AD FS.
Creación del archivo de rol de JEA
En el servidor de AD FS, cree el rol de JEA en un archivo del Bloc de notas. Las instrucciones para crear el rol se proporcionan en el artículo Funcionalidades del rol de JEA.
Los commandlets delegados en este ejemplo son Reset-AdfsAccountLockout, Get-ADFSAccountActivity, and Set-ADFSAccountActivity
.
Ejemplo de un rol de JEA que delega el acceso de los commandlets "Reset-ADFSAccountLockout", "Get-ADFSAccountActivity" y "Set-ADFSAccountActivity":
@{
GUID = 'b35d3985-9063-4de5-81f8-241be1f56b52'
ModulesToImport = 'adfs'
VisibleCmdlets = 'Reset-AdfsAccountLockout', 'Get-ADFSAccountActivity', 'Set-ADFSAccountActivity'
}
Creación del archivo de configuración de sesión de JEA
Siga las instrucciones para crear el archivo de configuración de sesión de JEA. El archivo de configuración determina quién puede usar el punto de conexión de JEA y a qué funcionalidades puede acceder.
El nombre sin formato (nombre de archivo sin la extensión) del archivo de funcionalidad de rol hace referencia a las funcionalidades de rol. Si hay varias funcionalidades de rol disponibles en el sistema con el mismo nombre sin formato, PowerShell usa su orden de búsqueda implícito para seleccionar el archivo de funcionalidad de rol efectivo. No proporciona acceso a todos los archivos de funcionalidad de rol con el mismo nombre.
Para especificar un archivo de funcionalidad de rol con una ruta de acceso, use el argumento RoleCapabilityFiles
. Para una subcarpeta, JEA busca módulos de PowerShell válidos que contengan una subcarpeta RoleCapabilities
, donde se debe cambiar el argumento RoleCapabilityFiles
por RoleCapabilities
.
Archivo de configuración de sesión de ejemplo:
@{
SchemaVersion = '2.0.0.0'
GUID = '54c8d41b-6425-46ac-a2eb-8c0184d9c6e6'
SessionType = 'RestrictedRemoteServer'
GroupManagedServiceAccount = 'CONTOSO\gMSAcontoso'
RoleDefinitions = @{ JEAcontoso = @{ RoleCapabilityFiles = 'C:\Program Files\WindowsPowershell\Modules\AccountActivityJEA\RoleCapabilities\JEAAccountActivityResetRole.psrc' } }
}
Guarde el archivo de configuración de sesión.
Se recomienda probar el archivo de configuración de sesión si se ha editado el archivo pssc de forma manual mediante un editor de texto para asegurarse de que la sintaxis sea correcta. Si un archivo de configuración de sesión no supera esta prueba, no se registra correctamente en el sistema.
Instale la configuración de sesión de JEA en el servidor de AD FS.
Instale la configuración de sesión de JEA en el servidor de AD FS.
Register-PSSessionConfiguration -Path .\JEASessionConfig.pssc -name "AccountActivityAdministration" -force
Instrucciones operativas
Una vez configurado, puede usar el registro y la auditoría de JEA para determinar si los usuarios correctos tienen acceso al punto de conexión de JEA.
Para usar los comandos delegados, ejecute lo siguiente:
Enter-pssession -ComputerName server01.contoso.com -ConfigurationName "AccountActivityAdministration" -Credential <User Using JEA>
Get-AdfsAccountActivity <User>