> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/es/pam/administration/sessions/web.md).

# Sesiones web

Registre una aplicación web como activo para que la solución la abra en un navegador y escriba la credencial por el usuario, con la sesión grabada.

## Qué es esto y cuándo usarlo

Una sesión web da al usuario acceso a una aplicación web (la consola de un cortafuegos, la página de administración de un appliance, un portal SaaS) sin entregarle nunca la contraseña. La solución abre la página de inicio de sesión de la aplicación en un navegador controlado, rellena la credencial almacenada y graba lo que ocurre a continuación.

Úselo para cualquier sistema cuya única interfaz administrativa sea una página web. Lo que el usuario obtiene es un enlace en el que puede hacer clic; lo que no obtiene es la cuenta.

{% hint style="danger" %}
El acceso web necesita una **máquina Windows adicional**. Ninguna sesión web se ejecuta en el propio servidor del PAM, y eso es una frontera de seguridad deliberada, no una limitación que haya que sortear. Sin esa máquina, un activo Website puede registrarse, pero no se puede conectar a él.
{% endhint %}

## Antes de empezar

* Una máquina **Windows Server 2022 o 2025** para ejecutar el navegador, con **OpenSSH instalado y en marcha**.
* La **URL exacta de la pantalla de inicio de sesión de la aplicación**, no su página de inicio ni una landing page que redirige.
* La credencial que la aplicación realmente espera, lista para registrarse como cuenta gestionada.
* Si piensa usar el autorrelleno: los identificadores HTML de los campos de inicio de sesión, recogidos de antemano de la propia página.

## Pasos

1. Abra primero la página de inicio de sesión de la aplicación en su propio navegador, y déjela abierta. La necesitará para leer los identificadores de los campos.
2. En la consola, abra **Entorno › Activos** y haga clic en **Crear**. Elija la pestaña **Web** y luego **Website**.
3. Rellene el **Nombre**, siguiendo una convención de nomenclatura que otra persona pueda leer, y la **URL** de la pantalla de inicio de sesión.
4. En **Protocolo**, confirme que el protocolo es `http(s)` y revise el puerto que se muestra. Vea el aviso de más abajo sobre cómo se fija realmente el puerto.
5. Elija el **Node**, es decir, la carpeta del árbol de activos donde se archiva este activo. Consulte [Carpetas y etiquetas](/es/pam/administration/assets/folders-and-tags.md).
6. En los ajustes del selector, elija el modo de autorrelleno: **Disabled**, **Basic** o **Script**. Los tres se describen más abajo.
7. En **Cuenta**, haga clic en **Agregar** y registre la credencial que espera la propia aplicación, es decir, el usuario y la contraseña reales que se usan en esa pantalla de inicio de sesión. Marque **Cuenta privilegiada** si tiene derechos elevados, y deje **Activo** habilitado.
8. De forma opcional, añada **Etiquetas** para categorizar y un **Comentario**. Mantenga el comentario libre de secretos.
9. Deje **Activo** habilitado para que el activo esté disponible y luego haga clic en **Guardar**, o en **Guardar y continuar añadiendo** si le quedan más cuentas por adjuntar.
10. Abra las **Autorizaciones** y edite una política existente o cree una nueva, asociando a los usuarios o grupos con el nuevo sitio. Hasta que eso se haga, el activo existe y nadie lo alcanza.

{% hint style="warning" %}
**La URL y el puerto no son campos independientes.** Para cambiar el puerto, edítelo dentro de la **URL**; la sección **Protocolo** sigue el cambio. Pasar de `https://system.example.local:8088/dashboard` a `https://system.example.local:8443/dashboard` hace que la sección Protocolo muestre también `8443`. No edite ambos como si fueran parámetros separados.
{% endhint %}

{% hint style="warning" %}
**La URL debe apuntar directamente a la pantalla de autenticación.** El autorrelleno y la auditoría dependen de ello. Una URL que aterriza en una página de inicio, en una página de marketing o en cualquier cosa que redirija antes de que aparezca el formulario de inicio de sesión romperá la inyección de la credencial.
{% endhint %}

## Modos de autorrelleno

| Modo         | Úselo cuando                                                                                                                                  | Qué ocurre                                                                              |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| **Disabled** | Solo quiere que la sesión quede auditada                                                                                                      | El usuario escribe la credencial por sí mismo. La solución graba y monitoriza, nada más |
| **Basic**    | El inicio de sesión es simple, con usuario, contraseña y botón en una sola pantalla                                                           | La solución localiza los tres elementos por selector y los rellena                      |
| **Script**   | La autenticación ocurre por etapas, con pantallas o secciones separadas para usuario y contraseña, o el formulario está dentro de un `iframe` | Se ejecuta una lista ordenada de acciones, paso a paso                                  |

### Selectores en modo Basic

Abra la página de inicio de sesión, haga clic derecho en el campo y elija **Inspeccionar**. Lea el identificador en el HTML de cada uno de los tres elementos (campo de usuario, campo de contraseña y botón de inicio de sesión) e introdúzcalo en el campo de selector correspondiente.

Prefiera los identificadores en este orden:

1. `ID`
2. `NAME`
3. `XPath`

Los valores típicos se parecen a `id=username`, `name=password`, `id=login_button`. `XPath` va el último porque describe una posición en la estructura de la página, y las estructuras de página cambian.

### Modo Script

Al seleccionar **Script** aparece un campo para un script JSON. Cada entrada es una acción, ejecutada en el orden dado.

| Comando        | Qué hace                                             |
| -------------- | ---------------------------------------------------- |
| `select_frame` | Entra en un `iframe`                                 |
| `type`         | Escribe en un campo                                  |
| `click`        | Hace clic en un botón                                |
| `sleep`        | Espera, en segundos, a que cargue la siguiente etapa |

