Identity Service avec Keystone

Keystone est un projet d’Openstack qui permet d’offrir une gestion de l’identité et des autorisations d’accès pour les différents services d’OpenStack. L’API keystone utilise une API RESTful, donc toute demande d’authentification ou de communication avec Keystone doit être effectuée en utilisant le protocole http ou http via SSL (https).

Une fois installé, Keysone est configuré via le fichier principal de configuration /etc/keystone/keystone.conf.

1. Concept

Voici les concepts clés de KeyStone :

User : peut-être une  personne, un système ou un service. Un utilisateur dispose obligatoirement d’un login, et peut se voir attribuer un Token pour accéder à une ressource. Un utilisateur peut être affecté  à un ou plusieurs Tenants/Projets.

Les Credentials : les données qui permettent d’authentifier un utilisateur ou un service, cela peut être sous forme de :

  • Login et Mot de passe
  • Login et une clé
  • Token qui vous a été délivré.

Authentication : Le gestionnaire d’identité d’Openstack confirme qu’une requête est faite par l’utilisateur prétendant avoir fait la demande en validant un jeu de revendications que l’utilisateur effectue. Après une première confirmation keystone génère et délivre un Token que l’utilisateur utilise comme une carte d’identité.

Token : du texte arbitraire (chiffres e lettres) qui est utilisé pour accéder aux ressource. Chaque token possède un champ qui décrit les différents services qui lui sont accessible. Un Token a une durée de vie et peut être révoqué à tout moment.

Tenant (ou projet) : est un conteneur pour grouper les services ou les utilisateurs.

Service : les services Openstack tel que : Compute (Nova), Object Storage (Swift), Image Service (Glance), Netwok (Quantum), Identity (Keystone) … Les services fournissent un ou plusieurs Endpoints.

Endpoint : Une adresse réseau, généralement décrite par une URL, où un service peut être accessible.

Role : Une personnalité qui assume un utilisateur lors de l’exécution d’un ensemble d’opération. Un rôle comprend un ensemble de droits et privilèges. Un utilisateur assumer ce rôle et hérite ces droits et ces privilèges.

2. Gestion des utilisateurs

Les trois principaux concepts de la gestion des utilisateurs sont les suivants : User, Tenants, Roles.
Le rôle définie les autorisations qu’un utilisateur peut effectuer dans un Tenant donné.
Avec Keystone on peut associer plusieurs rôles à un utilisateur dans différents tenant, et un utilisateur peut avoir plusieurs rôles dans un même tenant comme le montre la figure ci-dessous.

keystone-schema

Chaque service possède sa propre politique de control d’accès (elle se trouve dans /etc/[Service_CodeName]/policy.json), elle permet de contrôler ce qu’un rôle peut effectuer  sur un service donné.

3. Gestion des Services

Les deux principaux concepts de la gestion des services sont les Services et les Endpoints. Chaque service possède son propre utilisateur dans keystone. Par exemple, l’utilisateur quantum pour le service réseau, cet utilisateur est utilisé par le service pour s’authentifier auprès de keystone. Les utilisateurs service appartiennent à un seul Tenant « Service » et ils ont tous le rôle « admin ».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


4 × = 28

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>