skip to Main Content
Installer Et Configurer Un Serveur D'authentification Unique Apereo CAS 6.x

Installer un serveur d’authentification unique Apereo 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

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

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

Chapitre I – Configurer la Debian

Chapitre II – Pré-installe Apereo

Chapitre III – Création du dossier log pour CAS

Chapitre IV – Choix de la Configuration des applications

Chapitre V – Configuration du Json

Chapitre VI – Installer cas-management

Chapitre VII – Sécurisation de Apereo CAS

Installer et configurer un serveur d'authetification unique Apereo CAS 6.x

Configurer la Debian

1. 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

2. Mettre à jour le système

apt update
apt install tomcat8 tomcat8-admin tomcat8-user openjdk-11-jdk openjdk-11-jre maven build-essential git
apt upgrade

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

Créer un dossier dans /var/log/cas

mkdir /var/log/cas

1.   Copie des fichiers cas.log et cas_audit.log

Copier ou créer les fichiers cas.log et cas_audit.log dans le dossier

2.   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

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/

cp /opt/cas-overlay-template/build/libs/cas.war /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://192.168.0.54:8080/cas ou http://cas.univ-bfc.fr:8080/

Cliquer sur « se connecter »

Apereo CAS

Quand vous êtes connectés, vous devez avoir ce message-là : Connexion réussie

Apereo CAS

En cliquant sur

Apereo CAS

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- 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.

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.

Cet article comporte 0 commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.