Cómo usar Bitwarden para proteger Active Directory con contraseña

Bitwarden es una herramienta fantástica para administrar contraseñas. Tiene aplicaciones para cada plataforma, un complemento de navegador y una versión autoalojada. Además, ofrece algunos trucos geniales de administración de contraseñas como carpetas y colecciones. Una de mis características favoritas es que mantiene un historial de tus contraseñas antiguas, que es una gran característica para los usuarios empresariales.

Si eres un usuario empresarial, es probable que desees alojar y sincronizar en Bitwarden a tus usuarios con un directorio de personal. Mi organización utiliza Active Directory (AD), que es el estándar para directorios de usuarios y se integra a la perfección con los escritorios de Windows. También lo necesito para trabajar con nuestras herramientas de código abierto, y en este artículo te compartiré la salsa secreta para sacar el mayor provecho.

BWDC

La herramienta que le permite hacer esto es Bitwarden Directory Connector (BWDC). Si realizas una búsqueda en Google, no encontrarás mucha información sobre el uso de BWDC con AD en Linux. El blog de Bitwarden es un excelente recurso si estás utilizando la versión de Windows, pero no te ayudará a integrarlo en tu entorno Linux.

Puedes encontrar instrucciones para hacerlo en la página GitHub de Bitwarden, pero no son muy claras. Entonces, aquí te explicaré cómo lograr que tu versión autoalojada de Bitwarden en Linux se integre con el Active Directory (AD) de tu empresa. Con suerte, brindará resultados más fructíferos para los futuros buscadores de Google que busquen esta información.

En mi configuración, tanto Bitwarden como Active Directory están alojados en AWS, el primero en una instancia EC2 y el segundo en AWS Simple Directory. El contenedor docker de Bitwarden se instala en el directorio de inicio de un usuario llamado bitwarden.

Las instrucciones de Bitwarden hacen que esto sea fácil de configurar. Pero configurar BWDC no es tan claro, así que intentaré solucionarlo aquí.

Instalar BWDC

Comencemos configurando un directorio para BWDC, luego descargaremos el archivo ZIP y lo descomprimiremos:

(Al momento de escribir este post, BWDC 2.6.2 era la versión actual. Eso puede cambiar, así que asegúrate de descargar la última versión).

Ahora tendrás un archivo binario llamado bwdc y un archivo llamado keytar.node; debes dejar ambos archivos justo donde están.

A continuación, debes editar el perfil del usuario bitwarden:

y agrega las líneas:

Debes cerrar sesión y volver a iniciarla para elegir la nueva configuración, o puede obtener el perfil con:

La línea BITWARDENCLI_CONNECTOR_PLAINTEXT_SECRETS = true le dice a BWDC que no use ningún almacén de claves basado en escritorio. Dado que este es un servidor y es poco probable que tenga un escritorio instalado. Por lo tanto, deberás mantener la contraseña en texto sin formato (pero tomarás precauciones para protegerla más adelante). La segunda línea establece una ruta al binario bwdc para que pueda ejecutarse desde cualquier directorio en el que se encuentre.

Configurar BWDC

Una vez que BWDC esté instalado, configúralo para conectarse a tu instancia de Bitwarden:

Si configuras BWDC siguiendo los pasos anteriores, tu información de configuración se almacenará en /home/bitwarden/.config/Bitwarden Directory Connector/data.json. Este archivo contiene el ID de aplicación y el token de acceso. Estas son las credenciales de inicio de sesión para tu instancia de Bitwarden. ¿Pero qué hay de Active Directory? Puedes agregarlo manualmente editando tu archivo data.json (supongo que estás en un servidor y estás usando Vi):

Debes agregar lo siguiente justo debajo de la línea appId:

Revisión

Si revisas esto, verás que necesitas cambiar varios valores en esta entrada, incluidos userFiltergroupPath y userPath. (Asumiré que estás familiarizado con LDAP y AD y sabes cuáles deberían ser esos valores para tu instancia).

Debes mantener la parte CN=bitwarden para el grupo de Bitwarden AD que crearás más adelante. El otro valor que necesitas cambiar es organizationID, que puedes encontrar en tu directorio bwdata como el nombre de uno de los archivos JSON. Debes listar los archivos:

