Script renouvelant le validUntil dans les metadata de l’IDP shibboleth

logo shibboleth

Aujourd’hui juste un petit script permettant de mettre à jour les metadata de l’IDP shibboleth pour que le champ validUntil ne soit jamais expiré. Il m’est effectivement arrivé que celui-ci expire et qu’il soit donc nécessaire de passer sur tous les SP pour renouveler les metadata.

#!/bin/sh

# Déclaration des fichiers
folderMetadata=/opt/shibboleth-idp/metadata/
fileMetadata=idp-metadata.xml old
FileMetadata=idp-metadata.xml.old

# Déclaration des variables
validUntil=`date –rfc-3339=ns |sed ‘s/ /T/’ | cut -c-23 | sed ‘s/$/Z/’`
monthCurrent=`date +%m`
yearCurrent=`date +%y`

# Save old metadata
/usr/bin/cp $folderMetadata$fileMetadata $folderMetadata$oldFileMetadata
if [ $monthCurrent -lt 7 ]
then
monthFuture=$(($monthCurrent+3))
validUntilFuture=`echo $validUntil | sed ‘s/-‘$monthCurrent’-/-0’$monthFuture’-/g’`
cat $folderMetadata$oldFileMetadata | sed ‘s/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]. [0-9][0-9][0-9]Z/’$validUntilFuture’/g’ > $folderMetadata$fileMetadata

elif [ $monthCurrent -lt 10 ]
then
monthFuture=$(($monthCurrent+3))
echo $monthFuture validUntilFuture=`echo $validUntil | sed ‘s/-‘$monthCurrent’-/-‘$monthFuture’-/g’`
cat $folderMetadata$oldFileMetadata | sed ‘s/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]. [0-9][0-9][0-9]Z/’$validUntilFuture’/g’ > $folderMetadata$fileMetadata

else
monthFuture=$(($monthCurrent-9))
yearFuture=$(($yearCurrent+1))
validUntilFuture=`echo $validUntil | sed ‘s/’$yearCurrent’-‘$monthCurrent’-/’$yearFuture’-0’$monthFuture’-/g’` cat $folderMetadata$oldFileMetadata | sed ‘s/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]. [0-9][0-9][0-9]Z/’$validUntilFuture’/g’ > $folderMetadata$fileMetadata fi

A placer dans /opt/shibboleth-idp/bin/renew-metadata.sh avec pour utilisateur tomcat et groupe tomcat

chown -hR tomcat: /opt/shibboleth-idp/bin/renew-metadata.sh

J’ai rajouté un cron pour que le script soit exécuté tous les mois :

# more /etc/crontab
0 0 1 * * root /opt/shibboleth-idp/bin/renew-metadata.sh

Si ce rapide script vous a plu, vous retrouverez d’autre article en lien avec la fédération sur ma partie fédération. Je vous mets également la page de shibboleth pour configurer la tolérance des validUntil.

Laisser un commentaire

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