Compartir a través de


Reglas de autorización y características de seguridad de Windows PowerShell Web Access

Actualizado: 24 de junio de 2013

Aplica a: Windows Server 2012 R2, Windows Server 2012

Windows PowerShell Web Access en Windows Server 2012 R2 y Windows Server 2012 tiene un modelo de seguridad restrictivo. A los usuarios se les debe conceder acceso explícitamente antes de poder iniciar sesión en la pasarela de acceso web de Windows PowerShell y utilizar la consola web de PowerShell de Windows.

Configuración de reglas de autorización y seguridad del sitio

Una vez instalado Windows PowerShell Web Access y configurado el gateway, los usuarios pueden abrir la página de inicio de sesión en un navegador, pero no pueden iniciar sesión hasta que el administrador de Windows PowerShell Web Access conceda acceso explícitamente a los usuarios. El control de acceso 'Windows PowerShell Web Access' se gestiona utilizando el conjunto de cmdlets de Windows PowerShell descritos en la siguiente tabla. No existe una interfaz gráfica comparable para añadir o gestionar reglas de autorización. Consulta los Cmdlets de Acceso Web de Windows PowerShell.

Los administradores pueden definir {0-n} reglas de autenticación para Windows PowerShell Web Access. La garantía predeterminada es restrictiva más que permisiva; Cero reglas de autenticación significa que ningún usuario tiene acceso a nada.

Add-PswaAuthorizationRule y Test-PswaAuthorizationRule en Windows Server 2012 R2 incluyen un parámetro de credencial que permite añadir y probar reglas de autorización de acceso web de Windows PowerShell desde un ordenador remoto o desde una sesión activa de acceso web de Windows PowerShell. Como ocurre con otros cmdlets de PowerShell de Windows que tienen un parámetro Credential, puedes especificar un objeto PSCredential como el valor del parámetro. Para crear un objeto PSCredential que contenga las credenciales que quieres pasar a un ordenador remoto, ejecuta el cmdlet Get-Credential .

Las reglas de autenticación de acceso web en PowerShell de Windows son reglas de permiso . Cada regla es una definición de una conexión permitida entre usuarios, ordenadores objetivo y configuraciones particulares de sesión PowerShell de Windows (también denominadas endpoints o espacios de ejecución) en ordenadores objetivo específicos. Para una explicación sobre los espacios de ejecución , véase Inicio del uso de los espacios de ejecución de PowerShell

Importante

Un usuario solo necesita que una regla sea verdadera para obtener acceso. Si a un usuario se le da acceso a un ordenador con acceso completo al idioma o solo a los cmdlets de gestión remota de Windows PowerShell, desde la consola web, el usuario puede iniciar sesión (o cambiar) a otros ordenadores que estén conectados al primer ordenador objetivo. La forma más segura de configurar Windows PowerShell Web Access es permitir que los usuarios accedan solo a configuraciones de sesión restringidas que les permitan realizar tareas específicas que normalmente necesitan realizar de forma remota.

Los cmdlets referenciados en los Windows PowerShell Web Access Cmdlets permiten crear un conjunto de reglas de acceso que se utilizan para autorizar a un usuario en la pasarela de acceso web de Windows PowerShell. Las reglas son diferentes de las listas de control de acceso (ACL) en el ordenador de destino y proporcionan una capa adicional de seguridad para el acceso web. Más detalles sobre seguridad se describen en la siguiente sección.

Si los usuarios no pueden superar ninguna de las capas de seguridad anteriores, reciben un mensaje genérico de 'acceso denegado' en las ventanas de su navegador. Aunque los detalles de seguridad se registran en el servidor gateway, a los usuarios finales no se les muestra información sobre cuántas capas de seguridad han superado, ni en qué capa se produjo el fallo de inicio de sesión o autenticación.

Para más información sobre cómo configurar reglas de autorización, consulte configuración de reglas de autorización en este tema.

Security

El modelo de seguridad de acceso web de Windows PowerShell tiene cuatro capas entre un usuario final de la consola web y un ordenador objetivo. Los administradores de acceso web de Windows PowerShell pueden añadir capas de seguridad mediante una configuración adicional en la consola del administrador IIS. Para más información sobre cómo proteger sitios web en la consola del administrador IIS, consulte Configurar la seguridad del servidor web (IIS7).

