Aller au contenu

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.

image

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.

image

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.

image

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).

image

  • 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".

image

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