Présentation Projet BPMN
Présentation Projet BPMN
Présentation Projet BPMN
systèmes d’Information
202-2021
Introduction
Le but
CAS un SSO WEB
L’intérêt de CAS
Mécanisme
Technologies utilisées
Les authentifications
Certificats
Développement d’un petit client CAS (php)
Clients
phpCAS
JAVA CASFilter
Mod_auth_cas
Pam_cas
Installation
Conclusion
Introduction
La mémorisation de multiples mots de passe est devenue un problème pour les utilisateurs.
Pendant qu'un système SSO mémorise les mots de passe pour chaque application à la place des
utilisateurs, le fournisseur d'identité permettra d'étendre le champ d'action de ces utilisateurs
hors de l'entreprise.
L'intranet est aujourd'hui une ressource informatique indispensable à une organisation et
destiné essentiellement à mettre en place les services avec conditions d'utilisation. Ainsi, la
centralisation d'authentifications est un élément important dans un intranet. Aussi, La mise en
place d'un système Single Sign-On avec fournisseur d'identité va épargner la tête des
utilisateurs en ne leur faisant mémoriser qu'un seul mot de passe et leur doigts ne seront plus
sollicités car ils ne s'authentifieront qu'une seule fois pour accéder à un nombre important
d'applications.
En effet, la configuration des serveurs CAS est un exercice professionnel qui demande
beaucoup de compréhension en ce qui concerne le principe de fonctionnement.
Le But
SSO
Single Sign-On
authentification unique et unifiée
Sécurité
protéger le mot de passe
ne pas transmettre le mot de passe aux applications
un seul point d’authentification
Plusieurs mécanismes d’authentification
LDAP, fichier plat, X509
Le But
Service Service
Appli n°3 Appli n°2 Appli n°1 Appli n°3 Appli n°2 Appli n°1
ST : Service Ticket
Passeport du navigateur auprès
du client CAS
Ticket opaque non rejouable
Limité dans le temps
Mécanisme
Accès à une application (après authentification)
Une fois le TGC acquis, l’authentification devient transparente pour l’accès à toutes les
autres applications CAS-ifiées
Une fois authentifié pour une application, une session applicative est mise en place
Mécanisme
Fonctionnement n-tiers
Mécanisme
Fonctionnement n-tiers
•PGT : Proxy Granting Ticket
– Passeport d'un utilisateur pour une
application auprès du serveur CAS
– Ticket opaque rejouable
Technologies utilisées
JAVA
SPRING
REST
HTTP
SSL
Les authentifications
Le choix du/des mode(s) d’authentification est laissé à l’initiative de
l’administrateur
Configuration XML pour ajouter des « handlers » d’authentification
Possibilité de développer ses propres couches d’authentification
Développement d’un petit client CAS Algorithme
de base
Développement d’un petit client CAS (php)
En cas de succès
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationSuccess>
<cas:user>NetID</cas:user>
</cas:authenticationSuccess>
</cas:serviceResponse>
Développement d’un petit client CAS Algorithme
de base (proxy)
Développement d’un petit client CAS (php -
proxy)
En cas de succès
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationSuccess>
<cas:user>NetID</cas:user>
<cas:proxyGrantingTicket>PGTIOU</cas:proxyGrantingTicket>
</cas:authenticationSuccess>
</cas:serviceResponse>
include_once('CAS.php');
phpCAS::setDebug();
// initialize phpCAS
phpCAS::client(CAS_VERSION_2_0,‘localhost',443,‘/cas');
phpCAS::setNoCasServerValidation();
phpCAS::forceAuthentication();
if (isset($_REQUEST['logout'])) {
phpCAS::logout();
}
?>
<h1>Successfull Authentication!</h1>
<p>login is <b><?php echo phpCAS::getUser();
Utilisation de client
Java CAS Filter
<IfModule mod_auth_cas.c>
CASVersion 2
CASDebug Off
CASValidateServer Off
CASLoginURL https://localhost/cas
CASValidateURL https://localhost/cas/serviceValidate
CASCookiePath /tmp/cas/
CASTimeout 7200
CASIdleTimeout 3600
CASCacheCleanInterval 1800
</IfModule>
Utilisation de client
pam_cas
/etc/pam.d.imap
/etc/pam_cas.conf
host localhost
port 443
uriValidate /proxyValidate
ssl on
debug off
proxy https://localhost/casProxy.php
trusted_ca /Cert/ac-racine.pem
Installation
Nous avons besoin de certaines conditions pour exécuter CAS :
Java - Vous avez besoin de JDK 11+, installez s'il n'est pas installé auparavant et
Git — Vous avez besoin de git pour cloner le modèle de superposition CAS, ce n'est pas
Maintenant, nous devons cloner le référentiel Github quelque part sur le système :
git clone https://github.com/apereo/cas-overlay-template
Après le clonage, pour exécuter CAS, nous devons configurer certaines choses
keytool -genkey -keyalg RSA -alias thekeystore -keystore thekeystore -storepass changeit -validity
360 -keysize 2048
Cette commande créera un fichier "thekeystore". Veuillons noter que vous devez saisir
« localhost » pour le prénom et le nom afin d'éviter les erreurs SSL lors de l'exécution de la
gestion CAS et d'autres applications clientes. Nous devons maintenant importer ce fichier
dans le JDK à utiliser pour les applications clientes. (Remarque sur la variable
Après l'importation, nous devons redémarrer toutes les instances Java en cours
d'exécution ou redémarrer le système.
Ensuite, installons toutes les dépendances et construisez CAS (cette commande copiera les
Après avoir vu ça :
Le serveur CAS est prêt, nous pouvons y accéder sur le système local
: http://localhost:8443/cas/ . Peut-être que nous obtenons une erreur SSL lorsque nous
ouvrons cette URL.
Vous pouvez voir la page de connexion du CAS. Il existe un utilisateur par défaut que vous
pouvez utiliser pour vous connecter. Entrez « casuser » comme nom d'utilisateur et « M ellon
» comme mot de passe.
Charger des utilisateurs à partir d'une base de données :
CAS prend en charge de nombreuses manières différentes d'authentifier les utilisateurs, par
exemple LDAP, X.509, Azure Active Directory, REST, Redis, Database et bien d'autres. Nous
allons configurer une base de données PostgreSQL comme source qui sera utilisée par CAS
pour authentifier les utilisateurs.
Comme le SSO donne accès à de nombreuses ressources, une fois l'utilisateur authentifié,
il a les "clés du château". Les pertes peuvent être lourdes si une personne mal intentionnée
a accès à des informations d'identification des utilisateurs. Avec le SSO, une attention
particulière doit donc être prêtée à ces informations, et des méthodes d'authentification
forte devraient idéalement être combinées.
Nous avons remarqué des difficultés en terme de ressource pour la réalisation de ce projet
car la partie pratique a été échouée au niveau de notre machines .