Para más información sobre las mejores prácticas del IIS y la prevención de ataques de denegación de servicio, consulte Mejores Prácticas para Prevenir Ataques DoS/Denegación de Servicio. Un administrador también puede comprar e instalar software adicional de autenticación para minoristas.

La siguiente tabla describe las cuatro capas de seguridad entre los usuarios finales y los ordenadores objetivo.

Level Nivel
1 Características de seguridad del servidor web del IIS
2 Autenticación basada en formularios de acceso web de Windows PowerShell
3 Reglas de Autorización de Acceso Web para Windows PowerShell
4 Reglas de autenticación y autorización de destino

La información detallada sobre cada capa puede encontrarse bajo los siguientes encabezados:

Características de seguridad del servidor web IIS

Los usuarios de Windows PowerShell Web Access deben proporcionar siempre un nombre de usuario y una contraseña para autenticar sus cuentas en la pasarela. Sin embargo, los administradores de Windows PowerShell Web Access también pueden activar o desactivar la autenticación opcional de certificados de cliente, ver instalar y usar Windows PowerShell Web Access para habilitar un certificado de prueba y, más adelante, cómo configurar un certificado genuino.

La función opcional de certificado cliente requiere que los usuarios finales tengan un certificado cliente válido, además de sus nombres de usuario y contraseñas, y forma parte de la configuración del Web Server (IIS). Cuando la capa de certificado cliente está activada, la página de inicio de sesión de Windows PowerShell Web Access solicita a los usuarios que proporcionen certificados válidos antes de evaluar sus credenciales de inicio de sesión. La autenticación de certificados del cliente comprueba automáticamente el certificado del cliente. Si no se encuentra un certificado válido, Windows PowerShell Web Access informa a los usuarios para que puedan proporcionar el certificado. Si se encuentra un certificado cliente válido, Windows PowerShell Web Access abre la página de inicio de sesión para que los usuarios proporcionen sus nombres de usuario y contraseñas.

Este es un ejemplo de los ajustes de seguridad adicionales que ofrece el servidor web IIS. Para más información sobre otras características de seguridad del IIS, consulte Configurar la seguridad del servidor web (IIS 7).

Autenticación basada en formularios de acceso web de Windows PowerShell

La página de inicio de sesión de Windows PowerShell Web Access requiere un conjunto de credenciales (nombre de usuario y contraseña) y ofrece a los usuarios la opción de proporcionar diferentes credenciales para el ordenador objetivo. Si el usuario no proporciona credenciales alternativas, el nombre de usuario principal y la contraseña que se usan para conectarse a la pasarela también se usan para conectarse al ordenador objetivo.

Las credenciales requeridas se autentican en la pasarela de acceso web de Windows PowerShell. Estas credenciales deben ser cuentas de usuario válidas en el servidor local de gateway de Windows PowerShell Web Access o en Active Directory.

Reglas de autorización de acceso web para Windows PowerShell

Después de que un usuario es autenticado en la pasarela, Windows PowerShell Web Access verifica las reglas de autorización para verificar si el usuario tiene acceso al ordenador objetivo solicitado. Tras la autorización exitosa, las credenciales del usuario se transmiten al ordenador objetivo.

Estas reglas se evalúan solo después de que un usuario haya sido autenticado por la pasarela, y antes de que un usuario pueda autenticarse en un ordenador objetivo.

Reglas de autenticación y autorización de destino

La última capa de seguridad para Windows PowerShell Web Access es la propia configuración de seguridad del ordenador objetivo. Los usuarios deben tener los derechos de acceso apropiados configurados en el ordenador de destino, y también en las reglas de autorización de acceso web de Windows PowerShell, para ejecutar una consola web de Windows PowerShell que afecte a un ordenador objetivo a través de Windows PowerShell Web Access.

Esta capa ofrece los mismos mecanismos de seguridad que evaluarían los intentos de conexión si los usuarios intentaran crear una sesión remota de PowerShell de Windows a un ordenador objetivo desde dentro de Windows ejecutando los cmdlets Enter-PSSession o New-PSSession .

