Lo script permette di firmare un metadata SAML utilizzando XmlSecTool.
Per utilizzare lo script è necessario avere:
Per creare una chiave (con password) e un certificato:
openssl req -x509 -sha256 -days 365 -newkey rsa:2048 -keyout nome-chiave.key -out nome-certificato.crt
Nota bene: un certificato generato con questo comando avrà durata di 1 anno
Per rimuovere la password alla chiave:
openssl rsa -in your.encrypted.key -out your.key
Per aggiungere la password alla chiave:
openssl rsa -des3 -in your.key -out your.encrypted.key
Nota: lo script effettua un controllo dei requisiti software e parametri
./spidMetadataSigner.sh
I parametri seguenti possono essere inseriti in un file da cui leggere i valori predefiniti ad ogni esecuzione, un esempio è riportato in config.sample
.
Il file di impostazioni deve essere chiamato .config
, nella directory principale del progetto.
Verranno richiesti i seguenti parametri:
Alla fine della procedura il metadata firmato sarà caricato nella cartella "metadata/metadata-out"
Lo script automatizza e semplifica il comando di firma metadata tramite XmlSecTool:
Scaricare XmlSecTool:
brew install xmlsectool
Impostare JAVA_HOME
export JAVA_HOME=/path/java/home
Per conoscere il path per JAVA_HOME (Java deve essere installato sul sistema):
Linux: echo $(dirname $(dirname $(readlink -f $(which javac))))
MacOS: echo $(/usr/libexec/java_home)
Eseguire XmlSecTool
xmlsectool.sh --sign --referenceIdAttributeName ID --inFile "metadata-non-firmato.xml" --outFile "metadata-firmato.xml" --digest SHA-256 --signatureAlgorithm http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 --key "certificato.key" --keyPassword "password" --certificate "certificato.crt
Specificare --keyPassword "password" solo se la chiave è con password
Si raccomanda di utilizzare i file di esempio solo per test.