Authentification SAMLv2 - Configuration
- Prérequis
- Récupération des clés en chaîne de caractères
- Surcharge des propriétés dans le fichier de sécurité
Dans le cadre de la mise en place de la méthode d'authentification SAMLv2, ce document décrit la configuration d’une sécurité accrue de signature et chiffrement des échanges SAMLv2.
Prérequis
Dans ce document on appellera :
- IdP : Identity Provider ou Fournisseur d’identités
- SP : Service Provider ou Fournisseur de services
- Kpr(SP) : la clé privée du SP
- Kpb(SP) : la clé publique du SP
- Kpr(IdP) : la clé privée de l’IdP
- Kpb(IdP) : la clé publique de l’IdP
Avoir à disposition les éléments suivants :
- la clé privée du SP
- la clé publique du SP
- la clé publique de l’IdP
- OpenSSL : un outil permettant de manipuler les objets servant à des connexions sécurisées (certificats x509, signatures, chiffrements, etc.). Il permet notamment le formatage de certificats.
Principes
Les acteurs et les outils nécessaires pour la mise en place d’une communication sécurisée SAMLv2 (chiffrée et/ou signée) peut se résumer comme suit :
Fournisseur de Services (Service Provider SP) | Communication | Fédérateur d’identités (Identity Provider IdP) |
Chiffre les données avec Kpb(IdP) | >>>>> Le SP envoie la requête d’authentification cryptée et/ou signée à l’IdP | Déchiffre les données avec Kpr(IdP) |
Signe les données avec Kpr(SP) | Valide signature avec Kpb(SP) | |
Déchiffre les données avec Kpr(SP) | <<<<< L’IdP envoie la réponse SAMLv2 chiffrée et/ou signée au SP | Chiffre les données avec Kpb(SP) |
Valide signature avec Kpb(IdP) | Signe les données avec Kpr(IdP) |
Principe : chiffrage et signature des données échangées entre le SP et l’IdP
Le SP doit donc avoir connaissance de :
- la clé privée du SP
- la clé publique du SP
- la clé publique de l’IdP
Formatage des clés privées
Onelogin requiert le format PKCS#8 pour les clés privées (le contenu de la clé doit débuter par « BEGIN PRIVATE KEY »).
Si jamais vous avez en possession une clé privée au format PKCS#1 (le contenu de la clé débute par « BEGIN RSA PRIVATE KEY »), formater celle-ci en générant une nouvelle clé privée au bon format via la commande :
Récupération des clés en chaîne de caractères
Onelogin met à disposition des outils en ligne pour récupérer les clés sous forme de chaîne de caractères sans perdre le format.
Clé publique
On pourra utiliser l’outil disponible via le lien suivant pour récupérer la chaîne de caractère correspondant à une clé publique :
https://developers.onelogin.com/saml/online-tools/x509-certs/format-x509-certificate
On veut récupérer la clé publique sous la forme suivante (AVEC en-têtes et SANS retour chariot) :
-----BEGIN CERTIFICATE-----XXXXXXX-----END CERTIFICATE-----
avec XXXXXXX le contenu de la partie « X.509 cert in string format »
Outil en ligne Onelogin : formatage d’un certificat x509 contenant une clé publique
Clé privée
On pourra utiliser l’outil disponible via le lien suivant pour récupérer la chaîne de caractère correspondant à une clé privée:
https://developers.onelogin.com/saml/online-tools/x509-certs/format-private-key
On veut récupérer la clé privée sous la forme suivante (AVEC en-têtes et SANS retour chariot) :
-----BEGIN PRIVATE KEY-----YYYYYYY-----END PRIVATE KEY-----
avec YYYYYYY le contenu de la partie « Private Key in string format »
Outil en ligne Onelogin : formatage d’une clé privée
Surcharge des propriétés dans le fichier de sécurité
Dans le fichier de sécurité SAMLv2 (saml.sec.properties) décommenter ou rajouter les propriétés suivantes :
- onelogin.saml2.sp.x509cert : le certificat contenant la clé publique du SP
- onelogin.saml2.sp.privatekey : la clé privée du SP
- onelogin.saml2.idp.x509cert : le certificat contenant la clé publique de l’IdP
Extrait du fichier de sécurité SAMLv2 surchargeant les propriétés concernant les clés publiques/privées
onelogin.saml2.sp.privatekey = -----BEGIN PRIVATE KEY-----YYYYYYY-----END PRIVATE KEY-----
onelogin.saml2.idp.x509cert = -----BEGIN CERTIFICATE-----ZZZZZZZ-----END CERTIFICATE-----