Por defecto, Windows PowerShell Web Access utiliza el nombre de usuario principal y la contraseña para la autenticación tanto en la pasarela como en el ordenador de destino. La página de inicio de sesión basada en la web, en una sección titulada Configuración opcional de conexión, ofrece a los usuarios la opción de proporcionar diferentes credenciales para el ordenador objetivo, si es necesario. Si el usuario no proporciona credenciales alternativas, el nombre de usuario principal y la contraseña que se usan para conectarse a la pasarela también se usan para conectarse al ordenador objetivo.

Las reglas de autorización pueden usarse para permitir a los usuarios el acceso a una configuración particular de sesión. Puedes crear espacios de ejecución restringidos o configuraciones de sesión para Windows PowerShell Web Access, y permitir que usuarios específicos se conecten solo a configuraciones específicas de sesión cuando inicien sesión en Windows PowerShell Web Access. Puedes utilizar listas de control de acceso (ACLs) para determinar qué usuarios tienen acceso a puntos finales específicos, y restringir aún más el acceso al endpoint para un conjunto específico de usuarios utilizando las reglas de autorización descritas en esta sección. Para más información sobre espacios de ejecución restringidos, véase Creación de un espacio de ejecución restringido.

Configuración de reglas de autorización

Probablemente los administradores quieren la misma regla de autorización para los usuarios de Windows PowerShell Web Access que ya está definida en su entorno para la gestión remota de Windows PowerShell. El primer procedimiento de esta sección describe cómo añadir una regla de autorización segura que conceda acceso a un usuario, iniciar sesión para gestionar un ordenador y dentro de una sola configuración de sesión. El segundo procedimiento describe cómo eliminar una regla de autorización que ya no es necesaria.

Si planeas usar configuraciones de sesión personalizadas para permitir que usuarios específicos trabajen solo dentro de espacios de ejecución restringidos en Windows PowerShell Web Access, crea tus configuraciones de sesión personalizadas antes de añadir reglas de autorización que se refieran a ellas. No puedes usar los comandos de acceso web de Windows PowerShell para crear configuraciones de sesión personalizadas. Para más información sobre cómo crear configuraciones de sesión personalizadas, consulta about_Session_Configuration_Files.

Los cmdlets de acceso web de Windows PowerShell soportan un carácter comodín, un asterisco ( * ). No se admiten caracteres comodín dentro de cadenas; Utiliza un solo asterisco por propiedad (usuarios, ordenadores o configuraciones de sesión).

Nota:

Para más formas de utilizar reglas de autorización para conceder acceso a los usuarios y ayudar a proteger el entorno de Windows PowerShell Web Access, consulta otros ejemplos de escenarios de reglas de autorización en este tema.

Para añadir una regla restrictiva de autorización

  1. Realice una de las siguientes acciones para abrir una sesión de Windows PowerShell con derechos de usuario elevados.

    • En el escritorio de Windows, haga clic con el botón derecho en Windows PowerShell en la barra de tareas y, a continuación, haga clic en Ejecutar como administrador.

    • En la pantalla de inicio de Windows, haz clic derecho en PowerShell de Windows y luego haz clic en Ejecutar como administrador.

  2. Paso opcional Para restringir el acceso de los usuarios utilizando configuraciones de sesión:

    Verifica que las configuraciones de sesión que quieres usar ya existan en tus reglas.

    Si aún no se han creado, utiliza instrucciones para crear configuraciones de sesión en about_Session_Configuration_Files.

  3. Esta regla de autorización permite a un usuario específico acceder a un ordenador de la red al que normalmente tiene acceso, con acceso a una configuración de sesión específica que se ajusta a las necesidades típicas de scripting y cmdlet del usuario. Escriba lo siguiente y presione Entrar.

    Add-PswaAuthorizationRule -UserName <domain\user | computer\user> `
       -ComputerName <computer_name> -ConfigurationName <session_configuration_name>
    
    • En el siguiente ejemplo, un usuario llamado JSmith en el dominio Contoso obtiene acceso para gestionar el Contoso_214 del ordenador y usar una configuración de sesión llamada NewAdminsOnly.
    Add-PswaAuthorizationRule -UserName 'Contoso\JSmith' `
       -ComputerName Contoso_214 -ConfigurationName NewAdminsOnly
    
  4. Verifica que la regla ha sido creada ejecutando el cmdlet Get-PswaAuthorizationRule , o Test-PswaAuthorizationRule -UserName <domain\user | computer\user> -ComputerName** <computer_name>. Por ejemplo: Test-PswaAuthorizationRule -UserName Contoso\\JSmith -ComputerName Contoso_214.

