Los Application Credentials proporcionan una forma segura y eficiente de autenticar sin tener que utilizar las credenciales de usuario directas (usuario y contraseña). Son útiles para mejorar la seguridad al limitar el acceso a ciertos servicios o recursos específicos, y se utilizan principalmente en entornos automatizados o de integración.
Los Application Credentials te permiten interactuar con los servicios de Soax sin la necesidad de manejar las credenciales tradicionales. Estas credenciales se utilizan para acceder a los recursos de forma más controlada y segura.

Las Application Credentials permiten autenticar servicios sin exponer credenciales principales.
Advertencia de compatibilidad con python-openstackclient
Si la versión instalada es 7.x.x o superior, algunos comandos fallarán (para obtener la versión, por ejemplo, puede emplear pip list | grep -i openstack).
Solución recomendada
Desinstalar la version actual no soportada ->sudo pip uninstall python-openstackclient
Instalar el cliente de openstack de la versión soportada ->sudo pip install python-openstackclient==6.2.0
La versión 6.2.0 es estable y compatible con nuestro entorno actual.
En primer lugar se debe configurar un archivo clouds.yaml donde se especificará desde que usuario se van a crear las diferentes application credentials.
clouds:
nombre_autenticador:
auth:
auth_url: <url_keystone>
username: <nombre_usuario>
password: <contraseña_usuario>
project_name: <nombre_proyecto>
user_domain_name: <nombre_dominio>
project_domain_name: <nombre_dominio>
region_name: <nombre_region>
interface: public
identity_api_version: 3
block_storage_api_version: 3.64
image_api_version: 2
Para obtener la URL del keystone de la plataforma, podéis hacerlo desde la parte de API REST accesible desde Soax en la parte superior derecha al hacer click en el usuario.
Una vez tenemos el archivo de configuración creado, podemos acceder a crear application credentials como usuario.
Si se utiliza para autenticar ya sea un usuario o un application credentials vinculado a un usuario para autenticar, se deberá solicitar previamente al equipo de soporte un usuario sin MFA habilitado.
En el caso de necesitar infromación de contacto del equipo de soporte de Oasix visite la siguiente página:
Desde la consola, podemos lanzar la creacion de un application credentials con el siguiente comando:
openstack --os-cloud <nombre_autenticador> application credential create <nombre_application_credential>
Una vez lanzamos el comando, Keyston nos devolverá los detalles del application credential recién creado donde se indican los siguientes campos:

Se recomienda guardar el secret ya que solo se muestra al crear el application credential.
Una vez se crea un application credential y se pierde la clave secreta, es imposible recuperarla. Se debe crear otro application credential idéntico que provoca el cambio de id y secret del recurso.
Se ofrecen configuraciones adicionales que permiten personalizar su uso según las necesidades específicas del proyecto o aplicación.

Las application credentials pueden limitarse a roles específicos que el usuario creador ya posea. Esto permite restringir las capacidades de las credenciales, asegurando que solo tengan acceso a las acciones necesarias dentro del proyecto.
No se pueden asignar roles que no tenga el usuario de origen.
Es posible definir un tiempo de expiración para las credenciales, lo que limita su duración y reduce riesgos en caso de filtración.
Si no se especifica una fecha, las credenciales no expiran automáticamente.
Define si las application credentials tienen restricciones en su uso. Puede estar configurada de dos formas:
Configurar con cuidado para evitar riesgos de seguridad en entornos sensibles.
Una vez hemos creado nuestro application credential a raiz de nuestro usuario o application credential, podememos guardar las claves de acceso en el mismo fichero clouds.yaml de la siguiente forma:
clouds:
test:
auth_type: v3applicationcredential
auth:
auth_url: <url_keystone>
application_credential_id: <pegar_id_recurso>
application_credential_secret: <pegar_clave_sercreta_recurso>
region_name: Region
interface: public
identity_api_version: 3
block_storage_api_version: 3.64
image_api_version: 2
Una vez tenemos el acceso guardado, podremos acceder de la siguiente forma para listar los servidores creados:
opensatck --os-cloud test application credential list