Resumen

  • RFC 5397 añade una propiedad protegida y calculada por solicitud que entrega una URL HTTP(S) de recurso de principal o el pseudo-principal no autenticado.
  • La selección directa evita la ambigüedad inicial de una búsqueda que puede devolver al individuo y a sus grupos, pero no enumera todas las identidades ni concede derechos.
  • Una automatización defendible distingue autenticación, principal elegido, alcance del identificador, colección descubierta, privilegio evaluado, operación aceptada y resultado observado.

Una lista correcta podía ser la respuesta equivocada

RFC 3744 permitió representar usuarios y grupos como recursos WebDAV y consultar relaciones entre ellos. Su informe DAV:principal-match identifica miembros que coinciden con un principal. Esa capacidad es valiosa cuando la pregunta es relacional. Se vuelve ambigua cuando un cliente sólo quiere saber qué recurso representa al usuario HTTP que acaba de autenticarse: pueden aparecer el individuo y cada grupo al que pertenece.

Elegir el primer resultado es una política inventada por el cliente. Preferir el único elemento con forma de usuario depende de convenciones que el protocolo no promete. Comparar nombres visibles mezcla presentación con identidad.

RFC 5397 resuelve ese arranque con DAV:current-user-principal. La propiedad devuelve un DAV:href único o DAV:unauthenticated. El href debe ser HTTP(S) y formar parte de las URL declaradas en la propia representación del principal. A partir de allí, el cliente puede consultar pertenencia, URL alternativas o colecciones de aplicación.

La propiedad reduce una lista ambigua a una selección autorizada por el servidor. No dice que los grupos hayan dejado de importar. Sus reglas pueden contribuir al control de acceso. Tampoco dice que la URL sea el único nombre del sujeto. Sólo ofrece un lugar válido para continuar.

El servidor elige una representación, no una biografía

Varias URL pueden identificar el mismo recurso y varios recursos pueden corresponder al mismo principal autenticado. El servidor puede seleccionar cualquiera de los recursos válidos, aunque debería ser coherente para ese principal.

Esa libertad evita obligar a todos los repositorios a una única arquitectura. También exige disciplina al consumidor. Guardar el href como clave global convierte una decisión de representación en una afirmación de identidad que RFC 5397 nunca hizo. Una reorganización de la colección puede entonces duplicar cuentas; dos servicios con rutas parecidas pueden ser unidos por error.

El registro de evidencia debe conservar la autoridad del servicio, la solicitud, el resultado de autenticación, el href, las redirecciones y las propiedades posteriores. La equivalencia entre representaciones debe venir de la autoridad que las publica. Ni la coincidencia textual ni la continuidad de una sesión bastan para fusionar historias.

La coherencia del servidor es una señal supervisable. Un cambio inesperado puede deberse a una migración, a un error de afinidad o a un mapeo distinto de autenticación. El monitor debe abrir una pregunta, no emitir una sentencia automática de intrusión o de cuenta nueva.

El principal actual pertenece a la solicitud

La propiedad es protegida porque el cliente no la establece. Es calculada por solicitud porque depende de quién se autenticó en esa interacción. Por la misma razón no se copia ni se mueve con un documento.

Esta regla impide que una exportación convierta una observación transitoria en metadato permanente. Si un archivo fue movido por Alicia y luego leído por Bruno, el principal actual de Bruno no debe heredarse del movimiento anterior. Cada petición recibe su propia respuesta.

RFC 6764 permite que clientes CalDAV y CardDAV conserven detalles de descubrimiento exitoso. Eso mejora el arranque diario. Pero una falla persistente de conexión o autenticación debe provocar una nueva búsqueda del servicio y de la cuenta. La caché tiene procedencia y condición de renovación.

Separar esas capas facilita el diagnóstico. Puede fallar el endpoint almacenado, la credencial, el mapeo al principal, el acceso al recurso del principal o la propiedad que apunta a la colección doméstica. “Cuenta rota” no localiza ninguna de ellas.

No autenticado no significa identidad desconocida por completar

Si la autenticación no ocurrió o falló, RFC 5397 exige DAV:unauthenticated. Es un resultado explícito. El cliente no debe rellenarlo con el último principal que tuvo éxito ni deducir una ruta a partir del nombre escrito por el usuario.

RFC 6764 exige que el proveedor fuerce autenticación cuando una petición PROPFIND recupera el principal actual. Así se mantiene el vínculo entre la respuesta y quien hizo la solicitud. Si la propiedad no aparece, el proceso de configuración puede pedir la ruta al usuario. El hueco conduce a un mecanismo alternativo; no legitima una suposición invisible.

Conservar el estado no autenticado también protege la auditoría. Un servicio público puede responder a una petición sin identidad y aun así funcionar como HTTP. Esa respuesta no debe quedar atribuida a la última cuenta activa sólo porque la interfaz prefiera mostrar un avatar.

El control de acceso todavía ocurre en el destino

RFC 3744 ofrece DAV:current-user-privilege-set para conocer el conjunto de privilegios calculado por el servidor en un recurso. Esa propiedad responde a una pregunta diferente. El principal actual identifica un sujeto para continuar el descubrimiento; el conjunto de privilegios expresa qué puede hacer ese sujeto sobre una determinada meta.

Un principal puede leer su recurso y no modificar una agenda. Puede pertenecer a un grupo y aun así carecer de permiso sobre un carnet. Puede tener permiso de escritura y chocar después con una condición de versión. Ningún href elimina estas decisiones.

En CardDAV, el principal permite buscar las propiedades que señalan a las libretas. En CalDAV ocurre un encadenamiento semejante. El cliente aún debe alcanzar la colección, aplicar las condiciones del método y observar el cambio. El comprobante del descubrimiento de identidad no es el comprobante del dato final.

Una consola honesta muestra la cadena: servicio localizado, TLS validado, usuario autenticado, principal seleccionado, recurso alcanzado, colección encontrada, privilegio evaluado, operación completada y estado confirmado. El verde puede avanzar sin fingir que ya llegó al final.