Quâest-ce que le protocole CAS (Central Authentication Service)Â ?
CAS, ou Central Authentication Service, est un protocole dâauthentification unique (SSO) qui permet aux sites web dâauthentifier les utilisateurs.
Les identifiants de connexion ne sont utilisés quâune seule fois pour lâauthentification auprès de multiples applications, sans jamais révéler le mot de passe sécurisé. Lâapplication qui doit autoriser lâutilisateur redirige ce dernier vers un serveur centralisé approuvé, le serveur CAS.
Le protocole CAS permet dâauthentifier des applications web non approuvées exigeant un ticket de service pour lâaccès. CAS est un outil qui sert à authentifier un utilisateur, ce qui ne revient pas à autoriser ce dernier à accéder à une application. Lâautorisation est propre à lâapplication concernée.
Après la configuration initiale, lâapproche CAS peut être simple à gérer et à implémenter sur un vaste réseau dâordinateurs. Elle offre aux utilisateurs commodité, cohérence ainsi quâun niveau de sécurité élevé.
Fonctionnement de CAS
CAS peut fournir une solution dâauthentification unique (SSO) pour plusieurs applications web afin dâoffrir une expérience utilisateur plus fluide. Le serveur dâauthentification centralisé, c.-à -d. le serveur CAS, représente une source fiable qui peut être utilisée à des fins dâauthentification.
Le flux de protocole et dâauthentification CAS sâorganise comme suit :
- Un utilisateur tente dâaccéder à une application web qui nâa pas encore été vérifiée. Il sâagit de la première tentative dâaccès à une application CAS (une application qui utilise le service CAS).
- Lâutilisateur est redirigé vers le serveur CAS.Â
- Lâutilisateur saisit ensuite ses identifiants de connexion une seule fois sur le serveur CAS et ce dernier vérifie et confirme lâidentité de lâutilisateur.Â
- Une fois lâutilisateur authentifié via le serveur CAS, un ticket de service est joint à lâURL.Â
- Lâapplication envoie alors une demande au serveur CAS, validant le ticket de service. Si le ticket est valide, lâutilisateur est authentifié et renvoyé vers lâapplication.
Avec CAS, lâutilisateur ne doit pas répéter ce processus lorsquâil bascule dâune application à une autre au cours dâune session dâauthentification unique (SSO). Dès que lâutilisateur se connecte au système dâauthentification centralisé, un cookie ou des données système sont générés pour indiquer un statut dâauthentification sans devoir sâauthentifier plusieurs fois au cours dâune même session.
Principaux composants de CAS
Le flux de protocole et dâauthentification CAS comporte trois (ou quatre) parties.
- Navigateur web client : il sâagit du logiciel incorporé à lâapplication web qui utilise le service CAS.
- Application web : il sâagit de lâapplication requérant une authentification.
- Serveur CAS : ce composant autonome est utilisé pour authentifier les utilisateurs et octroyer lâaccès aux applications web à lâaide du service CAS.
- Service backend : le protocole CAS peut également faire intervenir un serveur de base de données qui ne dispose pas de sa propre interface HTTP, mais peut néanmoins communiquer avec une application web.
CAS fait référence à un package logiciel qui utilise aussi le protocole CAS.
Utilisation de CAS sur votre site web
Pour intégrer des applications avec le protocole CAS, vous devez dâabord désigner votre serveur CAS. Tout utilisateur cherchant à sâauthentifier auprès de ces applications doit disposer dâune connexion au serveur CAS. CAS peut être intégré à pratiquement toutes les applications web et prend en charge un large éventail de langages de programmation, dont Java, Python, PHP et PL/SQL.
Il existe aussi de nombreuses bibliothèques clients qui peuvent utiliser lâauthentification CAS. Pour PHP, vous pouvez utiliser la bibliothèque phpCAS. Pour Python, qui inclut Flask et Django, la bibliothèque python-cas est optimale. Si vous utilisez un autre langage de programmation, vous pouvez lancer une recherche pour obtenir les bibliothèques existantes.
Open source, le protocole CAS est accessible au public. Pour plus de détails sur les modalités précises de fonctionnement et dâutilisation du protocole CAS, consultez cette page.
Authentification et autorisation informatiques
Lâauthentification et lâautorisation sont deux concepts différents.
Le protocole CAS se contente dâauthentifier lâaccès des utilisateurs aux applications web, mais ne sert pas aux autorisations. Lorsquâun utilisateur se connecte au serveur CAS avec ses identifiants de connexion, le processus dâauthentification CAS détermine lâidentité de lâutilisateur, en consignant la personne qui se connecte, mais lâapplication ne « voit » pas directement le mot de passe et les informations de connexion.
Vous devez déterminer et configurer, dans le système, les utilisateurs qui disposent dâune autorisation dâaccès et de privilèges au sein de lâapplication. Par exemple, vous pouvez définir des ID utilisateurs spécifiques qui disposent de privilèges « administrateur », ce qui leur accordera des droits en lecture et écriture sur des fichiers spécifiques. Il sâagit là dâune forme dâautorisation.
En résumé, le processus dâauthentification vérifie lâidentité dâun utilisateur, tandis que le processus dâautorisation vérifie le type dâaccès aux données et les privilèges spécifiques dont lâutilisateur dispose. Votre système nécessite les deux mécanismes : lâauthentification et lâautorisation. Le service CAS ne fournit que le composant dâauthentification ; le processus dâautorisation doit être également implémenté sur une autre couche.
Avantages du protocole CAS
Le protocole CAS offre de nombreux avantages, dont les suivants :
- Commodité : les utilisateurs ne doivent se connecter quâune seule fois au serveur CAS au cours dâune session pour accéder à plusieurs applications web sans devoir chaque fois se connecter ou se reconnecter.
- Cohérence : chaque utilisateur accède à la même page de connexion du serveur CAS.
- Procédure simplifiée pour les applications : les applications web ne doivent pas implémenter leurs propres processus et infrastructure dâauthentification ni continuer à en inventer dâautres.
- Sécurité : les applications web nâont pas accès aux identifiants de connexion, ni aux mots de passe.
Le protocole CAS peut être un peu plus long à configurer au départ, mais il offre une expérience utilisateur plus fluide. Il est également plus simple à gérer au fil du temps dès lors quâil ne faut passer que par un seul serveur centralisé dans un système au lieu de devoir gérer des processus dâauthentification dans chaque application web.
Vous ne devez pas intégrer des protocoles dâauthentification dans chacune dâelles. Vous pouvez, au lieu de cela, gérer plusieurs applications web, dont les serveurs et les clients de messagerie web dans un seul emplacement centralisé et approuvé.
Points à retenir
Le protocole CAS est un service SSO open source qui permet aux utilisateurs de se connecter à un seul serveur approuvé une seule fois par session et dâavoir toujours la possibilité dâaccéder à plusieurs applications sans constamment devoir se reconnecter. Les utilisateurs gagnent en rapidité, en productivité et bénéficient dâune expérience de meilleure qualité.
Le protocole nécessite la présence dâun serveur CAS centralisé et approuvé auquel tous les utilisateurs vont directement se connecter. Une fois ces derniers connectés, le système « se souvient » dâeux pour le reste de la session grâce à des cookies.
Lorsquâun utilisateur tente dâaccéder à une application web nécessitant une autorisation, il est initialement redirigé vers le serveur CAS pour autorisation. Sâil est autorisé, un ticket de service est joint à lâURL. Lorsquâil accède à une autre application web, lâautorisation est gérée au niveau du backend, sans que lâutilisateur doive intervenir.
Le protocole CAS renforce la sécurité dans la mesure où il dissimule les mots de passe aux applications web. Il est également pratique et convivial.
Références
Central Authentication Service. Microsoft Academic.
CAS Enterprise Single Sign-On. Apereo Foundation.
Python-cas/ Python-cas. 2021. GitHub, Inc.
Getting Started. Apereo Foundation.Â