> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/password-manager/es/knowledge-base/application-knowledge-base/devolutions-password-manager-pre-configuration.md).

# Preconfiguración de Devolutions Password Manager

{% tabs %}
{% tab title="Windows" %}

#### ¿Qué es la preconfiguración?

La preconfiguración permite a los administradores de TI implementar la aplicación de Windows Devolutions Password Manager con ajustes y espacios de trabajo preconfigurados (Devolutions Server y Devolutions Cloud) en los endpoints de Windows. Esto elimina la necesidad de que los usuarios finales configuren manualmente la aplicación después de la instalación.

#### Ventajas principales

* Implementación sin intervención: los usuarios comienzan con aplicaciones totalmente configuradas
* Coherencia: garantice que todos los usuarios tengan los mismos espacios de trabajo y ajustes
* Ahorro de tiempo: elimine los pasos de configuración manual
* Flexibilidad: múltiples métodos de implementación para adaptarse a diferentes infraestructuras de TI
* Escalabilidad: implemente en cientos o miles de endpoints de forma eficiente

#### Cómo funciona

1. Un administrador de TI configura los espacios de trabajo y los ajustes mediante parámetros MSI o ficheros de configuración.
2. La herramienta de implementación envía la instalación a los dispositivos gestionados (Intune, SCCM, PDQ Deploy, etc.).
3. Los usuarios inician la aplicación por primera vez.
4. La aplicación lee la configuración y crea automáticamente los espacios de trabajo.
5. Los usuarios inician sesión para completar la conexión.

#### Notas importantes

* Autenticación necesaria: los espacios de trabajo preconfigurados se crean en estado «pendiente». Los usuarios deben iniciar sesión para completar la conexión.
* Solo en el primer inicio: la configuración se aplica una vez en el primer inicio. Los cambios posteriores requieren reinstalar la aplicación o una configuración manual.
* Las credenciales NO se almacenan: la preconfiguración NO incluye las credenciales de usuario. Los usuarios deben iniciar sesión con sus propias credenciales.

### Métodos de implementación

#### Método 1: parámetros del instalador MSI

Pase los parámetros de configuración directamente al instalador de Windows durante la implementación. Puede combinar los parámetros de espacio de trabajo con los ajustes de la aplicación.

Caso de uso: implementaciones rápidas, configuraciones sencillas, pruebas

* Ejemplo básico (solo espacios de trabajo):

```bash
msiexec /i Devolutions.PasswordManager.msi /qn DVLS_SERVER_URL="https://server.com" HUB_NAME="mycompany"
```

* Con ajustes (espacios de trabajo + ajustes de la aplicación):

```bash
msiexec /i Devolutions.PasswordManager.msi /qn ^
  DVLS_SERVER_URL="https://server.com" ^
  HUB_NAME="mycompany" ^
  ORGANIZATION_ID="guid-here" ^
  LANGUAGE="fr" ^
  LOCKING_OPTION="windowsCredentials"
```

Limitaciones: solo se puede configurar un Devolutions Server mediante parámetros MSI. Para varios servidores, utilice el método 2.

#### Método 2: implementación mediante fichero de configuración (recomendado para empresas)

Implemente un fichero `.cfg` creado previamente en los sistemas de destino.

* Caso de uso: Intune, SCCM, configuraciones complejas, varios espacios de trabajo

**Opción A: implementación en todo el sistema (DEPLOY\_CONFIG) - RECOMENDADA**

```bash
msiexec /i Devolutions.PasswordManager.msi /qn DEPLOY_CONFIG="C:\path\to\Config.cfg"
```

* Destino: `%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`
* Cómo funciona:

1. El MSI escribe la configuración en ProgramData durante la instalación
2. Cuando cualquier usuario inicia Devolutions Password Manager, la aplicación detecta la configuración de todo el sistema
3. La configuración se copia automáticamente en el perfil Roaming del usuario
4. El usuario dispone de la aplicación configurada

**Por qué DEPLOY\_CONFIG para empresas:**

1. Fiable: funciona independientemente del contexto de usuario (sin problemas de «usuario predeterminado»)
2. Coherente: todos los usuarios del equipo obtienen la misma configuración
3. Apto para automatización: perfecto para Intune, SCCM e instalaciones silenciosas
4. Compatibilidad multiusuario: se aplica a todos los usuarios existentes y futuros

* Ideal para: Intune, SCCM, instalaciones silenciosas, equipos multiusuario, estaciones de trabajo compartidas

**Opción B: implementación por usuario (USER\_CONFIG)**

```bash
msiexec /i Devolutions.PasswordManager.msi /qn USER_CONFIG="C:\path\to\Config.cfg"
```

* Destino: `%LOCALAPPDATA%\net.devolutions\Devolutions Password Manager\Config.cfg`
* Cómo funciona:

1. El MSI escribe la configuración en el Local AppData del usuario que realiza la instalación
2. El usuario inicia Devolutions Password Manager
3. La configuración se copia en el perfil Roaming del usuario
4. Solo ese usuario dispone de la aplicación configurada

* Limitaciones:

1. Solo configura al usuario que ejecutó el instalador
2. Puede fallar en implementaciones automatizadas (problemas de contexto de usuario)
3. No es adecuada para equipos multiusuario

* Ideal para: instalaciones interactivas realizadas por usuarios finales, dispositivos de un solo usuario

#### Método 3: creador de configuración basado en la interfaz

Utilice la aplicación de escritorio para crear ficheros de configuración y comandos MSI.

* Caso de uso: administradores de TI que preparan paquetes de implementación
* Acceso: ***Herramientas*** – ***Instalación personalizada*** (en la aplicación de escritorio)

Consulte la sección Creador de ficheros de configuración para obtener más detalles.

### Estructura del fichero de configuración

Los ficheros de configuración utilizan la extensión `.cfg` y contienen datos en formato JSON.

#### Formato del fichero

```json
{
  "hubs": [
    {
      "url": "https://mycompany.devolutions.app",
      "organizationId": "00000000-0000-0000-0000-000000000000",
      "type": "Business",
      "version": ""
    }
  ],
  "dvls": [
    {
      "name": "Production DVLS",
      "serverUrl": "https://devolutions-server.company.com",
      "serverVersion": ""
    },
    {
      "name": "Development DVLS",
      "serverUrl": "https://devolutions-server-dev.company.com",
      "serverVersion": ""
    }
  ],
  "configs": {
    "language": "en-US",
    "reduceToTrayOnClose": true,
    "clearClipboardSensitiveData": true,
    "clipboardTimer": 30,
    "useFavicon": true,
    "useEntriesSyncOnDatasourceAccess": false,
    "useHubEmbeddedBrowser": true,
    "shareUsageData": false,
    "lockingOption": "windowsCredentials",
    "useBackgroundLock": true,
    "useLockWhenInactive": true,
    "lockInactivityDelay": 300
  }
}
```

#### Componentes del esquema

**Array de Devolutions Cloud (opcional)**

Array de instancias de Devolutions Cloud a configurar.

| Campo              | Tipo   | Obligatorio | Descripción                                                                      |
| ------------------ | ------ | ----------- | -------------------------------------------------------------------------------- |
| **url**            | cadena | Sí          | URL de Devolutions Cloud (p. ej., `https://mycompany.devolutions.app`)           |
| **organizationId** | cadena | Sí          | GUID de la organización                                                          |
| **type**           | cadena | No          | Siempre «Business» (se rellena automáticamente)                                  |
| **version**        | cadena | No          | Versión de Devolutions Cloud (se rellena automáticamente en la primera conexión) |

**Array de Devolutions Server (opcional)**

Array de instancias de Devolutions Server a configurar.

| Campo             | Tipo   | Obligatorio | Descripción                                                                  |
| ----------------- | ------ | ----------- | ---------------------------------------------------------------------------- |
| **name**          | cadena | Sí          | Nombre para mostrar del servidor                                             |
| **serverUrl**     | cadena | Sí          | URL de Devolutions Server (p. ej., `https://devolutions-server.company.com`) |
| **serverVersion** | cadena | No          | Versión del servidor (se rellena automáticamente en la primera conexión)     |

**Objeto Configs (opcional)**

Ajustes de la aplicación a preconfigurar.