Para eliminar una regla de autorización

  1. Si una sesión de PowerShell de Windows no está aún abierta, consulte el paso 1 de para añadir una regla de autorización restrictiva en esta sección.

  2. Escribe lo siguiente y luego pulsa Enter, donde el ID de la regla representa el número único de ID de la regla que quieres eliminar.

    Remove-PswaAuthorizationRule -ID <rule ID>
    

    Alternativamente, si no conoces el número de identificación, pero conoces el nombre amandío de la regla que quieres eliminar, puedes obtener el nombre de la regla y enviarlo al Remove-PswaAuthorizationRule cmdlet para eliminarla, como se muestra en el siguiente ejemplo:

    Get-PswaAuthorizationRule `
       -RuleName <rule-name> | Remove-PswaAuthorizationRule
    

Nota:

No se te pide confirmar si quieres eliminar la regla de autorización especificada; la regla se elimina al pulsar Enter. Asegúrate de querer eliminar la regla de autorización antes de ejecutar el Remove-PswaAuthorizationRule cmdlet.

Otros ejemplos de escenarios de reglas de autorización

Cada sesión de Windows PowerShell utiliza una configuración de sesión; si no se especifica uno para una sesión, Windows PowerShell utiliza la configuración predeterminada de sesión integrada de Windows, llamada Microsoft.PowerShell. La configuración predeterminada de la sesión incluye todos los cmdlets disponibles en un ordenador. Los administradores pueden restringir el acceso a todos los ordenadores definiendo una configuración de sesión con un espacio de ejecución restringido (un rango limitado de cmdlets y tareas que sus usuarios finales podrían realizar). Un usuario al que se le concede acceso a un ordenador con acceso completo al idioma o solo con los cmdlets de gestión remota de Windows PowerShell puede conectarse a otros ordenadores que estén conectados al primer ordenador. Definir un espacio de ejecución restringido puede impedir que los usuarios accedan a otros ordenadores desde su espacio de ejecución permitido en Windows PowerShell y mejora la seguridad de tu entorno de acceso web Windows PowerShell. La configuración de la sesión puede distribuirse (mediante la Directiva de Grupo) a todos los ordenadores que los administradores quieran hacer accesibles a través de Windows PowerShell Web Access. Para obtener más información sobre las configuraciones de sesión, consulte about_Session_Configurations. A continuación se presentan algunos ejemplos de este escenario.

  • Un administrador crea un punto final, llamado PswaEndpoint, con un espacio de ejecución restringido. Luego, el administrador crea una regla, *,*,PswaEndpoint, y distribuye el endpoint a otros ordenadores. La regla permite a todos los usuarios acceder a todos los ordenadores con el endpoint PswaEndpoint. Si esta es la única regla de autorización definida en el conjunto de reglas, los ordenadores sin ese punto final no serían accesibles.

  • El administrador creó un endpoint con un espacio de ejecución restringido llamado PswaEndpoint, y quiere restringir el acceso a usuarios específicos. El administrador crea un grupo de usuarios llamado Level1Support y define la siguiente regla: Level1Support,*,PswaEndpoint. La norma concede a cualquier usuario del grupo Level1Support acceso a todos los ordenadores con la configuración PswaEndpoint . De manera similar, el acceso puede restringirse a un conjunto específico de ordenadores.

  • Algunos administradores conceden a ciertos usuarios más acceso que a otros. Por ejemplo, un administrador crea dos grupos de usuarios, Admins y BasicSupport. El administrador también crea un endpoint con un espacio de ejecución restringido llamado PswaEndpoint, y define las siguientes dos reglas: Admins,*,* y BasicSupport,*,PswaEndpoint. La primera regla proporciona a todos los usuarios del grupo de Administradores acceso a todos los ordenadores, y la segunda regla proporciona a todos los usuarios del grupo BasicSupport acceso solo a aquellos ordenadores con PswaEndpoint.

  • Un administrador ha configurado un entorno de prueba privado y quiere permitir que todos los usuarios autorizados de la red accedan a todos los ordenadores de la red a los que normalmente tienen acceso, con acceso a todas las configuraciones de sesión a las que normalmente tienen acceso. Como se trata de un entorno de prueba privado, el administrador crea una regla de autorización que no es segura. - El administrador ejecuta el cmdlet Add-PswaAuthorizationRule * * *, que utiliza el carácter * comodín para representar a todos los usuarios, todos los ordenadores y todas las configuraciones. - Esta regla es equivalente a la siguiente: Add-PswaAuthorizationRule -UserName * -ComputerName * -ConfigurationName *.

    Nota:

    Esta regla no se recomienda en un entorno seguro y evita la capa de regla de autorización de seguridad proporcionada por Windows PowerShell Web Access.

  • Un administrador debe permitir que los usuarios se conecten a ordenadores objetivo en un entorno que incluya tanto grupos de trabajo como dominios, donde los ordenadores de grupo de trabajo se usan ocasionalmente para conectarse a ordenadores destino en dominios, y los ordenadores dentro de dominios se usan ocasionalmente para conectarse a ordenadores objetivo en grupos de trabajo. El administrador tiene un servidor gateway, PswaServer, en un grupo de trabajo; y el srv1.contoso.com informático objetivo está en un dominio. El usuario Chris es un usuario local autorizado tanto en el servidor de la puerta de trabajo del grupo de trabajo como en el ordenador objetivo. Su nombre de usuario en el servidor del grupo de trabajo es chrisLocal; Y su nombre de usuario en el ordenador objetivo es Contoso\chris. Para autorizar el acceso a srv1.contoso.com para Chris, el administrador añade la siguiente regla.

Add-PswaAuthorizationRule -userName PswaServer\chrisLocal `
   -computerName srv1.contoso.com -configurationName Microsoft.PowerShell

