Saltar a contenido

Backend de autenticación de usuarios

Watcher puede verificar el usuario y la contraseña mediante un backend HTTP externo. Introduzca su dirección HTTPS en el campo de autenticación externa de Configuraciones. En la API de configuración, este campo es auth.external_auth.

Campo de autenticación externa en la configuración de Watcher

Dirección del controlador externo en la configuración de autenticación.

El backend solo verifica las credenciales. Configure las Organizaciones y el acceso a las cámaras en Watcher. Una respuesta correcta del backend puede crear una cuenta que no exista, pero no le asigna permisos organizativos ni una función administrativa.

Al iniciar sesión con usuario y contraseña, Watcher envía una solicitud GET a la dirección indicada y añade los parámetros login y password. Por ejemplo:

GET /auth?login=resident-example&password=ExamplePassword

Los parámetros se codifican como una cadena de consulta. Utilice HTTPS y excluya la contraseña de los registros de solicitudes del servicio externo y sus proxies.

El resultado depende del estado HTTP:

  • 200 — se aceptan las credenciales. Watcher crea el usuario si no existe o actualiza el hash local de la contraseña del usuario existente.
  • 403 — se rechazan las credenciales. Para un usuario existente, el hash local se sustituye por un valor no válido; después no podrá iniciar sesión con la contraseña local anterior.
  • Otro estado, incluido 404 — Watcher verifica el usuario y la contraseña en la base de datos local.
  • Error de conexión o tiempo de espera agotado — Watcher también utiliza la base de datos local. El tiempo de espera de la solicitud HTTP es de dos segundos.

Un rechazo externo no cambia el campo disabled. Un usuario desactivado administrativamente no puede iniciar sesión aunque la respuesta del backend sea correcta.

Si el servicio externo no está disponible, la verificación local utiliza la última contraseña guardada correctamente. Una verificación externa correcta actualiza la contraseña en Watcher. Con esta integración, gestione los cambios de contraseña en el sistema externo; de lo contrario, el siguiente inicio de sesión correcto mediante el backend sustituirá la contraseña local.

Ejemplos de solicitudes

Compruebe el contrato del controlador externo por separado de Watcher. Indique un usuario de prueba y no escriba la contraseña en el registro:

curl --silent --output /dev/null --write-out '%{http_code}\n' \
  --get 'https://auth.example.com/auth' \
  --data-urlencode 'login=resident-example' \
  --data-urlencode 'password=ExamplePassword'

Para un inicio de sesión permitido se espera 200; para un rechazo explícito, 403. Después, inicie sesión en Watcher mediante la interfaz o POST /watcher/client-api/v3/login con autenticación Basic y compruebe el acceso a las cámaras asignadas previamente.

Al comprobar la tolerancia a fallos, desactive por separado el acceso al backend de prueba y compruebe que la contraseña local produce el resultado esperado. Pruebe también una contraseña incorrecta: una respuesta 404 del servicio externo activa la verificación local y no equivale a una denegación.