Consulte [Referencia de ajustes de configuración](#configuration-settings-reference) para ver la lista completa.

### Ubicaciones de los ficheros de configuración

Los ficheros de configuración se cargan por orden de prioridad según su ubicación.

#### Configuración a nivel de usuario

* Roaming AppData: `%APPDATA%\net.devolutions\Devolutions Password Manager\Config.cfg`
* Predeterminado: `C:\Users\[Username]\AppData\Roaming\net.devolutions\Devolutions Password Manager\Config.cfg`
* Se sincroniza entre los ordenadores unidos al dominio
* Prioridad más alta (específica del usuario)
* Local AppData: `%LOCALAPPDATA%\net.devolutions\Devolutions Password Manager\Config.cfg`
* Predeterminado: `C:\Users\[Username]\AppData\Local\net.devolutions\Devolutions Password Manager\Config.cfg`
* Específico del equipo, no se sincroniza
* Se utiliza durante la instalación MSI y después se copia en Roaming

#### Configuración en todo el sistema

* ProgramData: `%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`
* Predeterminado: `C:\ProgramData\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`
* Se aplica a todos los usuarios del sistema
* Requiere el fichero indicador `config.ready` en el mismo directorio
* Se copia a la ubicación Roaming del usuario en el primer inicio (si la configuración del usuario no existe)

#### Fichero indicador

* Fichero: `config.ready`
* Ubicación: el mismo directorio que `DefaultConfig.cfg`
* Propósito: indica que la configuración de todo el sistema está lista para su implementación
* Contenido: fichero vacío, solo se comprueba su presencia

#### Orden de prioridad

Las fuentes de configuración se comprueban en el siguiente orden (gana la primera encontrada):

1. Fichero de configuración de usuario – Usuario – configuración específica
2. Fichero de configuración del sistema – Sistema – valor predeterminado global (se copia a la ubicación del usuario)

### Parámetros del instalador MSI

El instalador MSI de Windows acepta los siguientes parámetros para la preconfiguración.

#### Parámetros de Workspace

**Configuración de Devolutions Server**

| Parámetro             | Tipo   | Descripción               | Ejemplo                                  |
| --------------------- | ------ | ------------------------- | ---------------------------------------- |
| **DVLS\_SERVER\_URL** | Cadena | URL de Devolutions Server | `https://devolutions-server.company.com` |

* Nota: solo se puede configurar un (Devolutions Server a través de parámetros MSI. Para varios servidores, utilice un fichero de configuración.)

**Configuración de Devolutions Cloud**

| Parámetro            | Tipo   | Descripción                                                    | Ejemplo                                |
| -------------------- | ------ | -------------------------------------------------------------- | -------------------------------------- |
| **HUB\_NAME**        | Cadena | Nombre del subdominio de Devolutions Cloud (obligatorio)       | `mycompany`                            |
| **ORGANIZATION\_ID** | Cadena | GUID de la organización (opcional; déjelo vacío si no procede) | `00000000-0000-0000-0000-000000000000` |

* Nota: la URL completa de Devolutions Cloud se construye como `https://{HUB_NAME}.devolutions.app`
* Nota: `ORGANIZATION_ID` es opcional. Algunas instancias de Devolutions Cloud no requieren un ID de organización. Si no procede, puede omitir este parámetro o pasar una cadena vacía.

#### Parámetros de implementación del fichero de configuración

| Parámetro          | Tipo   | Descripción                                            | Ubicación de destino                                                           |
| ------------------ | ------ | ------------------------------------------------------ | ------------------------------------------------------------------------------ |
| **DEPLOY\_CONFIG** | Cadena | Configuración de todo el sistema (recomendado)         | `%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg` |
| **USER\_CONFIG**   | Cadena | Configuración por usuario (instalaciones interactivas) | `%LOCALAPPDATA%\net.devolutions\Devolutions Password Manager\Config.cfg`       |

#### Parámetros de configuración de la aplicación

**Configuración general**

| Parámetro            | Tipo   | Valores                      | Predeterminado | Descripción                     |
| -------------------- | ------ | ---------------------------- | -------------- | ------------------------------- |
| **TARGET\_LOCATION** | Cadena | `roaming`, `local`, `system` | `roaming`      | Dónde guardar la configuración. |
| **LANGUAGE**         | Cadena | Código de idioma             | `en-US`        | Idioma de la aplicación.        |

**Configuración de la interfaz de usuario**

| Parámetro                       | Tipo   | Valores         | Predeterminado | Descripción                                                             |
| ------------------------------- | ------ | --------------- | -------------- | ----------------------------------------------------------------------- |
| **REDUCE\_TO\_TRAY\_ON\_CLOSE** | Cadena | `true`, `false` | `false`        | Minimizar a la bandeja del sistema en lugar de cerrar.                  |
| **USE\_FAVICON**                | Cadena | `true`, `false` | `false`        | Descargar y mostrar los favicons de los sitios web.                     |
| **USE\_HUB\_EMBEDDED\_BROWSER** | Cadena | `true`, `false` | `true`         | Usar el navegador integrado para la autenticación de Devolutions Cloud. |

**Configuración de seguridad**

| Parámetro                             | Tipo   | Valores                                       | Predeterminado | Descripción                                                           |
| ------------------------------------- | ------ | --------------------------------------------- | -------------- | --------------------------------------------------------------------- |
| **CLEAR\_CLIPBOARD\_SENSITIVE\_DATA** | Cadena | `true`, `false`                               | `false`        | Borrar automáticamente el portapapeles después de copiar contraseñas. |
| **CLIPBOARD\_TIMER**                  | Número | Segundos (1-999)                              | `30`           | Segundos antes de borrar el portapapeles.                             |
| **LOCKING\_OPTION**                   | Cadena | `password`, `biometric`, `windowsCredentials` | (ninguno)      | Método para bloquear la aplicación.                                   |
| **USE\_BACKGROUND\_LOCK**             | Cadena | `true`, `false`                               | `false`        | Bloquear cuando esté minimizada en la bandeja.                        |
| **USE\_LOCK\_WHEN\_INACTIVE**         | Cadena | `true`, `false`                               | `false`        | Bloquear tras un periodo de inactividad.                              |
| **LOCK\_INACTIVITY\_DELAY**           | Número | Segundos (30-3600)                            | `30`           | Segundos antes del bloqueo automático.                                |

**Configuración de sincronización**

| Parámetro                                      | Tipo   | Valores         | Predeterminado | Descripción                                                                         |
| ---------------------------------------------- | ------ | --------------- | -------------- | ----------------------------------------------------------------------------------- |
| **USE\_ENTRIES\_SYNC\_ON\_DATASOURCE\_ACCESS** | Cadena | `true`, `false` | `false`        | Sincronizar automáticamente las entradas al acceder a Devolutions Password Manager. |

**Configuración de privacidad**

| Parámetro              | Tipo   | Valores         | Predeterminado | Descripción                             |
| ---------------------- | ------ | --------------- | -------------- | --------------------------------------- |
| **SHARE\_USAGE\_DATA** | Cadena | `true`, `false` | `true`         | Compartir estadísticas de uso anónimas. |

### Creador de ficheros de configuración

La aplicación de escritorio incluye una herramienta visual para crear ficheros de configuración.

#### Acceder a la herramienta

1. Inicie Devolutions Password Manager.
2. Vaya a: ***Herramientas*** – ***Instalación personalizada***.

#### Funciones

**Pestaña Exportar (Crear configuración)**

1. Selección de espacio de trabajo.

* Ver todas las instancias configuradas (Devolutions Server y Devolutions Cloud)
* Seleccione qué espacios de trabajo incluir mediante casillas de verificación
* Se admiten varios espacios de trabajo

2. Configuración de ajustes

* Active o desactive ajustes individuales de la aplicación agrupados por categoría:
* General (Idioma, comportamiento de la bandeja)
* Seguridad (Portapapeles, bloqueo)
* Sincronización
* Privacidad (Estadísticas de uso)

3. Vista previa en vivo

* Vista previa JSON en tiempo real de la configuración
* Copiar el JSON al portapapeles
* La vista previa se actualiza a medida que cambian las selecciones

4. Opciones de exportación

* Generar fichero .cfg: guarde la configuración en un fichero `.cfg`
* Copiar comando MSI: genere el comando MSI completo con todos los parámetros

**Pestaña Importar (Cargar configuración)**

1. Selección de ficheros

* Busque ficheros `.cfg`
* Validación y análisis de ficheros

2. Vista previa antes de importar

* Vea los espacios de trabajo y los ajustes antes de aplicarlos
* Detección de duplicados (avisa si el espacio de trabajo ya existe)

3. Acciones de importación

* Aplica la configuración a la aplicación actual
* Crea nuevos espacios de trabajo si no existen
* Actualiza los ajustes inmediatamente

### Referencia de ajustes de configuración

Referencia completa de todos los ajustes configurables.

#### Correspondencia de claves de ajustes

| Clave de exportación (Config/MSI)    | Clave interna               | Tipo     | Predeterminado | Descripción                                                               |
| ------------------------------------ | --------------------------- | -------- | -------------- | ------------------------------------------------------------------------- |
| **language**                         | languageCode                | Cadena   | `en-US`        | Idioma de la interfaz de la aplicación                                    |
| **reduceToTrayOnClose**              | minimizeOnClose             | Booleano | `false`        | Minimizar a la bandeja en lugar de salir                                  |
| **clearClipboardSensitiveData**      | removeSensitiveFromKeyboard | Booleano | `false`        | Temporizador de borrado automático del portapapeles                       |
| **clipboardTimer**                   | clipboardTimer              | Entero   | `30`           | Segundos antes de borrar el portapapeles (1-999)                          |
| **useFavicon**                       | useRichIcons                | Booleano | `false`        | Descargar los favicons de los sitios web para las entradas                |
| **useEntriesSyncOnDatasourceAccess** | useEntriesSyncSpaceAccess   | Booleano | `false`        | Sincronizar automáticamente las entradas al acceder al espacio de trabajo |
| **useHubEmbeddedBrowser**            | hubEmbeddedBrowser          | Booleano | `true`         | Usar el navegador incorporado para la autenticación de Devolutions Cloud  |
| **shareUsageData**                   | shareAnonymousData          | Booleano | `true`         | Compartir estadísticas de uso anónimas                                    |
| **lockingOption**                    | lockingOption               | Cadena   | `(none)`       | Método de bloqueo: `password`, `biometric`, `windowsCredentials`          |
| **useBackgroundLock**                | useBackgroundLock           | Booleano | `false`        | Bloquear al minimizar a la bandeja                                        |
| **useLockWhenInactive**              | useLockWhenInactive         | Booleano | `false`        | Bloquear tras un periodo de inactividad                                   |
| **lockInactivityDelay**              | lockInactivityDelay         | Entero   | `30`           | Segundos antes del bloqueo automático (30-3600)                           |

#### Idiomas compatibles

| Código   | Idioma                  |
| -------- | ----------------------- |
| `en-US`  | Inglés (Estados Unidos) |
| `fr`     | Francés                 |
| `de`     | Alemán                  |
| `es`     | Español                 |
| `cs`     | Checo                   |
| `hu`     | Húngaro                 |
| `it`     | Italiano                |
| `nl`     | Neerlandés              |
| `pl`     | Polaco                  |
| `ru`     | Ruso                    |
| `sv`     | Sueco                   |
| `tr`     | Turco                   |
| `uk`     | Ucraniano               |
| `zh-CHS` | Chino (simplificado)    |
| `zh-TW`  | Chino (tradicional)     |

#### Opciones de bloqueo

| Valor                  | Descripción            | Requisitos                                              |
| ---------------------- | ---------------------- | ------------------------------------------------------- |
| **password**           | Contraseña maestra     | El usuario establece la contraseña en el primer bloqueo |
| **biometric**          | Huella digital/Face ID | Se requiere hardware biométrico                         |
| **windowsCredentials** | Windows Hello          | Windows 10/11 con Windows Hello                         |

* Nota: Si Windows Hello no está disponible, se recurre a la contraseña.

### Ejemplos de implementación

#### Ejemplo 1: Devolutions Server único con configuración de seguridad

```bash
msiexec /i Devolutions.PasswordManager.msi /qn ^
  DVLS_SERVER_URL="https://devolutions-server.company.com" ^
  LOCKING_OPTION="windowsCredentials" ^
  USE_LOCK_WHEN_INACTIVE="true" ^
  LOCK_INACTIVITY_DELAY="300" ^
  CLEAR_CLIPBOARD_SENSITIVE_DATA="true" ^
  CLIPBOARD_TIMER="60"
```

#### Ejemplo 2: Devolutions Cloud con idioma francés

```bash
# With Organization ID
msiexec /i Devolutions.PasswordManager.msi /qn ^
  HUB_NAME="mycompany" ^
  ORGANIZATION_ID="12345678-1234-1234-1234-123456789abc" ^
  LANGUAGE="fr" ^
  REDUCE_TO_TRAY_ON_CLOSE="true"

# Without Organization ID (for Devolutions Cloud instances that don't require it)
msiexec /i Devolutions.PasswordManager.msi /qn ^
  HUB_NAME="mycompany" ^
  LANGUAGE="fr" ^
  REDUCE_TO_TRAY_ON_CLOSE="true"
```

#### Ejemplo 3: implementación con Microsoft Intune

**Paso 1: preparar los ficheros**

Cree una carpeta de trabajo (p. ej., `C:\IntuneApps\Devolutions Password Manager\`) y coloque estos ficheros:

* `Devolutions.PasswordManager.msi`
* `config.cfg` (creado mediante ***Herramientas*** – ***Instalación personalizada*** o manualmente)
* `Install-Devolutions.PasswordManager.ps1` (script de PowerShell a continuación)

**Paso 2: script de instalación de PowerShell**

Cree `Install-Devolutions.PasswordManager.ps1`:

```powershell
# Install-Devolutions.PasswordManager.ps1
# Source files in the Intune package
$ConfigSource = "$PSScriptRoot\config.cfg"
$ConfigTarget = "C:\Program Files\config.cfg"
$MsiPath = "$PSScriptRoot\Devolutions.PasswordManager.msi"

# Copy config.cfg to Program Files
try {
    Copy-Item -Path $ConfigSource -Destination $ConfigTarget -Force
} catch {
    Write-Host "Error copying config file: $($_.Exception.Message)"
    exit 1
}

# Install MSI silently with DEPLOY_CONFIG parameter
$Arguments = "/i `"$MsiPath`" /qn /norestart DEPLOY_CONFIG=`"C:\Program Files\config.cfg`""
$Process = Start-Process "msiexec.exe" -ArgumentList $Arguments -Wait -PassThru

# Return exit code to Intune
exit $Process.ExitCode
```

**Paso 3: crear el paquete .intunewin**

Utilice la Microsoft Win32 Content Prep Tool (`IntuneWinAppUtil.exe`):

```bash
IntuneWinAppUtil.exe -c C:\IntuneApps\Devolutions Password Manager -s Install-Devolutions.PasswordManager.ps1 -o C:\IntuneApps\Output
```

**Paso 4: configurar la aplicación de Intune**

En el portal de Microsoft Intune:

1. Navegue a: **Aplicaciones** – **Windows** – **Agregar** – **Aplicación de Windows (Win32)**
2. Fichero de paquete de aplicación: cargue `Devolutions Password Manager.intunewin`
3. Información de la aplicación: rellene el nombre, la descripción y el editor
4. Configuración del programa:

* Comando de instalación: `powershell.exe -ExecutionPolicy Bypass -File .\Install-Devolutions.PasswordManager.ps1`
* Comando de desinstalación: `msiexec.exe /x {PRODUCT-CODE-GUID} /qn /norestart`
* Comportamiento de instalación: Sistema

5. Requisitos: Windows 10 1607+ (64 bits)
6. Reglas de detección: código de producto MSI (detectado automáticamente)
7. Asignaciones: asigne a los grupos de destino

**Flujo de instalación en el endpoint**

Cuando la aplicación se implementa en un dispositivo, ocurre lo siguiente automáticamente:

1. Intune descarga y ejecuta `Install-Devolutions.PasswordManager.ps1`
2. El script copia `config.cfg` en `C:\Program Files\config.cfg`
3. El script instala el MSI con `DEPLOY_CONFIG="C:\Program Files\config.cfg"`
4. El MSI lee el fichero de configuración y lo escribe en `%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`
5. Cuando un usuario inicia Devolutions Password Manager, la aplicación detecta la configuración a nivel de sistema y la aplica

El resultado: el fichero de configuración se distribuye con la aplicación, se coloca automáticamente en la ubicación correcta y la instalación es totalmente silenciosa y compatible con Intune.

#### Ejemplo 4: implementación con SCCM

* Comando de instalación:

```bash
msiexec /i Devolutions.PasswordManager.msi /qn /norestart DEPLOY_CONFIG="%~dp0Config.cfg"
```

* Comando de desinstalación:

```bash
msiexec /x {PRODUCT-CODE} /qn /norestart
```

* Método de detección: clave de registro `HKLM\SOFTWARE\Devolutions\Devolutions Password Manager\Version`

#### Ejemplo 5: varios Devolutions Server mediante fichero de configuración

Cree `config.cfg`:

```json
{
  "dvls": [
    {
      "name": "Production Devolutions Server",
      "serverUrl": "https://devolutions-server-prod.company.com"
    },
    {
      "name": "Development Devolutions Server",
      "serverUrl": "https://devolutions-server-dev.company.com"
    },
    {
      "name": "Test Devolutions Server",
      "serverUrl": "https://devolutions-server-test.company.com"
    }
  ],
  "configs": {
    "language": "en-US",
    "shareUsageData": false
  }
}
```

Implemente mediante:

```bash
msiexec /i Devolutions.PasswordManager.msi /qn DEPLOY_CONFIG="\\fileserver\IT\Workspace\config.cfg"
```

### Solución de problemas

#### La configuración no se aplica

El fichero de configuración está presente pero la configuración no se aplica.

1. Compruebe la ubicación del fichero: verifique que la ruta es correcta (`%ProgramData%\net.devolutions\Devolutions Password Manager\DefaultConfig.cfg`)
2. Compruebe la validez del JSON: valide la sintaxis JSON (sin comas finales, comillas correctas)
3. Compruebe los permisos: el usuario debe tener acceso de lectura al fichero de configuración
4. Verifique el fichero indicador: compruebe si el fichero `config.ready` existe en el mismo directorio
5. Compruebe los registros: revise los registros de la aplicación en busca de errores de análisis

#### Falta el fichero indicador

* Problema: se ignora la configuración a nivel de sistema.
* Solución: cree el fichero `config.ready`:

```bash
type nul > "%ProgramData%\net.devolutions\Devolutions Password Manager\config.ready"
```

#### USER\_CONFIG se implementa en el perfil de usuario "default"

* Problema: USER\_CONFIG falla en instalaciones silenciosas/automatizadas y la configuración acaba en `C:\Users\Default\AppData\Local`.
* Causa: USER\_CONFIG requiere el contexto de una sesión de usuario activa, que no está disponible durante la instalación automatizada del MSI.
* Solución: utilice **DEPLOY\_CONFIG** para implementaciones empresariales:

```bash
# CORRECT for Intune/SCCM
msiexec /i Devolutions.PasswordManager.msi /qn /norestart DEPLOY_CONFIG="%~dp0Config.cfg"

# WRONG for automated deployment
msiexec /i Devolutions.PasswordManager.msi /qn /norestart USER_CONFIG="%~dp0Config.cfg"
```

#### La instalación silenciosa del MSI no aplica la configuración

Los parámetros del MSI no crean la configuración.

1. Compruebe la sintaxis de los parámetros: asegúrese de usar las comillas correctas (use `"value"`, no `'value'`)
2. Registre la instalación del MSI: añada `/l*v install.log` para ver errores detallados
3. Verifique la ejecución de PowerShell: compruebe si la política de ejecución bloquea los scripts
4. Derechos administrativos: asegúrese de que el instalador se ejecute con elevación

* Ejemplo con registro:

```bash
msiexec /i Devolutions.PasswordManager.msi /qn /l*v C:\Temp\install.log DVLS_SERVER_URL="https://server.com"
```

#### La configuración no se conserva

La configuración vuelve a los valores predeterminados después de reiniciar.

1. Configuración de usuario frente a la del sistema: la configuración del sistema solo se aplica si no existe la configuración de usuario. Una vez que el usuario modifica los ajustes, se guardan en la configuración de usuario y anulan los valores predeterminados del sistema.
2. Anulación por directiva de grupo: compruebe si un GPO está imponiendo la configuración
3. Permisos de fichero: verifique los permisos de escritura en la ubicación de la configuración de usuario

#### El espacio de trabajo ya existe

Problema: la importación falla con el mensaje "workspace already exists".

Explicación: el analizador de configuración detecta duplicados por URL normalizada (sin distinguir mayúsculas y minúsculas, eliminando la barra final).

1. Elimine manualmente el espacio de trabajo existente antes de importar
2. Edite el fichero de configuración para eliminar las entradas duplicadas
3. Utilice la herramienta de instalación personalizada para combinar configuraciones

#### La opción de bloqueo no funciona

Windows Hello no se activa.

1. Configuración de Windows Hello: asegúrese de que Windows Hello esté configurado en la Configuración de Windows
2. Alternativa: el sistema recurre automáticamente a la contraseña si el hardware no está disponible
3. Compruebe los registros: revise los registros de la aplicación en busca de errores de inicialización biométrica

### Buenas prácticas

#### 1. Pruebe primero la configuración

Antes de implementarla para todos los usuarios:

1. Cree un grupo de usuarios/dispositivos de prueba
2. Aplique la configuración al grupo de prueba
3. Verifique que los espacios de trabajo y la configuración funcionen como se espera
4. Despliegue en producción

#### 2.Utilice DEPLOY\_CONFIG en entornos empresariales

* Utilice siempre DEPLOY\_CONFIG para:
* Implementaciones con Intune
* Implementaciones con SCCM
* Instalaciones silenciosas/desatendidas
* Equipos multiusuario
* Estaciones de trabajo compartidas
* Utilice USER\_CONFIG solo para:
* Instalaciones interactivas realizadas por usuarios finales
* Dispositivos de un solo usuario
* Escenarios de prueba

#### 3. Documente la configuración

Mantenga documentación de su configuración que incluya:

* Qué espacios de trabajo están preconfigurados
* Qué ajustes se imponen
* Experiencia de usuario esperada
* Contacto de soporte para incidencias

#### 4. Comunicación con los usuarios

Informe a los usuarios de que:

* Los espacios de trabajo estarán preconfigurados
* Aún deben iniciar sesión con sus credenciales
* La configuración se aplica en el primer inicio de la aplicación
* Deben contactar con TI si los espacios de trabajo no aparecen

#### 5. Consideraciones de seguridad

**Configuración de seguridad recomendada**:

```json
{
  "lockingOption": "windowsCredentials",
  "useBackgroundLock": true,
  "useLockWhenInactive": true,
  "lockInactivityDelay": 300,
  "clearClipboardSensitiveData": true,
  "clipboardTimer": 60,
  "shareUsageData": false
}
```

**Motivo**:

* Impone la autenticación con Windows Hello
* Bloquea la aplicación inmediatamente cuando pasa a segundo plano
* Se bloquea automáticamente después de 5 minutos de inactividad
* Borra el portapapeles después de 60 segundos
* Desactiva la recopilación de datos de uso (opcional)

#### 6. Requisitos del formato de URL

Todas las URL deben:

* Incluir el protocolo (`https://`)
* Ser URL válidas y accesibles
* No terminar con una barra final (la aplicación las normalizará)

**Ejemplos:**

* `https://devolutions-server.company.com`
* `https://password-manager.devolutions.app`
* `devolutions-server.company.com` (falta https\://)
* `http://devolutions-server.company.com` (no se recomienda HTTP)

#### 7. Consideraciones sobre dominio frente a equipos independientes

* Unido a un dominio: utilice Roaming AppData (`TARGET_LOCATION="roaming"`) para la sincronización del perfil
* Independiente: utilice Local AppData (`TARGET_LOCATION="local"`) o System (`TARGET_LOCATION="system"`)

### Referencia rápida

#### Plantilla de configuración mínima

```json
{
  "dvls": [
    {
      "name": "Devolutions Server",
      "serverUrl": "https://devolutions-server.example.com"
    }
  ]
}
```

#### Comando recomendado para la implementación empresarial

```bash
msiexec /i Devolutions.PasswordManager.msi /qn /norestart DEPLOY_CONFIG="\\server\share\Config.cfg"
```

{% endtab %}

{% tab title="macOS" %}

#### Qué es la preconfiguración

La preconfiguración permite a los administradores de TI implementar Devolutions Password Manager con configuraciones y espacios de trabajo preconfigurados (instancias de Devolutions Server y Devolutions Cloud) en los endpoints macOS gestionados. Esto elimina la necesidad de que los usuarios finales configuren manualmente la aplicación después de la instalación.

#### Ventajas principales

* Implementación sin intervención: los usuarios comienzan con aplicaciones totalmente configuradas
* Coherencia: garantiza que todos los usuarios tengan los mismos espacios de trabajo y configuración
* Ahorro de tiempo: elimina los pasos de configuración manual
* Gestión centralizada: configure desde la consola MDM
* Aplicación de directivas: puede impedir que los usuarios cambien la configuración
* Estándar empresarial: enfoque recomendado para flotas de macOS gestionadas

#### Cómo funciona

1. El administrador de TI configura los espacios de trabajo y los ajustes mediante MDM o ficheros de configuración
2. El MDM envía la configuración a los dispositivos gestionados
3. El usuario inicia la aplicación por primera vez
4. La aplicación lee la configuración y crea los espacios de trabajo automáticamente
5. El usuario se autentica para completar la conexión (introduce sus credenciales)

#### Notas importantes

* Autenticación necesaria: los espacios de trabajo preconfigurados se crean en estado "pendiente". Los usuarios deben autenticarse (iniciar sesión) para completar la conexión.
* Solo en el primer inicio: la configuración se aplica una vez, en el primer inicio. Los cambios posteriores requieren reinstalar la aplicación o configurarla manualmente.
* Las credenciales NO se almacenan: la preconfiguración NO incluye las credenciales de usuario. Los usuarios deben iniciar sesión con sus propias credenciales.

### Métodos de implementación

#### Método 1: MDM/preferencias gestionadas (recomendado)

Implemente la configuración mediante soluciones de gestión de dispositivos móviles (MDM) en entornos macOS gestionados.

* Caso de uso: Jamf Pro, Microsoft Intune para Mac y otras soluciones MDM
* Prioridad: la más alta (anula todas las configuraciones basadas en ficheros)
* Dominio de preferencias: `net.devolutions.authenticator`

**Ventajas:**

* Gestión centralizada: configure desde la consola MDM
* Aplicación de directivas: puede impedir que los usuarios cambien la configuración
* Prioridad más alta: anula los ficheros de configuración locales
* Estándar empresarial: enfoque recomendado para flotas de macOS gestionadas

Consulte la sección [MDM/Preferencias gestionadas](#method-1-mdm-managed-preferences-recommended) para obtener instrucciones detalladas.

#### Método 2: implementación de un fichero de configuración

Implemente un fichero `.cfg` creado previamente en los sistemas de destino.

* Caso de uso: implementaciones mediante scripts, entornos sin MDM, pruebas
* Ubicación para todo el sistema: `/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg`
* Ubicación por usuario: `~/Library/Application Support/Devolutions Password Manager/Config.cfg`

Consulte la sección [Estructura del fichero de configuración](#configuration-file-structure-1) para obtener más detalles.

#### Método 3: configuración manual (comando defaults)

Para la configuración manual o mediante scripts:

```bash
# Set language
defaults write net.devolutions.authenticator language -string "en-US"

# Enable tray minimize
defaults write net.devolutions.authenticator reduceToTrayOnClose -bool true

# Set locking option
defaults write net.devolutions.authenticator lockingOption -string "biometric"
```

**Caso de uso**: configuración manual, pruebas, scripts de shell

### MDM/Preferencias gestionadas

#### Implementación con Jamf Pro

**Opción A: usar el esquema JSON (recomendado)**

1. Descargue o copie el esquema JSON de Jamf Pro para Devolutions Password Manager:

<details>

<summary><strong>Haga clic para expandir: esquema JSON de Jamf Pro para Devolutions Password Manager</strong></summary>

```json
{
  "title": "Devolutions Password Manager Configuration (net.devolutions.authenticator)",
  "description": "Configuration settings for Devolutions Password Manager deployed via Jamf Pro. These settings are deployed as managed preferences to managed devices.",
  "__version": "1.0",
  "__preferencedomain": "net.devolutions.authenticator",
  "options": {
    "remove_empty_properties": true
  },
  "properties": {
    "dvls": {
      "title": "DVLS Configuration",
      "description": "Devolutions Server connection settings",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "title": "Server Name",
            "description": "Display name for the Devolutions Server",
            "type": "string",
            "default": "Devolutions Server"
          },
          "serverUrl": {
            "title": "Server URL",
            "description": "Full URL to the Devolutions Server (e.g., https://server.company.com)",
            "type": "string",
            "pattern": "^https?://.*"
          },
          "serverVersion": {
            "title": "Server Version",
            "description": "Devolutions Server version (optional)",
            "type": "string",
            "default": ""
          }
        },
        "required": ["serverUrl"]
      },
      "default": []
    },
    "hubs": {
      "title": "Devolutions Cloud Configuration",
      "description": "Devolutions Cloud connection settings",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "title": "Devolutions Cloud URL",
            "description": "Full Devolutions Cloud URL (e.g., https://yourcompany.devolutions.app)",
            "type": "string",
            "pattern": "^https://.*\\.devolutions\\.app$"
          },
          "organizationId": {
            "title": "Organization ID",
            "description": "Organization identifier for Devolutions Cloud",
            "type": "string"
          },
          "type": {
            "title": "Devolutions Cloud Type",
            "description": "Devolutions Cloud connection type (optional)",
            "type": "string"
          },
          "version": {
            "title": "Devolutions Cloud Version",
            "description": "Devolutions Cloud version compatibility",
            "type": "string",
            "default": "2020"
          }
        },
        "required": ["url"]
      },
      "default": []
    },
    "configs": {
      "title": "Application Settings",
      "description": "User preferences and application behavior settings",
      "type": "object",
      "properties": {
        "language": {
          "title": "Language",
          "description": "Default language for Devolutions Password Manager interface",
          "type": "string",
          "enum": [
            "en-US", "fr", "de", "es", "cs", "hu", "it", "nl", "pl", "ru", "sv", "tr", "uk", "zh-CHS", "zh-TW"
          ],
          "default": "en-US",
          "options": {
            "enum_titles": [
              "English", "Français", "Deutsch", "Español", "Čeština", "Magyar", "Italiano",
              "Nederlands", "Polski", "Русский", "Svenska", "Türkçe", "Українська", "简体中文", "繁體中文"
            ]
          }
        },
        "reduceToTrayOnClose": {
          "title": "Minimize to Tray on Close",
          "description": "When enabled, closing the window minimizes to system tray instead of quitting",
          "type": "boolean",
          "default": false
        },
        "clearClipboardSensitiveData": {
          "title": "Clear Clipboard Sensitive Data",
          "description": "Automatically clear sensitive data from clipboard after a specified timeout",
          "type": "boolean",
          "default": false
        },
        "clipboardTimer": {
          "title": "Clipboard Timeout (seconds)",
          "description": "Duration in seconds before clearing clipboard when sensitive data clearing is enabled",
          "type": "integer",
          "enum": [30, 60, 120, 180, 240, 300, 0],
          "default": 30,
          "options": {
            "enum_titles": ["30 seconds", "1 minute", "2 minutes", "3 minutes", "4 minutes", "5 minutes", "Never"]
          }
        },
        "useFavicon": {
          "title": "Use Favicons",
          "description": "Download and display website favicons for entries",
          "type": "boolean",
          "default": false
        },
        "useEntriesSyncOnDatasourceAccess": {
          "title": "Sync Entries on Workspace Access",
          "description": "Automatically synchronize entries when accessing a workspace",
          "type": "boolean",
          "default": false
        },
        "useHubEmbeddedBrowser": {
          "title": "Use Devolutions Cloud Embedded Browser",
          "description": "Open Devolutions Cloud connections in embedded browser (disable if using credential providers)",
          "type": "boolean",
          "default": true
        },
        "lockingOption": {
          "title": "Locking Method",
          "description": "Authentication method used when locking/unlocking Devolutions Password Manager. Leave empty for no locking method.",
          "type": "string",
          "enum": ["", "password", "biometric"],
          "default": "",
          "options": {
            "enum_titles": ["None", "Password/PIN", "Biometric (Touch ID)"]
          }
        },
        "useBackgroundLock": {
          "title": "Lock When Backgrounded",
          "description": "Automatically lock the application when minimized or sent to system tray",
          "type": "boolean",
          "default": false
        },
        "useLockWhenInactive": {
          "title": "Auto-Lock When Inactive",
          "description": "Automatically lock the application after a period of inactivity",
          "type": "boolean",
          "default": false
        },
        "lockInactivityDelay": {
          "title": "Inactivity Lock Delay (seconds)",
          "description": "Time in seconds before locking due to inactivity (requires Auto-Lock to be enabled)",
          "type": "integer",
          "enum": [30, 60, 120, 180, 240, 300],
          "default": 30,
          "options": {
            "enum_titles": ["30 seconds", "1 minute", "2 minutes", "3 minutes", "4 minutes", "5 minutes"]
          }
        }
      }
    },
    "preventStartup": {
      "title": "Prevent Startup",
      "description": "When true, prevents Devolutions Password Manager from starting automatically after configuration deployment",
      "type": "boolean",
      "default": true
    }
  }
}
```

</details>

2. En Jamf Pro, vaya a: **Computers – Configuration Profiles – Application & Custom Settings**
3. Haga clic en **Configure** y cargue el fichero del esquema JSON
4. Configure los ajustes que desee mediante la interfaz gráfica que proporciona Jamf
5. Delimitar el perfil a los ordenadores de destino
6. Implementar el perfil de configuración

**Opción B: Perfil de configuración manual**

Si no utiliza Jamf Pro, puede crear un perfil de configuración de macOS estándar:

**Perfil de ejemplo** (com.devolutions.workspace.mobileconfig):

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>PayloadType</key>
            <string>net.devolutions.authenticator</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>PayloadIdentifier</key>
            <string>net.devolutions.authenticator.config</string>
            <key>PayloadUUID</key>
            <string>GENERATE-UUID-HERE</string>
            <key>PayloadDisplayName</key>
            <string>Devolutions Password Manager Configuration</string>
            <key>language</key>
            <string>en-US</string>
            <key>reduceToTrayOnClose</key>
            <true/>
            <key>lockingOption</key>
            <string>biometric</string>
            <key>dvls</key>
            <array>
                <dict>
                    <key>name</key>
                    <string>Corporate DVLS</string>
                    <key>serverUrl</key>
                    <string>https://devolutions-server.company.com</string>
                </dict>
            </array>
        </dict>
    </array>
</dict>
</plist>
```

Implemente mediante:

* Jamf Pro: Perfiles de configuración – Cargar perfil
* Microsoft Intune: Configuración de dispositivos – Perfil personalizado
* Otros MDM: Carga de perfil de configuración personalizado

#### Microsoft Intune para Mac

1. Vaya a: **Dispositivos** – **Perfiles de configuración** – **Crear perfil**.
2. Plataforma: **macOS**.
3. Tipo de perfil: **Personalizado**.
4. Cargue el perfil de configuración (fichero `.mobileconfig`).
5. Asigne a los grupos de destino.
6. Implemente.

#### Verificar la configuración de MDM

En un Mac gestionado:

```bash
# Check if preferences are set
defaults read net.devolutions.authenticator

# Check for specific setting
defaults read net.devolutions.authenticator language
```

### Estructura del fichero de configuración

Los ficheros de configuración utilizan la extensión `.cfg` y contienen datos con formato JSON.

#### Formato de fichero

```json
{
  "hubs": [
    {
      "url": "https://mycompany.devolutions.app",
      "organizationId": "00000000-0000-0000-0000-000000000000",
      "type": "Business",
      "version": ""
    }
  ],
  "dvls": [
    {
      "name": "Production DVLS",
      "serverUrl": "https://devolutions-server.company.com",
      "serverVersion": ""
    },
    {
      "name": "Development DVLS",
      "serverUrl": "https://devolutions-server-dev.company.com",
      "serverVersion": ""
    }
  ],
  "configs": {
    "language": "en-US",
    "reduceToTrayOnClose": true,
    "clearClipboardSensitiveData": true,
    "clipboardTimer": 30,
    "useFavicon": true,
    "useEntriesSyncOnDatasourceAccess": false,
    "useHubEmbeddedBrowser": true,
    "shareUsageData": false,
    "lockingOption": "biometric",
    "useBackgroundLock": true,
    "useLockWhenInactive": true,
    "lockInactivityDelay": 300
  }
}
```

#### Componentes del esquema

**Array de Devolutions Cloud (opcional)**

Array de instancias de Devolutions Cloud que configurar.

| Campo              | Tipo   | Obligatorio | Descripción                                                                     |
| ------------------ | ------ | ----------- | ------------------------------------------------------------------------------- |
| **url**            | string | Sí          | URL de Devolutions Cloud (por ejemplo, `https://mycompany.devolutions.app`)     |
| **organizationId** | string | Sí          | GUID de la organización                                                         |
| **type**           | string | No          | Siempre "Business" (rellenado automáticamente)                                  |
| **version**        | string | No          | Versión de Devolutions Cloud (rellenada automáticamente en la primera conexión) |

**Array de Devolutions Server (opcional)**

Array de instancias de Devolutions Server que configurar.

| Campo             | Tipo   | Obligatorio | Descripción                                                                        |
| ----------------- | ------ | ----------- | ---------------------------------------------------------------------------------- |
| **name**          | string | Sí          | Nombre visible del servidor                                                        |
| **serverUrl**     | string | Sí          | (URL de Devolutions Server (por ejemplo, `https://devolutions-server.company.com`) |
| **serverVersion** | string | No          | Versión del servidor (rellenada automáticamente en la primera conexión)            |

**Objeto `configs` (opcional)**

Configuración de la aplicación que se preconfigurará.

Consulte la [referencia de la configuración](#configuration-settings-reference-1) para ver la lista completa.

### Ubicaciones de los ficheros de configuración

#### Configuración a nivel de usuario

* Ruta: `~/Library/Application Support/Devolutions Password Manager/Config.cfg`
* Prioridad: la más alta para configuraciones específicas de usuario

#### Configuración de todo el sistema

* Ruta: `/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg`
* Prioridad: se aplica si no existe la configuración de usuario

#### Preferencias gestionadas (MDM/Jamf)

* Prioridad: la más alta (anula todas las configuraciones basadas en ficheros)
* Dominio de preferencias: `net.devolutions.authenticator`
* Claves: las mismas que en el objeto `configs` en formato JSON
* Configuración: mediante perfil de MDM o el comando `defaults`

#### Orden de prioridad

Las fuentes de configuración se comprueban en el siguiente orden (gana la primera encontrada):

1. Preferencias gestionadas de macOS: políticas de MDM/Jamf (máxima prioridad)
2. Fichero de configuración de usuario: configuración específica del usuario
3. Fichero de configuración del sistema: valor predeterminado para todo el sistema (se copia en la ubicación del usuario)

### Referencia de la configuración

Referencia completa de todos los ajustes configurables.

#### Asignación de claves de configuración

| Clave de exportación (Config/MDM)    | Tipo     | Predeterminado | Descripción                                                               |
| ------------------------------------ | -------- | -------------- | ------------------------------------------------------------------------- |
| **language**                         | String   | `en-US`        | Idioma de la interfaz de la aplicación                                    |
| **reduceToTrayOnClose**              | Boolean  | `false`        | Minimizar en la bandeja del sistema en lugar de salir                     |
| **clearClipboardSensitiveData**      | Boolean  | `false`        | Temporizador de borrado automático del portapapeles                       |
| **clipboardTimer**                   | Integer  | `30`           | Segundos antes de borrar el portapapeles (1-999)                          |
| **useFavicon**                       | Boolean  | `false`        | Descargar los favicons de los sitios web para las entradas                |
| **useEntriesSyncOnDatasourceAccess** | Boolean  | `false`        | Sincronizar automáticamente las entradas al acceder al espacio de trabajo |
| **useHubEmbeddedBrowser**            | Boolean  | `true`         | Usar el navegador integrado para la autenticación de Devolutions Cloud    |
| **shareUsageData**                   | Boolean  | `true`         | Compartir estadísticas de uso anónimas                                    |
| **lockingOption**                    | Cadena   | (ninguno)      | Método de bloqueo: `password`, `biometric`                                |
| **useBackgroundLock**                | Booleano | `false`        | Bloquear al minimizar en la bandeja                                       |
| **useLockWhenInactive**              | Booleano | `false`        | Bloquear tras un periodo de inactividad                                   |
| **lockInactivityDelay**              | Entero   | `30`           | Segundos antes del bloqueo automático (30-3600)                           |

#### Idiomas admitidos

| Código   | Idioma                  |
| -------- | ----------------------- |
| `en-US`  | Inglés (Estados Unidos) |
| `fr`     | Francés                 |
| `de`     | Alemán                  |
| `es`     | Español                 |
| `cs`     | Checo                   |
| `hu`     | Húngaro                 |
| `it`     | Italiano                |
| `nl`     | Neerlandés              |
| `pl`     | Polaco                  |
| `ru`     | Ruso                    |
| `sv`     | Sueco                   |
| `tr`     | Turco                   |
| `uk`     | Ucraniano               |
| `zh-CHS` | Chino (simplificado)    |
| `zh-TW`  | Chino (tradicional)     |

#### Opciones de bloqueo

| Valor         | Descripción        | Requisitos                                              |
| ------------- | ------------------ | ------------------------------------------------------- |
| **password**  | Contraseña maestra | El usuario establece la contraseña en el primer bloqueo |
| **biometric** | Touch ID           | Se requiere hardware Touch ID                           |

### Ejemplos de despliegue

#### Ejemplo 1: Jamf Pro con Devolutions Server y ajustes de seguridad

Usando el esquema JSON de Jamf:

1. Suba el esquema JSON a Jamf Pro
2. Configure mediante la interfaz gráfica:
   * Configuración de Devolutions Server: añada el servidor con la URL `https://devolutions-server.company.com`
   * Método de bloqueo: biométrico (Touch ID)
   * Bloquear en segundo plano: activado
   * Bloqueo automático por inactividad: activado
   * Retardo de bloqueo por inactividad: 5 minutos (300 segundos)
3. Defina el ámbito de los ordenadores de destino
4. Desplegar

#### Ejemplo 2: perfil de configuración manual para Devolutions Cloud

```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>PayloadType</key>
            <string>net.devolutions.authenticator</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>PayloadIdentifier</key>
            <string>net.devolutions.authenticator.config</string>
            <key>PayloadUUID</key>
            <string>REPLACE-WITH-UNIQUE-UUID</string>
            <key>PayloadDisplayName</key>
            <string>Devolutions Password Manager Cloud Configuration</string>
            <key>hubs</key>
            <array>
                <dict>
                    <key>url</key>
                    <string>https://mycompany.devolutions.app</string>
                    <key>organizationId</key>
                    <string>12345678-1234-1234-1234-123456789abc</string>
                    <key>type</key>
                    <string>Business</string>
                    <key>version</key>
                    <string>2020</string>
                </dict>
            </array>
            <key>configs</key>
            <dict>
                <key>language</key>
                <string>en-US</string>
                <key>lockingOption</key>
                <string>biometric</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
```

#### Ejemplo 3: comando defaults para pruebas

```bash
#!/bin/bash

# Configure Devolutions Server (complex structure requires plist file)
defaults write net.devolutions.authenticator dvls -array-add \
  '{name = "Production DVLS"; serverUrl = "https://devolutions-server.company.com"; }'

# Configure application settings
defaults write net.devolutions.authenticator language -string "en-US"
defaults write net.devolutions.authenticator lockingOption -string "biometric"
defaults write net.devolutions.authenticator useBackgroundLock -bool true
defaults write net.devolutions.authenticator useLockWhenInactive -bool true
defaults write net.devolutions.authenticator lockInactivityDelay -int 300
defaults write net.devolutions.authenticator clearClipboardSensitiveData -bool true
defaults write net.devolutions.authenticator clipboardTimer -int 60
```

#### Ejemplo 4: despliegue del fichero de configuración mediante script

```bash
#!/bin/bash

# Create system-wide configuration directory
sudo mkdir -p "/Library/Application Support/Devolutions/Devolutions Password Manager"

# Deploy configuration file
sudo cp "/path/to/config.cfg" "/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg"

# Set proper permissions
sudo chmod 644 "/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg"
```

#### Ejemplo 5: varios Devolutions Server mediante fichero de configuración

Cree `config.cfg`:

```json
{
  "dvls": [
    {
      "name": "Production DVLS",
      "serverUrl": "https://devolutions-server-prod.company.com"
    },
    {
      "name": "Development DVLS",
      "serverUrl": "https://devolutions-server-dev.company.com"
    },
    {
      "name": "Test DVLS",
      "serverUrl": "https://devolutions-server-test.company.com"
    }
  ],
  "configs": {
    "language": "en-US",
    "shareUsageData": false
  }
}
```

Despliegue mediante script o colóquelo manualmente en una ubicación de todo el sistema.

### Resolución de problemas

#### La configuración de MDM no se aplica

El perfil de configuración está instalado pero los ajustes no se aplican.

1. **Verifique el dominio de preferencias**: asegúrese de usar `net.devolutions.authenticator`
2. **Compruebe el estado del perfil**: Preferencias del Sistema – Perfiles – Verifique que el perfil está instalado.
3. **Force la actualización del perfil**: `sudo profiles renew -type enrollment`.
4. **Compruebe si hay conflictos**: elimine cualquier fichero de configuración de usuario existente.
5. **Revise los registros**: consulte Console.app para ver errores relacionados con Devolutions Password Manager.

#### El fichero de configuración no se carga

El fichero de configuración está presente pero no se aplica.

1. Compruebe la ubicación del fichero: verifique que la ruta es correcta (`/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg`).
2. Compruebe la validez del JSON: valide la sintaxis JSON (sin comas finales, comillas correctas).
3. Compruebe los permisos: asegúrese de que el fichero sea legible por todos los usuarios (`chmod 644`).
4. Compruebe la propiedad: debe pertenecer a root o a un administrador.
5. Elimine la configuración de usuario: elimine `~/Library/Application Support/Devolutions Password Manager/Config.cfg` para permitir que se aplique la configuración del sistema.

#### La opción de bloqueo no funciona

Touch ID no se activa.

1. Comprobación de hardware: verifique que el Mac tiene hardware Touch ID
2. Configuración de Touch ID: asegúrese de que Touch ID está configurado en Preferencias del Sistema – Touch ID
3. Alternativa: el sistema recurre automáticamente a la contraseña si el hardware no está disponible
4. Compruebe los registros: revise los registros de la aplicación para detectar errores de inicialización biométrica

#### Confusión con el dominio de preferencias

No sabe qué dominio de preferencias usar.

Solución: utilice siempre `net.devolutions.authenticator` para todas las configuraciones de Devolutions Password Manager (tanto móvil como escritorio).

#### Los ajustes no se conservan

Los ajustes vuelven a los valores predeterminados después de reiniciar.

1. Configuración de MDM frente a la de usuario: los ajustes de MDM tienen la máxima prioridad y anularán los cambios del usuario
2. Configuración de usuario frente a la del sistema: la configuración del sistema solo se aplica si no existe la configuración de usuario
3. Permisos de fichero: verifique los permisos de escritura en la ubicación de la configuración de usuario

#### El área de trabajo ya existe

La importación falla con el mensaje «workspace already exists».

Explicación: el analizador de configuración detecta duplicados por la URL normalizada (sin distinción entre mayúsculas y minúsculas, y con la barra final eliminada).

1. Elimine manualmente el área de trabajo existente antes de aplicar la configuración.
2. Edite la configuración para eliminar las entradas duplicadas.
3. Elimine el fichero de configuración de usuario para forzar la reimportación de la configuración del sistema.

### Mejores prácticas

#### 1. Pruebe primero la configuración

Antes de desplegarla a todos los usuarios:

1. Cree un grupo de ordenadores de prueba en Jamf/Intune.
2. Aplique la configuración al grupo de prueba.
3. Verifique que las áreas de trabajo y los ajustes funcionan como se espera.
4. Despliegue en producción.

#### 2. Utilice MDM para flotas gestionadas

Utilice siempre MDM/preferencias gestionadas para:

* Macs gestionados con Jamf Pro
* Macs gestionados con Intune
* Cualquier entorno gestionado por MDM

Ventajas:

* Gestión centralizada
* Aplicación de políticas
* Máxima prioridad (anula las configuraciones locales)
* Enfoque estándar empresarial

#### 3. Documente la configuración

Mantenga documentación de su configuración de MDM que incluya:

* Qué áreas de trabajo están preconfiguradas
* Qué ajustes se aplican
* Experiencia de usuario esperada
* Contacto de soporte para incidencias

#### 4. Comunicación con los usuarios

Informe a los usuarios:

* Las áreas de trabajo estarán preconfiguradas
* Aún deben iniciar sesión con sus credenciales
* La configuración se realiza en el primer inicio de la aplicación
* Contacten con TI si las áreas de trabajo no aparecen

#### 5. Consideraciones de seguridad

Ajustes de seguridad recomendados:

```json
{
  "lockingOption": "biometric",
  "useBackgroundLock": true,
  "useLockWhenInactive": true,
  "lockInactivityDelay": 300,
  "clearClipboardSensitiveData": true,
  "clipboardTimer": 60,
  "shareUsageData": false
}
```

Motivo:

* Impone la autenticación con Touch ID
* Bloquea la aplicación inmediatamente al pasar a segundo plano
* Se bloquea automáticamente tras 5 minutos de inactividad
* Borra el portapapeles tras 60 segundos
* Desactiva la recopilación de datos de uso (opcional)

#### 6. Requisitos de formato de URL

Todas las URL deben:

* Incluir el protocolo (`https://`)
* Ser URL válidas y accesibles
* No terminar con una barra final (la aplicación la normalizará)

Ejemplos:

* `https://devolutions-server.company.com`
* `https://password-manager.devolutions.app`
* `devolutions-server.company.com` (falta https\://)
* `http://devolutions-server.company.com` (no se recomienda HTTP)

#### 7. Aproveche el esquema JSON de Jamf

Para los despliegues con Jamf Pro, utilice siempre el esquema JSON:

* Proporciona una interfaz gráfica fácil de usar
* Valida la configuración antes del despliegue
* Evita errores de sintaxis
* Muestra todas las opciones disponibles con descripciones

### Referencia rápida

#### Fichero de configuración mínimo

```json
{
  "dvls": [
    {
      "name": "Devolutions Server",
      "serverUrl": "https://devolutions-server.example.com"
    }
  ]
}
```

#### Dominio de preferencias

```
net.devolutions.authenticator
```

#### Ubicación de la configuración a nivel de sistema

```
/Library/Application Support/Devolutions/Devolutions Password Manager/DefaultConfig.cfg
```

#### Comprobar los ajustes de MDM

```bash
defaults read net.devolutions.authenticator
```

{% endtab %}

{% tab title="iOS" %}

#### Qué es la preconfiguración con MDM

La preconfiguración con MDM (Mobile Device Management) permite a los administradores de TI aprovisionar automáticamente áreas de trabajo de Devolutions Password Manager (Devolutions Server y Devolutions Cloud) y ajustes de la aplicación en dispositivos iOS gestionados ***antes*** de que los usuarios inicien la aplicación por primera vez.

#### Ventajas

* Despliegue sin intervención: los usuarios reciben áreas de trabajo preconfiguradas.
* Configuración coherente: garantice que todos los usuarios tengan los mismos ajustes.
* Menor carga de soporte: no es necesario guiar manualmente a los usuarios en la configuración.
* Aplicación de políticas de seguridad: preconfigure el bloqueo biométrico, los temporizadores del portapapeles, etc.

#### Cómo funciona

1. El administrador de TI configura las áreas de trabajo y los ajustes en la consola MDM (Jamf o Apple MDM).
2. MDM envía la configuración a los dispositivos gestionados.
3. El usuario inicia la aplicación por primera vez.
4. La aplicación lee la configuración de MDM y crea las áreas de trabajo automáticamente.
5. El usuario se autentica para completar la conexión (introduce las credenciales).

#### Notas importantes

* Autenticación necesaria: las áreas de trabajo preconfiguradas se crean en estado «pendiente». Los usuarios deben autenticarse (iniciar sesión) para completar la conexión.
* Solo en el primer inicio: la configuración se aplica una sola vez en el primer inicio. Los cambios posteriores requieren reinstalar la aplicación o configurarla manualmente.
* Las credenciales NO se almacenan: la preconfiguración con MDM NO incluye las credenciales de usuario. Los usuarios deben iniciar sesión con sus propias credenciales.

### Requisitos previos

* Servidor Jamf Pro o solución Apple MDM
* Devolutions Password Manager desplegado mediante MDM (App Store o interno)
* iOS 13.0 o posterior en los dispositivos gestionados
* Dispositivos inscritos en MDM

### Despliegue con Jamf Pro

#### Paso 1: crear la configuración de aplicación gestionada

1. Inicie sesión en ***Jamf Pro***.
2. Vaya a ***Mobile Device Apps*** – Busque la aplicación «Devolutions Password Manager».
3. Haga clic en la aplicación – Vaya a la pestaña ***App Configuration***.
4. Haga clic en ***Add*** para crear una nueva configuración.

#### Paso 2: configurar los ajustes

En la pantalla de configuración de la aplicación:

**Método de configuración**

* Seleccione: ***Upload specfile*** en el Jamf AppConfig Generator para obtener un formulario con interfaz gráfica (recomendado), O
* Seleccione: ***Enter configuration directly*** como plist/diccionario en Jamf Pro

**Opción A: usar el specfile de AppConfig (recomendado)**

Jamf Pro utiliza el estándar de la [comunidad AppConfig](https://www.appconfig.org/) para la configuración de aplicaciones gestionadas en iOS. El specfile proporciona un formulario con interfaz gráfica en el Jamf AppConfig Generator, donde los administradores pueden configurar los ajustes sin escribir configuración en bruto.

1. Descargue el [specfile de AppConfig de Devolutions Password Manager](https://cdnweb.devolutions.net/docs/workspace_mobile_appconfig_specfile.xml).
2. Abra el [Jamf AppConfig Generator](https://generator.appconfig.jamfresearch.com/generator).
3. Cargue el specfile y configure los ajustes mediante el formulario con interfaz gráfica.
4. Descargue el plist de configuración generado desde el generador.
5. En Jamf Pro, vaya a ***Mobile Device Apps*** – ***Devolutions Password Manager*** – ***App Configuration***.
6. Pegue el plist generado en el campo App Configuration, defina el alcance a los dispositivos de destino y despliegue.

**Opción B: configuración directa (alternativa)**

Si no utiliza el specfile, puede introducir la configuración directamente como un diccionario plist en Jamf Pro. Utilice el formato de claves planas que se indica a continuación: la aplicación transforma automáticamente las claves planas (por ejemplo, `dvls_serverUrl`, `hub_url`) en la estructura anidada interna:

```xml
<dict>
  <!–– Devolutions Server ––>
  <key>dvls_serverUrl</key>
  <string>https://devolutions-server.company.com</string>

  <!–– Devolutions Cloud ––>
  <key>hub_url</key>
  <string>https://password-manager.devolutions.app</string>
  <key>hub_organizationId</key>
  <string>your–org–id</string>

  <!–– Application Settings ––>
  <key>language</key>
  <string>en–US</string>
  <key>lockingOption</key>
  <string>biometric</string>
  <key>shareUsageData</key>
  <false/>
  <key>useBackgroundLock</key>
  <true/>
  <key>backgroundLockDelay</key>
  <integer>0</integer>
  <key>useLockWhenInactive</key>
  <true/>
  <key>lockInactivityDelay</key>
  <integer>300</integer>
  <key>useFavicon</key>
  <true/>
  <key>autoSearch</key>
  <false/>
  <key>useHubEmbeddedBrowser</key>
  <true/>
</dict>
```

Nota: el formato de claves planas (`dvls_serverUrl`, `hub_url`) se utiliza para la configuración de aplicaciones gestionadas de Jamf. La aplicación detecta automáticamente este formato y lo transforma en la estructura anidada interna. El nombre visible se genera automáticamente a partir de la URL de DVLS.

#### Paso 3: asignar a los dispositivos

1. Establezca ***Distribution Method*** en el alcance adecuado (usuarios, dispositivos o grupos).
2. Haga clic en ***Save***.
3. Envíe la configuración a los dispositivos de destino.

#### Paso 4: verificar el despliegue

En un dispositivo iOS gestionado:

1. Instale/inicie Devolutions Password Manager.
2. La aplicación debería mostrar automáticamente las áreas de trabajo preconfiguradas.
3. El usuario toca el área de trabajo – introduce las credenciales – se conecta.

### Esquema de configuración

#### Configuración de Devolutions Server

```typescript
{
  "name": string,           // Display name (required)
  "serverUrl": string,      // Full URL with https:// (required)
  "serverVersion": string   // Version like "2024.1" (optional)
}
```

#### Configuración de Devolutions Cloud

```typescript
{
  "url": string,            // Full URL with https:// (required)
  "organizationId": string, // Org ID (optional)
  "type": "business",       // Always "business" (required)
  "version": "2020"         // Always "2020" (required)
}
```

#### Ajustes de la aplicación

| Ajuste                         | Tipo     | Valores válidos                 | Descripción                                                            |
| ------------------------------ | -------- | ------------------------------- | ---------------------------------------------------------------------- |
| language                       | String   | "en-US", "fr", "de", "es", etc. | Idioma de visualización de la aplicación                               |
| **lockingOption**              | String   | "", "biometric"                 | Método de bloqueo de la aplicación                                     |
| **shareUsageData**             | Booleano | true, false                     | Compartir analíticas de uso anónimas                                   |
| **useBackgroundLock**          | Booleano | true, false                     | Bloquear cuando la aplicación pasa a segundo plano                     |
| **backgroundLockDelay**        | Entero   | 0, 60, 300, 900, 1800, 3600     | Retardo antes de bloquear cuando está en segundo plano (segundos)      |
| **useLockWhenInactive**        | Booleano | true, false                     | Activar el bloqueo automático tras inactividad                         |
| **lockInactivityDelay**        | Entero   | 30, 60, 120, 180, 240, 300      | Tiempo de espera por inactividad (segundos)                            |
| **useFavicon**                 | Booleano | true, false                     | Usar los favicons de los sitios web                                    |
| **autoSearch**                 | Booleano | true, false                     | Activar la búsqueda automática en las bóvedas                          |
| **useHubEmbeddedBrowser**      | Booleano | true, false                     | Usar el navegador integrado para la autenticación de Devolutions Cloud |
| **highlightSpecialCharacters** | Booleano | true, false                     | Resaltar los caracteres especiales en las contraseñas                  |

### Ejemplos de configuración

#### Ejemplo 1: solo un Devolutions Server

***Configuración de Jamf*** (usando la interfaz gráfica del esquema):

* Devolutions Server: añadir un servidor
  * Nombre: "Corporate DVLS"
  * URL del servidor: "<https://devolutions-server.acme.com>"
  * Versión del servidor: "2024.1"
* Instancias de Devolutions Cloud: dejar vacío
* Configuración de la aplicación: dejar los valores predeterminados

***JSON directo*** (si no se usa el esquema):

```json
{
  "dvls": [
    {
      "name": "Corporate DVLS",
      "serverUrl": "https://devolutions-server.acme.com",
      "serverVersion": "2024.1"
    }
  ]
}
```

#### Ejemplo 2: Devolutions Cloud con ajustes de seguridad

***Configuración de Jamf*** (usando la interfaz gráfica del esquema):

* ***Instancias*** de Devolutions Cloud: añadir una instancia de Devolutions Cloud
  * URL de Devolutions Cloud: "<https://password-manager.devolutions.app>"
  * ID de organización: (dejar vacío o introducir el ID de su organización)
* ***Configuración de la aplicación***:
  * Método de bloqueo: "Biometric (Touch ID/Face ID)"
  * Bloquear cuando está en segundo plano: activado
  * Retardo de bloqueo en segundo plano: "Immediately"
  * Bloqueo automático cuando está inactivo: activado
  * Retardo de bloqueo por inactividad: "3 minutes"

***JSON directo*** (si no se usa el esquema):

```json
{
  "hubs": [
    {
      "url": "https://password-manager.devolutions.app",
      "organizationId": "",
      "type": "business",
      "version": "2020"
    }
  ],
  "configs": {
    "lockingOption": "biometric",
    "useBackgroundLock": true,
    "backgroundLockDelay": 0,
    "useLockWhenInactive": true,
    "lockInactivityDelay": 180
  }
}
```

#### Ejemplo 3: varios espacios de trabajo

***Configuración de Jamf*** (usando la interfaz gráfica del esquema):

* Devolutions Server: añadir varios
  * Servidor 1: nombre "Production DVLS", URL "[https://devolutions-server–prod.company.com](https://xn--devolutions-serverprod-h15m.company.com)"
  * Servidor 2: nombre "Test DVLS", URL "[https://devolutions-server–test.company.com](https://xn--devolutions-servertest-h15m.company.com)"
* ***Instancias de Devolutions Cloud***: añadir una
  * URL de Devolutions Cloud: "<https://password-manager.devolutions.app>"
  * ID de organización: "org–abc123"
* ***Configuración de la aplicación***:
  * Idioma: "English"
  * Compartir datos de uso: desactivado

***JSON directo*** (si no se usa el esquema):

```json
{
  "dvls": [
    {
      "name": "Production devolutions-server",
      "serverUrl": "https://devolutions-server–prod.company.com",
      "serverVersion": "2024.1"
    },
    {
      "name": "Test devolutions-server",
      "serverUrl": "https://devolutions-server–test.company.com",
      "serverVersion": "2024.1"
    }
  ],
  "hubs": [
    {
      "url": "https://password-manager.devolutions.app",
      "organizationId": "org–abc123",
      "type": "business",
      "version": "2020"
    }
  ],
  "configs": {
    "language": "en–US",
    "shareUsageData": false
  }
}
```

### Solución de problemas

#### La configuración no se aplica

***Problema:*** los usuarios indican que no aparece ningún espacio de trabajo preconfigurado.

***Soluciones:***

1. ***Verifique la inscripción en el MDM:***
   * iOS: Configuración – General – VPN y gestión de dispositivos – Compruebe el perfil
2. ***Compruebe la sintaxis de la configuración:***
   * Valide la sintaxis JSON (use jsonlint.com)
   * Asegúrese de que todos los campos obligatorios estén presentes
3. ***Verifique que la aplicación esté gestionada por MDM:***
   * La aplicación debe desplegarse mediante MDM (no instalarse manualmente desde la App Store)
4. ***Vuelva a aplicar la configuración:***
   * Elimine la aplicación – Reinstálela mediante MDM – La configuración se aplica en el primer inicio

#### Los usuarios no pueden eliminar espacios de trabajo pendientes

Los usuarios se quedan con espacios de trabajo pendientes que no pueden eliminar.

* ***Novedad en la versión 2025.3.2:*** los usuarios ya pueden eliminar los espacios de trabajo pendientes
  * Desde el menú lateral: pulse de forma prolongada el espacio de trabajo – Seleccione "Remove"
  * Desde la pantalla de pendientes: pulse el botón "Remove"

#### Se aplica una configuración incorrecta

La configuración no coincide con los valores esperados.

1. ***Compruebe los tipos de datos:***
   * Booleanos: use `true`/`false` (no las cadenas `"true"`/`"false"`)
   * Enteros: use números sin comillas (por ejemplo, `60` y no `"60"`)
   * Cadenas: use siempre comillas (por ejemplo, `"en–US"`)
2. ***Verifique los nombres de los ajustes:***
   * Compruebe la ortografía (por ejemplo, `lockInactivityDelay` y no `lockInactivityTimeout`)
   * Distingue entre mayúsculas y minúsculas (use exactamente las mayúsculas mostradas en el esquema)

#### Varias instancias del mismo espacio de trabajo

Aparecen espacios de trabajo duplicados. La configuración se aplicó varias veces (se reinstaló la aplicación o cambió la configuración).

* La preconfiguración comprueba los espacios de trabajo existentes por URL
* Si existen duplicados, los usuarios pueden eliminar los adicionales desde el menú lateral

#### El bloqueo biométrico no funciona

Face ID/Touch ID no se activa.

1. ***Compruebe la compatibilidad del dispositivo***: verifique que el dispositivo dispone de hardware de Face ID o Touch ID
2. ***Compruebe la configuración de iOS***: asegúrese de que Face ID/Touch ID está configurado en Configuración
3. ***Compruebe los permisos***: la aplicación puede necesitar el permiso biométrico del usuario
4. ***Alternativa***: el sistema recurre automáticamente al código de acceso si la biometría no está disponible

### Buenas prácticas

#### 1. Pruebe primero la configuración

Antes de desplegarla a todos los usuarios:

1. Cree un grupo de usuarios/dispositivos de prueba en Jamf.
2. Aplique la configuración al grupo de prueba.
3. Verifique que los espacios de trabajo y los ajustes funcionan como se espera.
4. Despliéguela en producción.

#### 2. Use el specfile de AppConfig

Para los despliegues de Jamf Pro:

* Use siempre el specfile de AppConfig (opción A).
* Proporciona un formulario gráfico fácil de usar a través del [Jamf AppConfig Generator](https://generator.appconfig.jamfresearch.com/generator).
* Valida la configuración antes del despliegue.
* Evita errores de sintaxis.
* Muestra todas las opciones disponibles con descripciones.

#### 3. Documentar la configuración

Mantenga la documentación de su configuración de MDM, incluyendo:

* Qué espacios de trabajo están preconfigurados
* Qué ajustes se aplican
* Experiencia de usuario esperada
* Contacto de soporte para incidencias

#### 4. Comunicación con los usuarios

Informe a los usuarios:

* Los espacios de trabajo estarán preconfigurados
* Todavía deben iniciar sesión con sus credenciales
* La configuración se produce en el primer inicio de la aplicación
* Contacte con TI si los espacios de trabajo no aparecen

#### 5. Consideraciones de seguridad

***Configuración de seguridad recomendada:***

```json
{
  "lockingOption": "biometric",
  "useBackgroundLock": true,
  "backgroundLockDelay": 0,
  "useLockWhenInactive": true,
  "lockInactivityDelay": 300,
  "shareUsageData": false
}
```

***Motivo:***

* Exige la autenticación con Face ID/Touch ID
* Bloquea la aplicación inmediatamente cuando pasa a segundo plano
* Se bloquea automáticamente tras 5 minutos de inactividad
* Desactiva la recopilación de datos de uso (opcional)

#### 6. Compatibilidad de versiones

* ***Versión mínima:*** 2025.3.2 (para compatibilidad completa con espacios de trabajo pendientes)
* Devolutions Server &#x76;***ersiones:*** se recomienda Devolutions Server 2023.3+
* ***iOS:*** se requiere 13.0+

#### 7. Requisitos de formato de URL

Todas las URL deben:

* Incluir el protocolo (`https://`)
* Ser URL válidas y accesibles
* No terminar con una barra final (la aplicación la normalizará)

***Ejemplos:***

* `https://devolutions-server.company.com`
* `https://password-manager.devolutions.app`
* `devolutions-server.company.com` (falta https\://)
* `http://devolutions-server.company.com` (no se recomienda HTTP)

#### 8. Gestionar varios entornos

Para organizaciones con varios entornos (producción, desarrollo, pruebas):

* Cree perfiles de configuración de Jamf independientes para cada entorno
* Asigne el ámbito de cada perfil a los grupos de dispositivos adecuados
* Los usuarios de cada entorno obtienen automáticamente los espacios de trabajo correctos

### Referencia rápida

#### Configuración mínima

```json
{
  "dvls": [
    {
      "name": "Devolutions Server",
      "serverUrl": "https://devolutions-server.example.com"
    }
  ]
}
```

#### Dominio de preferencias

```
net.devolutions.workspace.mobile
```

#### Resumen de los pasos de despliegue

1. Descargue el [fichero de especificación AppConfig](https://cdnweb.devolutions.net/docs/workspace_mobile_appconfig_specfile.xml).
2. Súbalo al [Jamf AppConfig Generator](https://generator.appconfig.jamfresearch.com/generator).
3. Configure los ajustes mediante el formulario de la interfaz gráfica.
4. Descargue el plist generado.
5. En Jamf Pro: Mobile Device Apps – Devolutions Password Manager – App Configuration.
6. Pegue el plist, defina el ámbito de los dispositivos de destino y despliéguelo.
   {% endtab %}
   {% endtabs %}


---

# 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.devolutions.net/password-manager/es/knowledge-base/application-knowledge-base/devolutions-password-manager-pre-configuration.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.