Dos variables llevan la credencial al script: `{USERNAME}` para el usuario y `{SECRET}` para la contraseña. Nunca escriba una contraseña literal en el script.

```json
[
  { "step": 1, "command": "select_frame", "target": "id=iframe_id",   "value": "" },
  { "step": 2, "command": "type",         "target": "name=username",  "value": "{USERNAME}" },
  { "step": 3, "command": "click",        "target": "id=next_button", "value": "" },
  { "step": 4, "command": "sleep",        "target": "5",              "value": "" },
  { "step": 5, "command": "type",         "target": "name=password",  "value": "{SECRET}" },
  { "step": 6, "command": "click",        "target": "id=submit_button","value": "" }
]
```

Ese script entra en el `iframe`, escribe el usuario, hace clic en **Siguiente**, espera cinco segundos a que cargue la segunda pantalla, escribe la contraseña y envía. El paso `sleep` es lo que hace funcionar un inicio de sesión por etapas: sin él, el `type` siguiente se ejecuta contra un campo que todavía no existe.

## Lo que debe ver

El activo guardado aparece en el inventario bajo el grupo **WEB**, con la insignia de plataforma **Website** y el estado `ACTIVE`. Sus detalles muestran el protocolo como `http(s)` en el puerto tomado de la URL.

Los ajustes de protocolo pueden estar **heredados de la plataforma**. Cuando así sea, el icono de engranaje junto al protocolo permite ver o ajustar el valor heredado.

## Cómo verificar que funcionó

El registro por sí solo no prueba nada. Verifique conectándose:

1. Inicie sesión como un usuario al que cubra la autorización, no como el administrador que creó el activo. Es la única manera de confirmar que la autorización es correcta.
2. Abra el sitio desde la lista de acceso a dispositivos. La sesión del navegador debe aterrizar en la aplicación **ya autenticada**. Si se detiene en la página de inicio de sesión con los campos rellenos pero sin enviar, el selector del botón está mal; si los campos están vacíos, los selectores de campo están mal o la URL no es la página de inicio de sesión.
3. Confirme que la sesión figura en el registro de auditoría con la cuenta que se usó. Una sesión web que funciona pero no queda grabada significa que la URL está saltándose la pantalla de autenticación.

## Errores comunes

| Síntoma                                                               | Causa                                                                                           | Solución                                                                                              |
| --------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| La conexión falla de inmediato                                        | El host Windows que ejecuta la sesión no tiene ruta de red hasta la aplicación de destino       | Coloque ese host en una red capaz de alcanzar la aplicación                                           |
| La sesión abre en la página de inicio de sesión, sin nada relleno     | El autorrelleno está en **Disabled**, o la URL no aterriza en el formulario de inicio de sesión | Ponga el modo en Basic o Script, y apunte la URL directamente a la pantalla de autenticación          |
| Los campos se rellenan pero el inicio de sesión nunca se envía        | El selector del botón de inicio de sesión está mal                                              | Vuelva a inspeccionar el botón y prefiera su `ID` a un `XPath`                                        |
| Se escribe el usuario, pero el campo de contraseña nunca se encuentra | Un inicio de sesión por etapas tratado en modo **Basic**                                        | Cambie a **Script** y añada los pasos `select_frame` y `sleep`                                        |
| El cambio de puerto no surte efecto                                   | El puerto se editó en la sección Protocolo pero no en la URL                                    | Edite el puerto dentro de la **URL** y luego confirme que la sección Protocolo muestra el mismo valor |
| No arranca ninguna sesión web                                         | No hay máquina Windows, o OpenSSH no está en marcha en ella                                     | Provisione el host Windows Server 2022/2025 y arranque OpenSSH                                        |

## Referencia de campos

| Campo                              | Significado                                                                                                                                                                     |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Nombre**                         | Identificador dentro de la consola. Use una convención legible                                                                                                                  |
| **URL**                            | La página de inicio de sesión de la aplicación. Determina también el puerto efectivo                                                                                            |
| **Protocolo**                      | `http(s)` más el puerto. Sigue a la URL; puede heredarse de la plataforma                                                                                                       |
| **Node**                           | La carpeta del árbol de activos donde se archiva el activo. La usan las autorizaciones, las automatizaciones y las políticas de sincronización para apuntar a grupos de activos |
| **Selector**                       | Modo de autorrelleno: Disabled, Basic o Script                                                                                                                                  |
| **Cuenta › Nombre**                | Cómo se identifica la credencial en la consola                                                                                                                                  |
| **Cuenta › Usuario**               | El usuario que espera la aplicación                                                                                                                                             |
| **Cuenta › Cuenta privilegiada**   | Marca la credencial como portadora de derechos elevados                                                                                                                         |
| **Cuenta › Tipo de autenticación** | Fíjelo en **Contraseña** para un sitio web                                                                                                                                      |
| **Etiqueta**                       | Categorización opcional del activo                                                                                                                                              |
| **Activo**                         | Debe seguir habilitado para que el activo esté disponible                                                                                                                       |
| **Comentario**                     | Informativo. No ponga aquí información sensible                                                                                                                                 |

## Páginas relacionadas

* [Inventario de activos](/es/pam/administration/assets/inventory.md)
* [Plataformas](/es/pam/administration/assets/platforms.md)
* [Cuentas gestionadas](/es/pam/administration/accounts/managed-accounts.md)
* [Autorizaciones](/es/pam/administration/access/authorizations.md)
* [Métodos de conexión](/es/pam/administration/sessions/connection-methods.md)