El ejemplo anterior de la regla autentica a Chris en el servidor gateway y luego autoriza su acceso a srv1. En la página de inicio de sesión, Chris debe proporcionar un segundo conjunto de credenciales en el área de Configuración de conexión opcional (contoso\chris). El servidor gateway utiliza el conjunto adicional de credenciales para autenticarlo en el ordenador objetivo, srv1.contoso.com.

En el escenario anterior, Windows PowerShell Web Access establece una conexión exitosa con el ordenador objetivo solo después de que las siguientes acciones hayan sido exitosas y permitidas por al menos una regla de autorización.

  1. Autenticación en el servidor de puerta de enlace de grupo de trabajo añadiendo un nombre de usuario en el formato server_name\user_name a la regla de autorización

  2. Autenticación en el ordenador destino usando credenciales alternativas proporcionadas en la página de inicio de sesión, en el área de Configuración de conexión opcional

    Nota:

    Si los ordenadores gateway y destino están en grupos de trabajo o dominios diferentes, debe establecerse una relación de confianza entre los dos ordenadores del grupo de trabajo, los dos dominios o entre el grupo de trabajo y el dominio. Esta relación no puede configurarse usando los cmdlets de la regla de autorización de acceso web de Windows PowerShell. Las reglas de autorización no definen una relación de confianza entre ordenadores; Solo pueden autorizar a los usuarios a conectarse a ordenadores objetivo específicos y configuraciones de sesión. Para más información sobre cómo configurar una relación de confianza entre diferentes dominios, consulte Creación de Fideicomisos de Dominio y Bosque. Para más información sobre cómo añadir ordenadores de grupo de trabajo a una lista de hosts de confianza, consulte Gestión remota con Server Manager.

Uso de un único conjunto de reglas de autorización para múltiples sitios

Las reglas de autorización se almacenan en un archivo XML. Por defecto, el nombre de ruta del archivo XML es $env:windir\Web\PowershellWebAccess\data\AuthorizationRules.xml.

