> For the complete documentation index, see [llms.txt](https://docs.realmjoin.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.realmjoin.com/es/agente-realmjoin/realmjoin-client/local-admin-password-solution-laps.md).

# Solución de contraseñas de administrador local (LAPS)

RealmJoin LAPS genera contraseñas sólidas de cuentas locales almacenadas en su propio Azure Key Vault, auditadas mediante Application Insights o Log Analytics.

Nuestra solución de contraseña para administrador local (LAPS) se creó para resolver el problema de usar cuentas idénticas en su entorno para soporte de usuarios o escalada de privilegios. LAPS crea contraseñas seguras para cuentas locales que se almacenan de forma segura en *su propio* [Azure Key Vault](/es/agente-realmjoin/realmjoin-client/local-admin-password-solution-laps/keyvault.md). Para auditoría, tiene la opción de proporcionar una [Application Insights](/es/agente-realmjoin/realmjoin-client/local-admin-password-solution-laps/application-insights.md) instancia o un [Log Analytics Workspace](/es/supervision-y-registros/log-analytics.md).

## Requisitos previos

Antes de poder empezar con LAPS, debe cumplir los siguientes requisitos previos:

* Configuración [Application Insights](#application-insights) O [Log Analytics Workspace](/es/supervision-y-registros/log-analytics.md)
* Habilite explícitamente los tipos de cuenta de LAPS mediante la configuración de grupo (o usuario)

Veremos ambos a continuación.

## Registro

Application Insights y Log Analytics desempeñan un papel importante al usar LAPS. Las solicitudes de contraseña activadas por LAPS son registradas por RealmJoin y enviadas a la instancia de Application Insights configurada o al Log Analytics Workspace. De este modo, tiene una visión completa de quién está recuperando contraseñas.

Solo es necesario elegir una forma de registro: o Application Insights o Log Analytics. El registro es opcional al configurar LAPS y puede omitirse si su organización no necesita esta información.

Puede encontrar más detalles en nuestros [Application Insights](/es/agente-realmjoin/realmjoin-client/local-admin-password-solution-laps/application-insights.md) y [Log Analytics](/es/supervision-y-registros/log-analytics.md) artículos.

## Configuración de grupo

LAPS admite las siguientes configuraciones globales.

| Clave de configuración             | Valor predeterminado | Descripción                                                                                                                                                     |
| ---------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| LocalAdminManagement.Inactive      | `false`              | Establecer en `true` para forzar la desactivación de esta característica. Esto limpiará y **eliminará** todas las cuentas locales.                              |
| LocalAdminManagement.CheckInterval | `"01:00"`            | Intervalo para comprobaciones internas de configuración ([HH:mm](https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings)) |

Se admiten los siguientes tipos de cuenta.

| Clave de configuración                 | Valor predeterminado     |
| -------------------------------------- | ------------------------ |
| LocalAdminManagement.EmergencyAccount  | `undefined` (*inactivo*) |
| LocalAdminManagement.SupportAccount    | `undefined` (*inactivo*) |
| LocalAdminManagement.PrivilegedAccount | `undefined` (*inactivo*) |

Cada tipo de cuenta puede configurarse de forma independiente mediante las siguientes configuraciones comunes. Algunos tipos tienen configuraciones especiales descritas en su respectiva sección.

{% hint style="info" %}
En la siguiente tabla `$` representa cualquiera de las tres `Cuenta` objeto JSON anterior.
{% endhint %}

| Clave de configuración | Valor predeterminado                                                 | Descripción                                                                                        |
| ---------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| $.NamePattern          | `"ADM-{HEX:8}"`                                                      | Especial. Consulte [Cuenta privilegiada](#privileged-account). Debe tener 20 caracteres o menos.   |
| $.DisplayName          | `"Administrador local de RealmJoin"`                                 | Nombre para mostrar                                                                                |
| $.PasswordCharSet      | `"!#%+23456789:=?@ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnopqrstuvwxyz"` | Conjunto de caracteres para el generador de contraseñas (excluye caracteres de apariencia similar) |
| $.PasswordLength       | 20                                                                   | Longitud de la contraseña                                                                          |
| $.PasswordPreset       | 0                                                                    | Plantillas de contraseña predefinidas, consulte [Generación de contraseñas](#password-generation). |
| $.MaxStaleness         | Especial. Consulte [Recreación de cuentas](#account-recreation).     | Plantillas de contraseña predefinidas, consulte [Generación de contraseñas](#password-generation). |
| $.OnDemand             | Especial. Consulte [Cuenta de soporte](#support-account).            | Crear la cuenta solo cuando se solicite.                                                           |
| $.Expiration           | Especial. Consulte [Cuenta de soporte](#support-account).            | Fecha de expiración fija de la cuenta (formato ISO-8601)                                           |
| $.PasswordRenewals     | Especial. Consulte [Cuenta privilegiada](#privileged-account).       | Fecha de expiración fija de la cuenta (formato ISO-8601)                                           |

## Contraseña **generación**

De forma predeterminada, se generarán contraseñas verdaderamente aleatorias basadas en las configuraciones `PasswordCharSet` y `PasswordLength`. El conjunto de caracteres predeterminado se eligió para excluir caracteres de apariencia similar como `I1l` y `O0`. El generador criptográfico de números aleatorios de Windows se usa para proporcionar aleatoriedad de alta calidad para la generación.

{% hint style="info" %}
RealmJoin manejará automáticamente los problemas con los requisitos de complejidad de Windows al crear cuentas. Como con todas las contraseñas verdaderamente aleatorias, a veces las contraseñas generadas pueden no cumplir los requisitos de complejidad. Si esto sucede, RealmJoin realizará hasta tres rondas de generación de contraseñas hasta que se genere una contraseña viable. Existe una pequeña probabilidad estadística restante de que se excedan todos los reintentos. En este caso verá un mensaje similar en el archivo de registro del servicio a `Se superaron todos los reintentos`. El proceso completo se reiniciará en la siguiente ejecución de las comprobaciones internas de configuración (consulte la configuración `CheckInterval`).
{% endhint %}

Trabajar con contraseñas verdaderamente aleatorias puede ser complicado, por lo que también se admiten plantillas predefinidas especiales.

* Preajuste 1 ⇒ `[1 mayúscula][3 minúsculas][4 dígitos]`
  * `Tuci9325`
  * `Lnso5050`
  * `Khwn2174`
* Preajuste 2 ⇒ `Key-[6 dígitos]-[6 dígitos]-[6 dígitos]-[6 dígitos]-[6 dígitos]-[6 dígitos]-[6 dígitos]-[6 dígitos]`
  * ¡Se admite la configuración PasswordLength! La configuración determina el número de bloques de dígitos.
  * `Key-012993-230956-976475` (PasswordLength = 3)
  * `Key-497254-679158-631224-278319` (PasswordLength = 4)
  * `Key-506179-861369-706482-613244-730371-097689-404350-340073` (predeterminado)
* Preajuste 3 ⇒ `[palabra]-[palabra]-[palabra]-[palabra]-[palabra]-[palabra]` generado a partir de [Eff Long List](https://www.eff.org/files/2016/07/18/eff_large_wordlist.txt)
  * ¡Se admite la configuración PasswordLength! La configuración determina el número de palabras.
  * `Exciting-Unearth-Cried-87` (PasswordLength = 3)
  * `Neurology-Astute-Debate-Marshy-15` (PasswordLength = 4)
  * `Marshy-Darkened-Undertake-Reset-Shrouded-Wise-26` (predeterminado)

## Recreación de cuentas

Después de que se usa una cuenta, RealmJoin puede configurarse para eliminar y recrear la cuenta usando el `MaxStaleness` configuración. De este modo, las cuentas estarán siempre impecables. Si no se configura, las cuentas nunca se recrearán y permanecerán indefinidamente.

{% hint style="danger" %}
RealmJoin eliminará la cuenta y su perfil. **Todos los archivos se eliminarán de forma permanente.**

Si una cuenta sigue en uso —sigue iniciada sesión, la sesión abierta, una aplicación iniciada con ella como ADM y todavía en ejecución— la cuenta seguirá caducando, pero no se podrá eliminar. **No se puede crear una nueva cuenta mientras la cuenta anterior no se haya eliminado.**
{% endhint %}

## Evitación de conflictos

Aunque RealmJoin intenta hacer todo lo posible para evitar conflictos de nombres al administrar las cuentas en un dispositivo, siempre existe la posibilidad de que las cuentas ya existan en un dispositivo y provoquen conflictos. Por eso la `NamePattern` configuración admite estos tokens con un significado especial para RealmJoin. Los tokens se transformarán mediante la función especificada y su parámetro de longitud después de los dos puntos.

* `{HEX:8}` ⇒ `F4D027EF`, `B3C4F74E`, ... (caracteres hexadecimales aleatorios)
* `{DEC:6}` ⇒ `506453`, `066946`, ... (caracteres decimales aleatorios)
* `{COUNT:2}` ⇒ `01`, `02`, ... (contador, permanecerá `01` si no existen conflictos)

## Cuenta de emergencia

Este tipo de cuenta es su acceso de respaldo al dispositivo en caso de que falle catastróficamente. Se creará de forma proactiva. De este modo siempre tendrá acceso para recuperación. Recomendamos configurarla para [recreación de cuentas](#account-recreation).

*Ejemplo*

Clave `LocalAdminManagement.EmergencyAccount` (para ver la configuración común consulte [configuraciones de grupo](#group-settings))

```json
{
  "NamePattern": "ADM-Emergency-{HEX:4}",
  "DisplayName": "Acceso de emergencia",
  "MaxStaleness": "04:00",
  "PasswordPreset": 2
}
```

## Cuenta de soporte

Este tipo de cuenta puede configurarse para creación bajo demanda. Está diseñado para usarse en una ventana de tiempo limitada—12 horas por defecto—en modo bajo demanda. La ventana de expiración puede ajustarse por Tenant en la *Portal de RealmJoin* (configuración de Tenant de LAPS).

{% hint style="danger" %}
Las cuentas de soporte y sus perfiles se eliminarán después de que haya transcurrido la ventana de expiración configurada (12 horas por defecto) desde que se solicitó la cuenta, independientemente del uso (después de que el usuario de soporte haya cerrado sesión). **Todos los archivos se eliminarán de forma permanente.**
{% endhint %}

{% hint style="danger" %}
Al usar la recreación de cuentas en modo bajo demanda (`MaxStaleness`) *no debe usarse*. Puede interferir con su flujo de trabajo de soporte.
{% endhint %}

Requisitos para el flujo de trabajo bajo demanda:

* El modo se habilita estableciendo `"OnDemand": true`.
* Un usuario ha iniciado sesión
* El agente de RealmJoin está en ejecución
* El dispositivo está conectado a Internet
* El dispositivo puede acceder al backend de RealmJoin

{% hint style="info" %}
Puede tardar hasta 30 minutos en que el agente de RealmJoin detecte la solicitud. El usuario que ha iniciado sesión puede acelerar este proceso eligiendo "Sincronizar este dispositivo" desde el menú de la bandeja de RealmJoin.
{% endhint %}

Cuando no está en modo bajo demanda, se creará de forma proactiva.

*Ejemplo*

Clave `LocalAdminManagement.SupportAccount` (para ver la configuración común consulte [configuraciones de grupo](#group-settings))

```json
{
  "NamePattern": "ADM-Support-User-{HEX:2}",
  "Usuario de soporte",
  "OnDemand": true,
  "PasswordPreset": 1
}
```

## Cuenta privilegiada

Este tipo de cuenta está diseñado para ser utilizado por usuarios avanzados que necesitan privilegios de administrador regulares pero controlados en sus propios dispositivos. Se puede especificar una fecha fija de expiración de la cuenta (`Expiration`).

{% hint style="danger" %}
Para este tipo, la recreación de cuentas (`MaxStaleness`) *no debe usarse*. La idea es tener una cuenta persistente para sus usuarios.
{% endhint %}

Se admiten rotaciones forzadas de contraseña:

1. `2021-11-20T12:34:56+01:00`: Cualquier marca de tiempo explícita en ISO-8601. Se pueden especificar varias marcas de tiempo.
2. `DayAfterCreate`: Después de crear la cuenta, la contraseña de la cuenta se cambiará. Esto es útil cuando se espera que los usuarios configuren Windows Hello para opciones adicionales de inicio de sesión.
3. `Anual`, `Mensual` o `Semanal`: El intervalo más corto tiene prioridad (`Semanal` > `Mensual` > `Anual`). Si no se especifican más condiciones, los valores predeterminados son "primer día del mes" para `Mensual` o "lunes" para `Semanal`. Además, `Anual` usa por defecto la fecha de último establecimiento de la contraseña + 365 días. Se pueden especificar los siete días de la semana. Así que si `miércoles` y `Semanal` están especificados, la contraseña se cambiará cada miércoles. Si `miércoles` y `Mensual` están especificados, la contraseña se cambiará el primer miércoles de cada mes. Combinar `Anual` con días de la semana establecerá la fecha límite en el último día de la semana especificado posible justo antes de que se cumplan los 365 días.

*Ejemplo*

Clave `LocalAdminManagement.PrivilegedAccount` (para ver la configuración común consulte [configuraciones de grupo](#group-settings))

```json
{
  "NamePattern": "Privileged-User-{COUNT:1}",
  "DisplayName": "Privileged User",
  "PasswordRenewals": ["DayAfterCreate", "Monthly", "Thursday"],
  "PasswordPreset": 3,
  "PasswordLength": 3
}
```

## Acceso a contraseñas

Use el Portal de RealmJoin para acceder a las contraseñas.<br>

<figure><img src="https://3832142177-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MkrcM7cKOpXKri1kVrh%2Fuploads%2FnrPze5jW4F0Fdr83WluM%2Fimage.png?alt=media&amp;token=5c42cafc-c92a-4803-8ab7-254e0df392e0" alt=""><figcaption></figcaption></figure>

## Habilitar autoservicio

Los usuarios pueden acceder a las cuentas creadas en sus *propio* dispositivos (son "PrimaryUser") cuando se habilita mediante el *Portal de RealmJoin* a partir de la versión `2022.5.1`. Para habilitarlo, defina una configuración usando la clave `Allow.SelfLAPS`. Esta configuración puede definirse en grupos y usuarios. Como con todas las configuraciones con el prefijo `Allow.*` se combinan mediante AND entre el usuario y todos sus grupos.

```json
{
  "EmergencyAccount": true,
  "SupportAccount": true,
  "PrivilegedAccount": true
}
```

El valor también puede ser un booleano puro `true`/`false`. Esto puede usarse como comodín y abarca todos los tipos de cuenta actuales y futuros. Tenga en cuenta que esto solo se recomienda para deshabilitar el acceso (`false`).

{% hint style="info" %}
En el pasado se recomendaba establecer esta configuración en `true`. Sin embargo, a medida que seguimos ampliando RealmJoin, se añadirán nuevos tipos de cuenta. Por lo tanto, se recomienda encarecidamente migrar todos los `true` valores a la notación de objeto más explícita
{% endhint %}

Una configuración de ejemplo podría verse así:

| Grupo                          |                                                           | Comentario                                                                                                                                                         |
| ------------------------------ | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Todos los trabajadores remotos | `{ "EmergencyAccount": true }`                            | Los trabajadores remotos pueden acceder a la cuenta de emergencia de sus propios dispositivos.                                                                     |
| Todos los desarrolladores      | `{ "EmergencyAccount": true, "PrivilegedAccount": true }` | Los desarrolladores pueden acceder a su cuenta de emergencia y a su cuenta privilegiada, sin importar si son trabajadores remotos o no.                            |
| Todos los aprendices           | `false`                                                   | Los aprendices nunca deben tener acceso a ninguno de los tres tipos de cuenta **y** todos los tipos futuros, incluso si son trabajadores remotos o desarrolladores |

{% hint style="info" %}
SelfLAPS es más potente que el rol LAPS normal. Dicho esto, si un usuario administrador administra LAPS con su cuenta de usuario normal, no podrá administrar su propio LAPS.

Mitigación: habilite SelfLAPS para estas cuentas de administrador o use cuentas de administrador separadas.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.realmjoin.com/es/agente-realmjoin/realmjoin-client/local-admin-password-solution-laps.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
