OpenStack #3 : Keystone, service d’authentification

keystone

Présentation de Keystone :

Keystone est le service d’authentification d’Openstack.

L’accréditation (possibilité d’envoyer des commandes OpenStack) est basée sur trois éléments :

  • Un nom d’utilisateur (et son jeton)
  • Un tenant (une entreprise cliente)
  • Un rôle

Un utilisateur peut donc avoir tous les droits sur un client (tenant) précis, il ne les a pas forcément sur les autres clients. Le super admin est l’utilisateur admin du tenant admin qui peut créer et supprimer des tenants.

 

 

LDAP ou pas LDAP

 

Le service d’authentification d’OpenStack peut être basé sur d’autres backends, par exemple LDAP.

C’est à éviter, d’une part, parce qu’il n’y a pas de raison pour ça (a priori, nul besoin d’avoir beaucoup d’utilisateurs dans OpenStack, juste un admin par tenant), d’autre part parce que c’est une grosse galère (les attributs LDAP y compris si c’est un AD doivent être modifiés, donc danger).

Si vraiment vous y tenez, la bonne pratique est de présenter un LDAP léger asynchrone et en lecture seule venant du LDAP d’entreprise.

 

Se connecter avec un user

Avec RedHat RDO

A la fin de l’installation par RDO, un fichier /root/keystonerc_admin a dû être créé avec les variables d’environnement nécessaires.
Il suffit de le sourcer :

. /root/keystonerc_admin

 

Avec Debian

L’installeur Debian vous demande d’indiquer le mot de passe de l’administrateur pendant l’installation.

 

On teste :

Pour se connecter, il faut ajouter ces variables d’environnement (remplacer le username, le tenant name et de mot de passe par les votres) :

export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=lemotdepassedelamort
export OS_AUTH_URL=http://W.X.Y.Z:5000/v2.0/
export OS_REGION_NAME=RegionOne
export PS1='[\u@\h \W(ks_admin)]\$ '

 

keystone token-get

Commandes keystone de base

Lister les users, tenants et roles :

keystone user-list
keystone tenant-list
keystone role-list

 

Créer un utilisateur, créer un tenant.
Définir un rôle pour l’utilisateur.

 

keystone user-create --name=superman
keystone tenant-create --name=MONCLIENT
keystone user-role-add --user=superman --role=admin --tenant=MONCLIENT

Et pour tout péter :

keystone user-delete superman
keystone tenant-delete MONCLIENT

Sur le même sujet :