I. Configurer la Debian
a) Ajouter les backports dans le dépôt
echo "deb http://deb.debian.org/debian/ stretch-backports main contrib non-free" >> /etc/apt/sources.list
b) Mettre à jour le système
#apt update
#apt upgrade
c) Installation des paquets nécessaire
#apt install tomcat8 tomcat8-admin tomcat8-useropenjdk-11-jdk openjdk-11-jre maven build-essential git
d) Configurer la variable d’environnement JAVA
#echo "JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/" >> /etc/environment
#source /etc/environment
e) 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
f) 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
g) 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""/>
h) Redémarrer Tomcat
# systemctl restart tomcat8
I. Pré-installe Apereo / CAS
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
a) 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}"
// compile "org.apereo.cas:cas-server-support-hazlcast-ticket-registry:${casServerVersion}"
// compile "org.apereo.cas:cas-server-support-duo:${casServerVersion}"
// compile "org.apereo.cas:cas-server-support-redis-service-registry:${project.'cas.version'}"
// compile "org.apereo.cas:cas-server-support-aup-webflow:${project.'cas.version'}"
// compile "com.unboundid:unboundid-ldapsdk:4.0.9"
// compile "org.apereo.cas:cas-server-support-aup-ldap:${project.'cas.version'}"
}
Enregistrer le fichier
b) Ajouter dans le fichier cas.properties la configuration LDAP
cas.server.name=https://cas.siege.univ-bfc.fr:8443
cas.server.prefix=${cas.server.name}/cas
logging.config: file:/etc/cas/config/log4j2.xml
ATTENTION ENLEVER LE # POUR ÊTRE EN VERSON 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.siege.univ-bfc.fr:389
cas.authn.ldap[0].baseDn=dc=siege,dc=univ-bfc,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=test,DC=univ-bfc,DC=fr
cas.authn.ldap[0].bindCredential=Azerty25
c) Vérification du port de connexion LDAP 389
# telnet siege.univ-bfc.fr 389
Si vous avez ce message-là :
Trying 192.168.0.54...
Connected to siege.univ-bfc.fr.
Escape character is '^]'.
C’est ok.
II. Création du dossier log pour CAS
Créer un dossier dans /var/log/cas
# mkdir /var/log/cas
a) Copie des fichiers cas.log et cas_audit.log
Copier ou créer les fichiers cas.log et cas_audit.log dans le dossier
b) Droit sur le dossier
Pour mettre les droits sur le dossier faire la commande suivante :
# chown -R tomcat8:adm /var/log/cas
Installation de Gradle
# ./gradlew clean
#../gradlew clean copyCasConfiguration build
7
Création de la clé
# ./gradlew createKeystore
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/
Relancer le service de Tomcat8
# systemctl restart tomcat8.service
Maintenant nous allons tester la connexion
Pour ici l’adresse ip est : http://193.55.69.104:8080/cas
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.
III.
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.
IV.
Configuration
du 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.
a)
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.
b)
Création du dossier services
Nous utilisons la commande mkdir pour créer le dossier
# mkdir
/etc/cas/services
c)
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/
d)
Création du fichier json
« Application » est le nom de votre application dans cette
exemple
# touche application-1559915619.json
e)
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
{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(http)://172.28.26.111",
"name" : "Rocketchat",
"id" : 1503925297,
"evaluationOrder" : 99999