El servicio de identificación (keystone) de OpenStack realiza las siguientes funciones:
- Controla los usuarios y sus permisos.
- Expone el catálogo de los servicios disponibles para ser consumidos mediante API.
Cada servicio instalado se debe registrar en Keystone, de esta forma se estará controlando el acceso a cada uno y cómo está disponible en la red.
Para comprender el servicio de identificación, es necesario entender estos conceptos:
- User / usuario
- Representación de una persona, sistema o servicio que utiliza OpenStack. El servicio de identificación permite validar los pedidos que son hechos por el usuario. Los usuarios pueden ingresar y obtener tokens para acceder a recursos. Los usuarios son asignados a un proyecto en particular y quedan contenidos dentro del proyecto.
- Credentials / credenciales
- Datos que confirman la identidad de un usuario. Por ejemplo: nombre de usuario y clave, nombre de usuario y llave API, o token obtenido del sistema de identificación.
- Authentication / autenticación
- El proceso de confirmar la identidad de un usuario. El servicio de identificación confirma un pedido validando un conjunto de credenciales que envía el usuario.
Estas credenciales son inicialmente el nombre y la clave, o el nombre de usuario y una llave de API. Cuando el usuario se valida, el sistema de identidad emite un token de autenticación que el usuario puede usar para pedidos futuros.
- Token / pase
- Es una cadena de texto alfanumérica utilizada para acceder a la API y recursos de OpenStack. Este pase puede ser revocado en cualquier momento y es valido por un período determinado.
Actualmente el sistema de identificación de OpeneStack soporta autenticación mediante token aunque la intention es soportar protocolos adicionales en el futuro. El objetivo principal es ser un servicio de integración y no se aspira a dar una solución integral de administración de identificación.
- Tenant / beneficiario
- Es un contenedor para agrupar o aislar recursos. Dependiendo del servicio, un tenant puede ser un cliente, una cuenta, una organización o un proyecto.
- Service / servicio
- Un servicio de OpenStack, como ser de cómputo (nova), para guardar objetos (swift), de imágenes (glance). El servicio presenta uno o más endpoints mediante los cuales los usuarios pueden acceder a los recursos y realizar operaciones.
- Endpoint / llegada
- Es una dirección de red accesible para acceder a un servicio, usualmente una URL. Si se utiliza una extensión de perfiles (templates), un perfil de endpoint puede ser creado, el cual representa todos los servicios que pueden ser consumidos y que están disponibles entre las regiones.
Una personalidad con un conjunto definido de permisos de usuario y privilegios para realizar operaciones específicas.
En el servicio de identificación, un token que es emitido a un usuario que incluye una lista de roles. Los servicios que están siendo invocados por un usuario determinan cómo serán interpretados los conjuntos de roles que dicho usuario tiene y a cuáles operaciones o recursos se tendrá acceso.
- Keystone Client / cliente de keystone
- Una interfaz de línea de comando para el API keystone de identificación de OpenStack. Por ejemplo, los usuarios podrán ejecutar keystone service-create y keystone endpoint-create para registrar servicios en sus instalaciones de OpenStack.
El siguiente diagrama muestra el proceso de identificación de OpenStack:
Este texto es la tradicción directa del manual de OpenStack con algunos agregados y modificaciones básicas que entiendo mejoran la comprension.