Se obtiene una ID de sesión de autenticación del servicio de acceso al enviar una solicitud POST. Este ID de sesión de autenticación puede ser usado por todos los demás servicios como una credencial de identidad. El ID de autenticación queda invalidado después de un período de tiempo de espera configurado por la propiedad de tiempo de espera de la sesión del usuario. Normalmente, el valor predeterminado es de 15 min. Se puede usar una solicitud DELETE para cerrar sesión e invalidar el ID de la sesión.
No se requiere una sesión de autenticación, ya que los clientes pueden volver a enviar la información de autenticación con cada solicitud. Puesto que las operaciones de la API de RESTful no tienen estado, solo se almacena el ID de autenticación.
Una solicitud vacía POST solicita una sesión nueva. Cuando es correcta, se devuelve un estado HTTP de 201 junto con un objeto JSON que tiene una sola propiedad de “acceso” que contiene una lista de servicios de la API de RESTful disponibles.
Ejemplo de solicitud de inicio de sesión:
POST /api/access/v1 HTTP/1.1 Host: zfs-storage.example.com X-Auth-User: root X-Auth-Key: letmein-xxx
Un inicio de sesión satisfactorio devuelve un HTTP Status 201 (Created), además de una ID de sesión a través del encabezado X-Auth-Session HTTP. El cuerpo de la respuesta contiene una lista de servicios a los que se puede acceder mediante este inicio de sesión.
Encabezado de la respuesta:
HTTP/1.1 201 Created X-Auth-Session: guigqpQRE4g89ngb Content-Type: application/json Content-Length: 378 X-Zfssa-Access-Api: 1.0 { "access": { "services":[{ ... }] } }
Una solicitud vacía DELETE envía una solicitud para cerrar la sesión e invalidarla.
Ejemplo de solicitud de cierre de sesión:
DELETE /api/access/v1 HTTP/1.1 X-Auth-Session: guigqpQRE4g89ngb
Ejemplo de respuesta:
HTTP/1.1 204 No Content X-Zfssa-Access-Api: 1.0