Par Panh Kone, Full stack dev @ AKIL

Qu’est ce qu’une page web dynamique

Avant le web 2.0 c’est-à-dire à l’époque du web 1.0, internet était constitué uniquement de pages statiques. Le contenu d’une telle page est le même pour tous les utilisateurs qui la consultent. Ce contenu ne change que lorsque l’administrateur faisait une mise à jour.

Avec le web dynamique les internautes ont la possibilité de consulter des pages personnalisées. En effet pour une même adresse web, chaque connecté peux voir du contenu différent. Cependant une problématique se pose. Comment identifier un utilisateur connecté à une plateforme web. C’est ainsi que nous est né le formulaire de connexion

formulaire de connexion

Grâce à ce formulaire, il est maintenant possible de savoir qui se connecte à un site web. Afin de pouvoir se connecter, l’utilisateur doit créer au préalable un compte sur ce site. L’ensemble des informations demandées varient d’une plateforme à une autre. L’essentiel des informations pour identifier (authentifier) un utilisateur reste le nom utilisateur et le mot de passe.

Qu’est-ce que l’authentification

L’authentification peut se définir comme un système qui permet de confirmer l’identité d’un utilisateur connecté à un système informatique.

Nous allons définir dans un premier temps les informations nécessaire pour mettre en place un système d’authentification. Dans cet article, nous ferons abstraction du langage de programmation.

formulaire de création d’accès

Avant de chercher à s’authentifier sur un système, l’utilisateur doit avoir au préalable créer un accès sur ce système. Cette action est faite soit par l’administrateur du système ou par le concerné lui même. Les informations indispensables (voir formulaire de création d’accès) pour un système sont:

  • l’email
  • le mot de passe
  • le nom utilisateur (optionnel)

Alors selon le langage de programmation, il faut trouver le moyen de sauvegarder de manière permanente ( dans une base de données) ces informations. Pour des raisons de sécurité le mot de passe ne doit jamais être enregistré en claire tel que renseigner par l’utilisateur. Il existe dans ce cas des algorithmes de cryptage. Les différents algorithme de hachage de mot de passe sont légion.

  • sha512 utilisé par symfony
  • Bcrypt
  • MD5

Après avoir créé ses accès sur le SI (système informatique ) concerné, à chaque fois qu’il doit s’y connecté, il doit renseigner les informations qui attestent son identité (voir formulaire de connexion). Pour une fiabilité de l’authentification, l’utilisateur doit être identifiable par une information qui lui est unique. Par exemple l’email ou le nom utilisateur. Quant au mot de passe, qui est indispensable, il confirme l’identité de l’utilisateur du fait de son aspect secret.

Un mot de passe non secret est une porte sans serrure

Techniquement le nom utilisateur ou l’email renseigné dans le formulaire de connexion est recherché dans la bd. S’il existe le mot de passe saisie est crypté suivant le même algorithme utilisé à la création des accès, puis comparé à celui existant dans la bd. En cas de conformité, l’authentification a réussi et l’utilisateur a accès au SI. Sinon l’authentification a échoué et est notifiée à l’utilisateur; il n’a pas accès au SI.

Qu’est ce que l’autorisation

L’autorisation est la consequence immediate de l’authentification.

Le besoin de faire une distinction entre les utilisateurs d’un SI s’est vite imposé aux fournisseurs de solutions informatiques. En effet pour la stabilité du système certaines actions critiques ne doivent pas être à la portée de tous. C’est ainsi qu’est apparu le rôle d’administrateur.

L’autorisation peut indiquer un système permettant de vérifier la capacité (permission) d’une catégorie d’utilisateurs à effectuer une action ou à avoir accès à une information sensible sur un SI. La répartition des utilisateurs selon leur niveau d’habilitation (rôle) est nécessaire pour parler de système d’autorisation.

Différents type d’habilitation dans un SI

Comme l’image l’illustre, un système d’autorisation peut inclure plusieurs aspects. Son niveau de complexité d’implémentation et de robustesse est croissant avec les paramètres considérés. Le plus simple reste l’utilisation des rôles.

Utilisation des rôles dans le système d’autorisation.

Pour parvenir à une autorisation basée sur le rôle de l’utilisateur, celui doit être enregistré dans la bd. J’utilisera un personnage de conte Tagbana pour mon illustration. Notre personnage du jour est POL qui désigne le lièvre. Dans nos conte , notre personnage est considéré comme l’animal le plus intelligent.

C’est la fête dans la savane et le roi donne réception. A la porte deux buffles, les plus intrépide qui soit dans la savane ( notre système d’authentification) avec pour mission, ne laisser passé que les animaux à quatre pattes. PÔL sans difficulté est accepté à l’entré. Sur les cartes d’invitation les organisateurs ont pris le soin d’indiquer les tables de chaque invité. Notre héros du jour très futé s’étais aperçu que sont voisin la panthère serait à la table royale et lui à table invité simple. Alors il a falsifié sa carte en y inscrivant table royale. L’installation des invités a été confié à TOPE ou TCHEPE qui désigne l’araignée, réputée pour sont intelligence. Il fera ici office de notre système d’autorisation. TOPE avait trois tables sur lesquelles disposer les invités. La table royale était réservée uniquement au félin comme le voisin de notre ami PÔL, la panthère. La table noble recevait, les animaux dont la longueur de patte est supérieure à 20 cm du sol. Et la dernière celle de notre ami regroupait tous les autres invité. Nos amis la panthère et le lièvre se dirigèrent vers la table royale quand TOPE interpella PÔL en lui disant qu’il n’a pas accès à table royale. PÔL n’hésita pas à montrer sa carte falsifiée où il est écrit table royale. Rien y fit TOPE ne se fiait pas aux inscriptions sur la carte mais sur ses propres critères sur les invités.

Comme illustré le système refuse ou accorde l’accès à une ressource sur la base des informations enregistrées sur l’utilisateur. Pour sa mise en place il faut ajouter aux infos de l’utilisateur son rôle. Il est renseigné soit par l’utilisateur lui-même ou par l’administrateur du système (automatiquement). A chaque fois qu’un utilisateur authentifié veut effectuer une action, le système récupère sont rôle et le soumet à un algorithme qui se charge de vérifier si l’action demandée est permise pour ce rôle. Si oui l’action est réalisée, si non un message d’erreur est envoyé.

Conclusion

L’authentification permet au SI de répondre a la question ‘’Qui est tu? ‘’. Quand à l’autorisation, elle répond par oui ou non à la question de l’utilisateur ‘’Puis-je avoir accès à cette ressource?’’

Dans les articles à venir, nous montrerons la mise en oeuvre technique de ces concepts avec PHP et Symfony.

%d blogueurs aiment cette page :