Esto debería devolver una lista del directorio, que contiene un solo nombre de archivo en el formulario <organization id>.json . El nombre de archivo en sí es el ID de tu organización. Insértalo en la línea organizationID en el código anterior.

Una vez que tu data.json tenga derecho de archivos, te recomiendo encarecidamente  hacer una copia de seguridad de este archivo . Parece que hay un problema que restablece este archivo a la configuración predeterminada si BWDC encuentra un problema con él. Esto significa que, si inocentemente realizas un cambio en el archivo y hay un error, perderás toda la configuración.

A continuación, prueba la conectividad a tu AD como usuario bitwarden:

Esto debería devolver un registro de los grupos en tu AD. Para proteger tu contraseña, debes configurar los permisos en ese archivo para que solo el usuario bitwarden pueda leerlo:

Configurar tu grupo

Ahora debes agregar un grupo a tu AD (mi grupo se llama bitwarden), donde agregarás y eliminarás usuarios que necesitan acceso a Bitwarden. Este grupo es necesario porque, si no filtras a los usuarios en función de este grupo, BWDC intentará utilizar TODOS los usuarios en tu AD. Si la cantidad de usuarios es mayor de lo que permite tu licencia de Bitwarden, BWDC fallará sin notificaciones. ¡Te odiarás por mucho tiempo … como lo hice yo!

Una vez que el grupo está configurado y tiene al menos un usuario, vuelve a ejecutar la prueba. Deberías ver la dirección de correo electrónico de tu usuario en la salida.

Ahora es el momento de sincronizar. Una vez que sincronices, cualquier usuario que aparezca en el grupo Bitwarden se agregará a Bitwarden y se les enviará un correo electrónico invitándolos a registrarse. Trabajando como usuario bitwarden, debes sincronizar los directorios con:

removeDisabled está establecido en true en el archivo data.json. Por ello puedes configurar una tarea en cron para mantener a los miembros del grupo bitwarden. Asimismo, a los usuarios de Bitwarden en sincronización constante para que cualquier cambio que realices en tu AD se refleje inmediatamente en tu Instancia Bitwarden. Debes agregar lo siguiente a tu /etc/crontab:

Una vez que tengas activada la sincronización automática, tendrás una lista completa de todos tus grupos de AD en Bitwarden. A partir de ahí, es solo cuestión de asignar un grupo a una colección y luego agregar miembros a grupos en tu AD. Los usuarios serán asignados automáticamente a las colecciones de contraseñas correctas y verán las contraseñas que necesitan.

Problemas potenciales

Finalmente, te contaré algunas trampas en las que caí al configurar esto. Primero, ten en cuenta el Grupo primario de AD. Es posible que hayas configurado esto para un usuario si alguno de tus sistemas Linux u otros sistemas POSIX obtiene credenciales de inicio de sesión de AD. Parece que AD no incluirá un usuario en los resultados de búsqueda de grupo si ese grupo se establece como el grupo primario. Esto podría eliminar a un usuario de un grupo y, por lo tanto, perder el acceso a una colección.

En segundo lugar, cuando necesitas eliminar un usuario, puedes pensar que eliminar una cuenta del grupo en AD eliminaría al usuario … ¡mal! Parece que Bitwarden mantiene cierta información del usuario en su base de datos. Esto se volvió dolorosamente obvio cuando eliminé mi propia cuenta y luego descubrí que ya no podía iniciar sesión después de volver a crearla. Esto porque la autenticación multifactor (MFA) todavía estaba activa y el token había expirado, bloqueándome efectivamente. Debes decirle explícitamente a Bitwarden que lo elimine de la base de datos. Para hacerlo, debes ir a la URL:

Debes ingresar la dirección de correo electrónico con la que se registró el usuario. Recibirán un correo electrónico indicándoles que hagan clic en un enlace para confirmar que eliminen la cuenta. Una vez hecho esto, se puede volver a colocar al usuario en el grupo AD de Bitwarden. Después deben volver a realizar el proceso de inicio de sesión.

Ahora ya sabes cómo hacer que tu Bitwarden autoalojado trabaje con tu AD. Creo que todavía experimentarás algunos problemas, pero con un poco de paciencia y retoques con la configuración, funcionará. ¡Simplemente no juegues demasiado con él una vez que esté funcionando!