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.

 

  • #3 : KeyStone service d’authentification
  • #4 : Le stockage avec Openstack
  • #5 : Nova, service d’infrastructure (IaaS)
  • #6 : Neutron, réseautage as a service
  • #7 : Horizon, interface web d’administration
  •  

    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 :