El camino hacia el archivo XML de reglas de autorización se almacena en el archivopowwa.config , que se encuentra en $env:windir\Web\PowershellWebAccess\data. El administrador tiene la flexibilidad de cambiar la referencia al camino predeterminado enpowwa.config para adaptarse a sus preferencias o requisitos. Permitir que el administrador cambie la ubicación del archivo permite que múltiples gateways de acceso web PowerShell de Windows usen las mismas reglas de autorización, si se desea dicha configuración.

Administración de sesiones

Por defecto, Windows PowerShell Web Access limita a un usuario a tres sesiones a la vez. Puedes editar el archivo web.config de la aplicación web en IIS Manager para soportar un número diferente de sesiones por usuario. La ruta hacia el archivoweb.config es $env:windir\Web\PowerShellWebAccess\wwwroot\Web.config.

Por defecto, el servidor web IIS está configurado para reiniciar el pool de aplicaciones si se editan alguna configuración. Por ejemplo, el pool de aplicaciones se reinicia si se realizan cambios en el archivo web.config . >Debido a que Windows PowerShell Web Access utiliza estados de sesión en memoria, >los usuarios que inician sesión en las sesiones de Windows PowerShell Web Access pierden sus sesiones cuando se reinicia el conjunto de aplicaciones.

Establecer parámetros por defecto en la página de inicio de sesión

Si tu gateway de Windows PowerShell Web Access está funcionando en Windows Server 2012 R2, puedes configurar valores predeterminados para los ajustes que se muestran en la página de inicio de sesión de Windows PowerShell Web Access. Puedes configurar valores en el archivoweb.config que se describe en el párrafo anterior. Los valores predeterminados para la configuración de la página de inicio de sesión se encuentran en la sección appSettings del archivo web.config; el siguiente es un ejemplo de la sección appSettings . Los valores válidos para muchos de estos ajustes son los mismos que para los parámetros correspondientes del cmdlet New-PSSession en Windows PowerShell.

Por ejemplo, la defaultApplicationName clave, como se muestra en el siguiente bloque de código, es el valor de la variable de preferencia $PSSessionApplicationName en el ordenador objetivo.

  <appSettings>
      <add key="maxSessionsAllowedPerUser" value="3"/>
      <add key="defaultPortNumber" value="5985"/>
      <add key="defaultSSLPortNumber" value="5986"/>
      <add key="defaultApplicationName" value="WSMAN"/>
      <add key="defaultUseSslSelection" value="0"/>
      <add key="defaultAuthenticationType" value="0"/>
      <add key="defaultAllowRedirection" value="0"/>
      <add key="defaultConfigurationName" value="Microsoft.PowerShell"/>
  </appSettings>

Tiempos muertos y desconexiones no planificadas

Las sesiones de acceso web de Windows PowerShell se agotan. En Windows PowerShell Web Access que funciona en Windows Server 2012, se muestra un mensaje de tiempo de espera a los usuarios iniciados sesión tras 15 minutos de inactividad en la sesión. Si el usuario no responde en los cinco minutos posteriores a la muestra del mensaje de tiempo fuera, la sesión termina y el usuario se desconecta. Puedes cambiar los periodos de espera de las sesiones en la configuración de la web en IIS Manager.

En Windows PowerShell Web Access que funciona en Windows Server 2012 R2, las sesiones se agotan, por defecto, tras 20 minutos de inactividad. Si los usuarios se desconectan de las sesiones en la consola web debido a errores de red u otros apagados o fallos no planificados, y no porque hayan cerrado las sesiones por sí mismos, las sesiones de acceso web de Windows PowerShell continúan ejecutándose, conectadas a los ordenadores objetivo, hasta que expira el periodo de espera en el lado del cliente. La sesión se desconecta tras los 20 minutos por defecto o tras el tiempo de espera especificado por el administrador del gateway, lo que sea más corto.

Si el servidor de gateway ejecuta Windows Server 2012 R2, Windows PowerShell Web Access permite a los usuarios reconectarse a sesiones guardadas más tarde, pero cuando errores de red, apagados no planificados u otros fallos desconectan las sesiones, los usuarios no pueden ver ni reconectarse a las sesiones guardadas hasta que haya expirado el periodo de tiempo de espera especificado por el administrador de la pasarela.

Véase también

Instalar y usar Windows PowerShell Web Access

about_Session_Configurations

Cmdlets de acceso web PowerShell de Windows