Bonjour,
Nous allons voir aujourd’hui un sujet intéressant, ADFS et
plus particulièrement le backup de la configuration ADFS.
ADFS Rapid Restore Tool
ADFS Rapid restore Tool est un outil de backup de la
configuration ADFS, ce dernier vous permet de backuper et de restaurer votre configuration ADFS
de manière efficace et optimale en cas de soucis.
Il sera possible d’exporter votre configuration ADFS vers un
autre emplacement ou alors même vers azure en indiquant votre Azure container Storage.
Le backup est exporté de manière sécurisée et chiffré avec un
password défini lors du backup.
Quel usage
ADFS RRT peut être utilisé dans les cas suivants :
- Crash de l’infrastructure ADFS et donc restauration rapide en urgence du service ADFS
- Faire un environnement de LAB identique à la production pour des test ou Dev
Ce que sauvegarde l’outil
ADFS RRT permet de sauvegarder les éléments suivants :
- Fichier de configuration de l’ADFS
- Toute la customisation de votre page ADFS
- La base de donnée ADFS qu’elle soit sur un SQL ou en WID
- Le certificat SSL service communication ( attention, l’utilisateur qui fait le backup doit être en mesure d’exporter la clé privée du certificat et d’y accéder)
- Les certificats Token signing et token decryption and service communication)
-
Bien entendu toute la configuration ADFS avec
les providers, les attributs stores, les claims provider etc ..
Téléchargement d’ AD FS Rapid Restore Tool
Allez sur le lien suivant afin de télécharger ADFS RRT ( Rapide
restore tool)
Une fois téléchargé, vous aurez un fichier MSi qu’il faudra
installer sur votre serveur ADFS primaire.
Ps : si vous avez plusieurs ADFS serveurs installés
avec une base de données WID, il suffit de faire un Get-SyncProperties
afin de determinerle serveur primaire ADFS, ( vu que ce dernier s’install sur le
serveur ADFS primaire de la ferme ADFS )
Prérequis :
- ADFS Windows Server 2012 R2 / 2016
- .Net framework 4.0
Installation de l’outil
Une fois installé, veuillez importer le module PowerShell d’ADFS
Rapide Tool Restore comme ceci :
import-module 'C:\Program Files (x86)\ADFS Rapid Recreation
Tool\ADFSRapidRecreationTool.dll'
Vérification avec un get-module
On peut voir le module ADFS Rapide restore tool installé sur
notre serveur ADFs comme ceci :
Ce module dispose de deux cmdlets PowerShell :
On peut voir les options que dispose chaque commande comme ceci :
Backup-adfs :
Quelques explication sur les arguments :
- Storage Type : le type de stockage ou sera stocké le backup, possibilité de choisir soit du file système , ce qui veut dire que le backup sera placé dans un système de fichier sur le serveur ou dans un autre serveur ou dans un share par exemple, par contre le type azure vous permettra de stocker le backup dans azure dans un Azure Storage container
- storagePath : chemin du stockage ou sera stocké le backup
- EncryptionPassword :Le mots de passe qui va chiffrer et sécuriser le backup
- AzureConnectionCredentials :credential azure pour la connexion vers azure
- azureStoragecontainer : l’espace de stockage dans Azure ou sera stocké le backup si vous prenez ce type de storage
- BackupComment : commentaire sur le backup
- ServiceAccountCredential : Le compte de service qui fait tourner le service ADFS , ceci est nécessaire uniquement si vous souhaitez sauvegarder le DKM et que vous n’êtes pas Domain admin au moment du lancement du script de backup
en ce qui concerne la commande Backup-adfs :
En ce qui concerne la partie restaure, voici les paramètres :
- Storage Type : même chose que pour la commande backup-adfs
- DecryptionPassword : password qui permet déchiffrer les fichiers de backup ADFS
- AzureConnectionCredentials :credential azure pour la connexion vers azure
- azureStoragecontainer : l’espace de stockage dans Azure ou est stocké le backup si vous prenez ce type de storage
- ADFS name : le nom du service ADFS
- ServiceAccountCredential : compte de service qui fait tourner l’ADFS
- GroupServiceAccountIdentifier : le GMSA si vous souhaitez utiliser pour votre prochain infrastructure ADFS
- DBConnectionString : afin de chercher la base de donnée, il sera possible de la spécifiée ici ( WId ou SQL)
- RestoreDKM : permet de restaurer le DKM
Backup Configuration ADFS
Une fois que nous avons le module PowerShell avec les différents
paramètres, nous pourrons procéder au backup de notre configuration ADFS avec la
commande suivante :
Backup-ADFS -StorageType
"FileSystem" -StoragePath C:\temp\ADFS
-EncryptionPassword "password123"
-BackupComment "sauvegarde
" -BackupDKM
Une fois
sauvegardée on peut voir le backup comme ceci :
Nous
avons :
- Le fichier de configuration
- La base de donnes
- Le DKM
- Les metadata
- Le certificat SSL
- Les paramètres d’installation
Il est possible de faire plusieurs type de backup :
Backup sans le DKM :
Backup-ADFS -StorageType
"FileSystem" -StoragePath C:\temp\ADFS
-EncryptionPassword "password123"
-BackupComment "sauvegarde
ADFS "
Backup en spécifiant
le compte de service ADFS :
Backup-ADFS -StorageType
"FileSystem" -StoragePath C:\temp\ADFS
-EncryptionPassword "password123"
-BackupComment "sauvegarde
ADFS " -ServiceAccountCredential $svcaccount
Backup dans un container Azure :
$cred =
Get-Credential
Add-AzureAccount -Credential
$cred
Backup-ADFS -StorageType
"Azure" -AzureConnectionCredentials
$cred
-AzureStorageContainer "adfs"
-EncryptionPassword "password123" -BackupComment
"Clean Install of ADFS"
Restauration Configuration ADFS
Afin de restaurer votre configuration ADFS alley sur
votre nouveau server ADFS, faudra que ce dernier soit joint au domaine et
lancez la commande suivante :
Ps . la commande restore-adfs s-occupe bien entendu d-installer la ferme ADFS etc en amont >
Restore-ADFS -StorageType
“FileSystem” -StoragePath
“D:\Data\ADFS” -DecryptionPassword
“password123” -RestoreDKM
-DBConnectionString “WID”
Ici il faudra spécifier la DBconnectionstring afin de spécifier
la base de données ADFS , ici j’ai utilis; la WID.
Il est possible de faire plusieurs type de restauration également :
Restauration ADFS depuis un azure Storage container :
$cred =
Get-Credential
Add-AzureAccount -Credential
$cred
Restore-ADFS -StorageType "Azure" -AzureConnectionCredential $cred -DecryptionPassword "password123" -AzureStorageContainer "adfs"
Restauration ADFS avec une configuration SQL :
Restore-ADFS -StorageType "FileSystem" -StoragePath "D:\Data\ADFS” -DecryptionPassword "password123" - DBConnectionString
"Data Source=srvsql\SQLDBADFS; Integrated Security=True"
Restauration ADFS en spécifiant le compte de service ADFS :
Restore-ADFS -StorageType
"FileSystem" -StoragePath
“D:\Data\ADFS” -DecryptionPassword
"password123" -ServiceAccountCredential $cred
Restauration
ADFS avec un GMSA ( group managed service account)
Restore-ADFS -StorageType
"FileSystem" -StoragePath
“D:\Data\ADFS” -DecryptionPassword
"password123" -GroupServiceAccountIdentifier
"mscloud\svcmgadfs$"
Conclusion
Avec cet outils de Microsoft, nous avons donc la possibilité
de sauvegarder de manière sécurisée notre configuration ADFS vers un stockage
file système classique ou dans un container Storage dans Azure, ceci nous offre
une grande flexibilité en cas de crash de la configuration ADFS, ce qui
permettra de restaurer son service ADFS de manière optimale.
N’hésitez pas à le mettre en place, c’est facile et ça prend
pas beaucoup de temps, par contre cela peut vous faire gagner du temps et donc
de l’argent en cas de soucis sur l’infrastructure ADFS.
Bien sûr, faire du backup c’est bien, mais tester les backup
c’est encore mieux, donc n’hésitez pas a tester vos backup dans des serveurs cloisonnés
afin de vérifier l’intégrité de vos backups ADFS 😊
Bon backup 😊
Cordialement,
Sezfallah Tagrerout
Microsoft MVP