Application Credentials
API - CLI Types d'identifiants Identity
Pour l'accès via CLI/API, OpenStack propose selon l'implémentation différentes options, plus ou moins adaptées selon vos besoins. Les types d'identifiants suivants sont actuellement disponibles.
A) Application Credentials
Les Application Credentials de Keystone permettent aux utilisateurs de générer leurs propres identifiants OpenStack adaptés aux applications et de s'authentifier auprès du service d'identité sans devoir exposer leurs identifiants principaux.
Avantage : Les Application Credentials peuvent être facilement révoqués ou modifiés sans interrompre l'application, ou peuvent même disposer d'une durée d'expiration automatique.
Inconvénient : Ils sont liés au compte utilisateur qui a créé les Application Credentials. Si un collaborateur quitte l'entreprise, la simple désactivation du compte utilisateur ne suffit pas. Ses Application Credentials doivent également être supprimés. Vous trouverez plus d'informations sur les Application Credentials sous Créer des Application Credentials.
B) Local User - L'accès API via Local Keystone Password n'est pas pris en charge.
C) Download current user's session token - Les utilisateurs ayant activé l'OTP (2 facteurs - OneTimePassword) peuvent désormais télécharger très facilement le User Session Token actuel, valable 24 heures, via la gestion OpenStack (Horizon).
Pour ce faire, connectez-vous à la gestion OpenStack (Horizon).
Cliquez ensuite sur la petite flèche dans le coin supérieur droit et sélectionnez Export credentials.

Dans la fenêtre suivante, sélectionnez Current user's session token et le format d'export souhaité (YAML ou RC) et confirmez avec Download.

Note
RC : Exporte les variables d'environnement Bash sous forme de fichier source.
YAML : Est exporté sous forme de fichier yaml qui doit être placé dans le répertoire ~/.config/openstack et peut ensuite être utilisé via la variable d'environnement OS_CLOUD ou le paramètre CLI --os-cloud. :::
Tip
Le "Current user's session token" est valable 24 heures et peut être utilisé pour l'API, le CLI ou même Terraform. Passé ce délai, le jeton expire et l'utilisateur peut obtenir un nouveau jeton via Horizon.
D) Federated user
Les utilisateurs qui n'ont pas activé l'OTP peuvent, en plus des méthodes A) et C), également choisir la méthode Federated user et seront alors invités à saisir leur mot de passe Keycloak lors d'un appel API / CLI. Terraform ne prend toutefois pas en charge cette méthode.
Note
Selon la politique de mot de passe définie, il se peut que tous les types d'identifiants ne soient pas autorisés. Si, par exemple, l'OTP est obligatoire, le type d'identifiant D) Federated user n'est actuellement pas possible.
Créer des Application Credentials
Les Federated Login Credentials d'un utilisateur ne peuvent pas être utilisés dans OpenStack pour l'accès depuis un outil CLI. La solution à ce problème réside dans les Application Credentials de Keystone, que l'utilisateur peut créer après s'être connecté à OpenStack Horizon et utiliser ensuite directement pour les outils CLI. Les Application Credentials permettent aux utilisateurs de générer leurs propres identifiants OpenStack adaptés aux applications et de s'authentifier auprès du service d'identité sans devoir exposer leurs identifiants principaux.
Les Application Credentials peuvent être facilement révoqués ou modifiés sans interrompre l'application, ou peuvent même disposer d'une durée d'expiration automatique.
Veuillez naviguer dans OpenStack Horizon vers Identity => "Application Credentials" et cliquer sur Create Application Credentials.

Saisissez maintenant un nom et une description pour l'Application Credential et cliquez sur "Create Application Credential".
- Les Application Credentials sont créés pour le projet actuellement sélectionné.
- Vous pouvez définir votre propre secret, sinon un secret sera généré pour vous.
- Vous pouvez éventuellement doter l'Application Credential d'une date et d'une heure d'expiration.
- Vous pouvez sélectionner un ou plusieurs rôles pour ces Application Credentials. Si vous n'en sélectionnez aucun, tous les rôles que vous avez attribués dans le projet actuel seront appliqués. Pour plus d'informations sur les rôles, voir Application Credential Roles.
Important
Si vous avez besoin de l'Application Credential pour créer un cluster Kubernetes, vous devez cocher "Unrestricted (dangerous)" pour obtenir les autorisations nécessaires (création de Trusts supplémentaires).

- Veuillez noter l'ID et le Secret de l'Application Credential créé afin de les utiliser dans votre outil CLI.
- Selon l'utilisation ultérieure, vous pouvez également télécharger le fichier "clouds.yml" ou "openrc" (Legacy), qui contient toutes les informations.
Important
Le Secret de l'Application Credential ne sera plus disponible après la fermeture de cette page, vous devez donc le noter maintenant ou télécharger le fichier clouds.yaml ! Si vous le perdez, vous devez générer une nouvelle Application Credential.
- Cliquez ensuite sur "Close".

Exemple de fichier clouds.yaml
# This is a clouds.yaml file, which can be used by OpenStack tools as a source
# of configuration on how to connect to a cloud. If this is your only cloud,
# just put this file in ~/.config/openstack/clouds.yaml and tools like
# python-openstackclient will just work with no further config.
# If you have more than one cloud account, add the cloud entry to the clouds
# section of your existing file and you can refer to them by name with
# OS_CLOUD=openstack or --os-cloud=openstack
clouds:
openstack:
auth:
auth_url: https://keystone.service.ewcs.ch/v3
application_credential_id: "003295c34794404..."
application_credential_secret: "-15dgWMA19Bd5q..."
region_name: "ch-zh1"
interface: "public"
identity_api_version: 3
auth_type: "v3applicationcredential"
openstack-ge1:
auth:
auth_url: https://keystone.service.ewcs.ch/v3
application_credential_id: "003295c34794404..."
application_credential_secret: "-15dgWMA19Bd5q..."
region_name: "ch-ge1"
interface: "public"
identity_api_version: 3
auth_type: "v3applicationcredential"
Une entrée cloud par région
openstack pointe vers la région 1 (ch-zh1), openstack-ge1 vers la région 2 (ch-ge1). Sélectionnez une entrée avec OS_CLOUD=openstack-ge1.
OS_REGION_NAME remplace region_name si les deux sont définis.
Le fichier contient le secret : limitez l'accès avec chmod 600 ~/.config/openstack/clouds.yaml.
Application Credential Roles
Les rôles sélectionnables dans les Application Credentials signifient :
| Rôle | Description |
|---|---|
| _member_ | Rôle par défaut qui autorise l'accès à un projet |
| member | Duplicata de _member_ encore requis pour certains appels API |
| heat_stack_owner | Le rôle est autorisé à créer/démarrer des Heat Stacks |
| reader | Peut lire les Secrets dans Barbican |
| creator | Peut créer des Secrets dans Barbican, par ex. pour le chiffrement côté serveur |
| load_balancer_member | Peut créer des load balancers |