Installer un serveur d’authentification unique Apereo CAS 6
Installer un serveur d’authentification unique Apereo CAS 6
apereo CAS
Apereo CAS est un serveur d’authentification unique Apereo CAS 6.x, vous verrez comment l’installer et configurer un serveur CAS 6.x.
Installer un serveur Apereo CAS 6.x une authentification unique permet d’avoir une authentification unique (SSO).
Nous authentifions sur un site web. Nous sommes logués sur tous les sites que nous avons créé pour accéder à nos applications web. Par exemple RocketChat, Guacamole, Limesurvey, GLPI et plein d’autres applications.
Prérequis avant installation apereo CAS
Avant de commencer, il nous faut pour chaque.
- Un disque dur minimum de 30 GO
- Une Vm
- Une installation LVM
- Récupérer la distribution Debian net install
- Connaître l’adresse IP, le masque et la passerelle
Apereo CAS document pour l’installation
Pour installer Apereo / CAS, je vous conseille le site de :
https://apereo.github.io/2018/11/16/cas60-gettingstarted-overlay/#dependencies
Sommaire
Configurer la Debian
1. Ajouter les backports dans le dépôt
2. Mettre à jour le système
3. Installation des paquets nécessaire
apt install tomcat8 tomcat8-admin tomcat8-user openjdk-11-jdk openjdk-11-jre maven build-essential git
4. Configurer la variable d’environnement JAVA
echo "JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/" >> /etc/environment
source /etc/environment
5. Vérifier la variable d’environnement
echo $JAVA_HOME
Suppression de JAVA 8
Faire un
update-alternatives --display java
Si vous voyez lien secondaire
java.1.gz : /usr/lib/jvm/java-8-openjdk-amd64/jre/man/man1/java.1.gz
Supprimer le.
apt remove openjdk-8-jre-headless --purge
6. Configurer Tomcat8
Aller dans
/etc/default
Ouvrir le fichier tomcat8
Rajouter la ligne suivante :
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Vérifier de nouveau si vous avez Java 11
update-alternatives --display java
7. Configurer le Tomcat8 manager
Aller dans /etc/tomcat8
Ouvrir le fichier tomcat-users.xml
Tout en bas du fichier mettre
<role rolename="admin-gui"/>
<user username="admin" password="toor" roles="manager-gui,admin-gui""/>
8. Redémarrer Tomcat
systemctl restart tomcat8
II – Pré-installe Apereo
On commence par installer le projet nécessaire à l’utilisation de cas-overlay-Template
Récupérer le projet
Aller dans le dossier /opt
git clone https://github.com/apereo/cas-overlay-template
cd cas-overlay-template
1. Ajout de module LDAP (Dépendance)
Ouvrir le fichier build.gradle
Ajouter la ligne ci-dessous :
dependencies {
compile "org.apereo.cas: cas-server-webapp${project.appServer}:${casServerVersion}"
// Other CAS dependencies/modules may be listed here...
compile "org.apereo.cas:cas-server-support-ldap:${project.'cas.version'}"
compile "org.apereo.cas:cas-server-support-json-service-registry:${casServerVersion}"
}
Enregistrer le fichier
2. Ajouter dans le fichier cas.properties la configuration LDAP
cas.server.name=https://cas.osnetworking.fr:8443
cas.server.prefix=${cas.server.name}/cas
logging.config: file:/etc/cas/config/log4j2.xml
ATTENTION ENLEVER LE # POUR ÊTRE EN VERSONS PRODUCTION
# cas.authn.accept.users=
# Desactivation des comptes locaux
cas.authn.accept.users=
### Connexion LDAP
cas.authn.ldap[0].providerClass=org.ldaptive.provider.unboundid.UnboundIDProvider
cas.authn.ldap[0].type=AUTHENTICATED
cas.authn.ldap[0].useSsl=false
cas.authn.ldap[0].ldapUrl=ldap://filer1.osnetworking.fr:389
cas.authn.ldap[0].baseDn=dc= osnetworking,dc=fr
cas.authn.ldap[0].subtreeSearch=true
cas.authn.ldap[0].searchFilter=sAMAccountName={user}
cas.authn.ldap[0].principalAttributeList=cn,givenName,mail
# Credential to connect to LDAP
cas.authn.ldap[0].bindDn=CN=Admincas,CN=CasAdmin,DC= osnetworking, ,DC=fr
cas.authn.ldap[0].bindCredential=Azerty25
3.) Vérification du port de connexion LDAP 389
telnet osnetworking.fr 389
Si vous avez ce message-là :
Trying 192.168.0.54...
Connected to osnetworking.fr.
Escape character is '^]'.
C’est ok.
III – Création du dossier log pour CAS
1. Créer un dossier dans /var/log/cas
mkdir /var/log/cas
2. Copie des fichiers cas.log et cas_audit.log
Copier ou créer les fichiers cas.log et cas_audit.log dans le dossier
3. Droit sur le dossier
Pour mettre les droits sur le dossier faire la commande suivante :
chown -R tomcat8:adm /var/log/cas
4. Installation de Gradle
./gradlew clean
./gradlew clean copyCasConfiguration build
5. Création de la clé
./gradlew createKeystore
6. Récupérer le fichier cas.war
Il faut récupérer le fichier cas.war dans /opt/cas-overlay-template/build/libs/cas.war et le mettre dans /var/lib/tomcat8/webapps/
cp /opt/cas-overlay-template/build/libs/cas.war /var/lib/tomcat8/webapps/
7. Relancer le service de Tomcat8
# systemctl restart tomcat8.service
8. apereo CAS : tester le serveur
Maintenant nous allons tester la connexion
Pour ici l’adresse ip est : http://192.168.0.54:8080/cas ou http://cas.univ-bfc.fr:8080/
Cliquer sur « se connecter »
Quand vous êtes connectés, vous devez avoir ce message-là : Connexion réussie
En cliquant sur
Nous pouvons voir les attributs de l’active Directory.
IV- Choix de la Configuration des applications
Nous avons le choix pour configurer les applications soit avec :
- Avec Json
- Base de donnée module JPA
Pour démarrer nous allons utiliser le Json.
Vérifier que dans le fichier build.gradle nous avons bien :
compile "org.apereo.cas:cas-server-support-json-service-registry:${project.'cas.version'}"
Une fois vérifier nous pouvons commencer.
1. Configurer le fichier cas.properties
Ouvrir le fichier cas. properties
cd \opt\cas-template-overlay
nano etc/cas/config/cas.properties
Ajouter la ligne ci-dessous :
# Configuration de JSON
cas.serviceRegistry.json.location: file:/etc/cas/services
Une fois que la ligne a été ajouté nous devons créer un dossier.
2. Création du dossier services
Nous utilisons la commande mkdir pour créer le dossier
mkdir /etc/cas/services
3. Ajouter les applications
Nous allons créer pour chaque applications un fichier en « .json »
Il est recommandé de nommer les nouveaux fichiers JSON comme suit:
serviceName-serviceNumericId.json"
Pour créer l’ID nous utilisons la commande suivant :
date +%s
Voici ce qui donne
root@cas:/opt/cas-overlay-template# date +%s
1559915619
Ce numéro est notre ID.
Donc le fichier sera « application-1559915619.json »
Le fichier doit être dans /etc/cas/services/
4. Création du fichier json
« Application » est le nom de votre application dans cette exemple
touche application-1559915619.json
5. Configuration des applications
Ouvrir le fichier que nous venons de créer
nano application-1559915619.json
Attention l’exemple ci-dessous à éviter à l’utilisation
{
/*
* Ne pas utiliser cette
définition dans un environnement de production.
*/
"@class" :
"org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|imaps)://.*",
"name" : "HTTPS and IMAPS
wildcard",
"id" : 1503925297,
"evaluationOrder" : 99999
}
Voici pour l’application Rocketchat
Ouvrir le fichier http_rocketchat-1559902436.json
nano http_rocketchat-15599902436
{
/*
* Wildcard service definition that applies to any https or imaps url.
* Do not use this definition in a production environment.
*/
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^http://192.168.0.113/_cas/.*",
"name" : "RocketChat",
"id" : 1503925297,
"evaluationOrder" : 99999
"allowedAttributes":["sAMAccountName", "mail", "cn"]
}
VI – Installer cas-management
git clone https://github.com/apereo/cas-management-overlay
1) Configurer cas-management
Aller dans le dossier /opt/cas-management/
Ouvrir le fichier build.gradle.
nano build.gradle
Ajouter la ligne suivante :
compile "org.apereo.cas:cas-management-webapp-support-ldap:${project.'casmgmt.version'}"
compile "org.apereo.cas:cas-server-support-json-service-registry:${project.'casmgmt.version'}"
2. Configurer le fichier management.properties
Aller dans le dossier /opt/cas-management/etc/cas/config
cd /opt/cas-management/etc/cas/config
Ouvrir le fichier management.properties
nano management.properties
Ajouter les lignes suivantes :
cas.server.name=http:// 192.168.0.112 :8080
cas.server.prefix=${cas.server.name}/cas
mgmt.serverName=http:// 192.168.0.112 :8080
################################################################### Update this URL to point at server running this management app # ##################################################################
mgmt.serverName=http://192.168.0.112
server.context-path=/cas-management
server.port=8080
mgmt.adminRoles[0]=ROLE_ADMIN
mgmt.userPropertiesFile=file:/etc/cas/config/users.json
######################################
# Gestion des Logs de cas-management #
######################################
logging.config=file:/etc/cas/config/log4j2-management.xml
################################
# Gestion des services en JSON #
################################
cas.serviceRegistry.json.location=file:/etc/cas/services
############################################################# Liste des attributs sélectionables depuis le CAS-Manager #
############################################################
cas.authn.attributeRepository.stub.attributes.cn=cn
cas.authn.attributeRepository.stub.attributes.displayName=displayName
cas.authn.attributeRepository.stub.attributes.givenName=givenName
cas.authn.attributeRepository.stub.attributes.mail=mail
cas.authn.attributeRepository.stub.attributes.sn=sn
cas.authn.attributeRepository.stub.attributes.uid=uid
cas.authn.attributeRepository.stub.attributes.UDC_IDENTIFIER=UDC_IDENTIFIER
Enregistrer le fichier
3. Ajouter les applications
Nous allons créer le fichier « .json » comme nous l’avons fait ci-dessus.
Pour créer l’ID nous utilisons la commande suivant :
date +%s
Voici ce qui donne
Ouvrir le dossier /opt/cas-management/cas/services
root@cas: cd /opt/cas-management/cas/services
Nous créons l’ID pour l’application
date +%s
1560930209
Ce numéro est notre ID pour l’application cas-management.
4. Création du fichier json
touche http_cas_management-1560930209.json
Insérer les lignes ci-dessous :
/*
* Wildcard service définition that applies to any https or imaps url.
* Do not use this definition in a production environment.
*/
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"service" : "^http://192.168.0.112/cas-management/*",
"name" : "CAS Services Management",
"id" : 1560930209,
"description" : "CAS services management webapp",
"evaluationOrder" : 5500
"allowedAttributes":["cn","mail"]
}
Donc le fichier sera « http_cas_management-1560930209.json »
Nous allons compiler le fichier avec la commande suivante
./build.sh copy package --info
./build.sh package --info
Les fichiers sont copiés dans /etc/cas/config et /etc/cas/services/
Copier le fichier war dans le dossier /var/lib/tomcat8/webapps/
root@caser:/opt/cas-management-overlay
cp build/libs/cas-management.war /var/lib/tomcat8/webapps/
Nous pouvons redémarrer le service de tomcat8
systemctl restart tomcat8.service
VII – Sécurisation de Apereo CAS
Pour sécuriser Apereo CAS, il faut avoir un certificat SSL.
Conclusion
Voilà, vous venez d’installer Apereo CAS sous votre Debian.
Comme vous le voyez la route est encore longue avant de maîtriser complètement Apereo CAS.
Je remercie les forums pour leurs aides et leurs conseils.
Merci pour ce tutoriel ça serait génial si tu pouvais mettre ces tuto en vidéo sur YouTube tu auras plus de visibilité
Bonjour
Merci pour ce tutoriel très intéressant si vous pouvez faire une vidéo sur YouTube pour ce tuto ce serait vraiment génial.