Strumento di ripristino rapido di Active Directory Federation Services

Active Directory Federation Services (AD FS) viene reso a disponibilità elevata configurando una farm AD FS. Alcune organizzazioni preferiscono una distribuzione AD FS a server singolo per eliminare la necessità di più server AD FS e di un’infrastruttura di bilanciamento del carico di rete. Questo approccio consente di garantire un ripristino rapido del servizio dopo aver risolto potenziali problemi.

Lo strumento di ripristino rapido di AD FS consente di ripristinare i dati di AD FS senza richiedere un backup completo e il ripristino dello stato del sistema operativo o del sistema. Usare lo strumento per esportare una configurazione di AD FS in Azure o in un percorso locale. È possibile applicare i dati esportati a una nuova installazione di AD FS e ricreare o duplicare l'ambiente AD FS.

Scenari di casi d'uso

È possibile usare lo strumento di ripristino rapido di AD FS in vari scenari:

  • Ripristinare rapidamente la funzionalità di AD FS dopo i problemi. Usare lo strumento Ripristino rapido per creare un'installazione ad accesso sporadico di AD FS che può essere distribuita rapidamente al posto del server AD FS online.

  • Distribuire ambienti di test e produzione identici. Creare rapidamente una copia accurata di AD FS di produzione in un ambiente di test. È anche possibile usare lo strumento ripristino rapido per distribuire rapidamente una configurazione di test convalidata nell'ambiente di produzione.

  • Eseguire la migrazione delle configurazioni di DATABASE INTEGRATO (WID) di SQL e Windows. Eseguire la migrazione dei dati con lo strumento di ripristino rapido e passare da una configurazione farm basata su SQL a WID o viceversa.

Nota

Se si usa la replica di tipo merge SQL o i gruppi di disponibilità Always On, lo strumento di ripristino rapido non è supportato. È consigliabile eseguire backup basati su SQL e un backup del certificato SSL.

Contenuti del backup

Lo strumento ripristino rapido esegue il backup della configurazione di AD FS seguente:

  • Database di configurazione di AD FS (SQL o WID)
  • File di configurazione (che si trova nella cartella AD FS)
  • Elenco dei provider di autenticazione personalizzati installati, degli archivi di attributi e dei provider di attestazioni locali
  • Firma e decrittografia automatica di certificati e chiavi private dal contenitore DKM (Distributed Key Manager) di Active Directory
  • Certificato SSL ed eventuali certificati registrati esternamente (firma del token, decrittografia del token e comunicazione del servizio) e chiavi private corrispondenti

Nota

Le chiavi private devono essere esportabili. L'utente che esegue lo script deve disporre dell'autorizzazione per accedere alle chiavi.

Crittografia dei backup

Tutti i dati di backup vengono crittografati prima di essere inseriti nel cloud o archiviati nel file system.

Ogni documento creato come parte del backup viene crittografato tramite AES-256. La password fornita allo strumento di ripristino rapido viene usata come pass phrase per generare una nuova password tramite la classe Rfc2898DeriveBytes.

La classe RngCryptoServiceProvider genera il salt (BLOB binario) usato da AES e dalla classe Rfc2898DeriveBytes.

Introduzione

Per iniziare a usare lo strumento di ripristino rapido di AD FS, esaminare prima di tutto i requisiti di sistema e degli strumenti seguenti.

  • Lo strumento funziona per AD FS in Windows Server 2016 e versioni successive.
  • Lo strumento richiede .NET Framework 4.6 o versioni successive.
  • Se si usa un WID, lo strumento deve essere eseguito nel server AD FS primario. Usare il cmdlet Get-AdfsSyncProperties per verificare se il server è il server primario.
  • Un ripristino deve essere eseguito in un server AD FS della stessa versione del server di backup e usare lo stesso account di Active Directory dell'account del servizio AD FS.

Per configurare lo strumento, seguire questa procedura:

  1. Scaricare e installare l'identità del servizio gestito nel server AD FS.

  2. Dopo aver installato lo strumento, eseguire il comando seguente da un prompt di PowerShell:

    Import-Module 'C:\Program Files (x86)\ADFS Rapid Recreation Tool\ADFSRapidRecreationTool.dll'
    

Creare backup: Backup-ADFS

Per creare un backup, usare il cmdlet di PowerShell Backup-ADFS. Il cmdlet di backup esegue il backup della configurazione, del database, dei certificati SSL e così via di AD FS.

Prima di usare il cmdlet di backup, esaminare i seguenti requisiti di accesso e autorizzazioni.

  • Esegui come amministratore locale. Per eseguire il cmdlet di backup, l'utente deve essere almeno un amministratore locale.

  • Eseguire il backup come amministratore di dominio. Per eseguire il backup del contenitore Active Directory DKM (necessario nella configurazione predefinita di AD FS), i privilegi utente devono soddisfare uno o più dei criteri seguenti:

    • L'utente deve essere un amministratore di dominio.
    • L'utente deve passare le credenziali dell'account del servizio AD FS.
    • L'utente deve avere accesso al contenitore DKM.
  • Usare l'account del servizio gestito del gruppo come amministratore di dominio. Per un account del servizio gestito di gruppo, l'utente deve essere un amministratore di dominio o avere le autorizzazioni per il contenitore. L'utente non può fornire le credenziali del servizio gestito del gruppo.

Parametri del cmdlet Backup-ADFS

Ogni backup viene denominato in base al modello adfsBackup_ID_Date-Time. Il nome contiene il numero di versione, la data e l'ora del backup.

Di seguito sono riportati i parametri per il cmdlet Backup-ADFS:

Backup-ADFS 
  -StorageType {FileSystem | Azure} 
  -EncryptionPassword <string> 
  -AzureConnectionCredentials <pscredential> 
  -AzureStorageContainer <string> 
  [-BackupComment <string>] 
  [-ServiceAccountCredential <pscredential>]
  [-BackupDKM]
  [<CommonParameters>]
    
Backup-ADFS -StorageType {FileSystem | Azure} 
  -EncryptionPassword <string>
  -StoragePath <string> 
  [-BackupComment <string>]
  [-ServiceAccountCredential <pscredential>]
  [-BackupDKM]
  [<CommonParameters>]

Nell'elenco seguente vengono descritti i dettagli del parametro per il cmdlet Backup-ADFS.

  • BackupDKM: esegue il backup del contenitore Active Directory DKM che contiene le chiavi AD FS nella configurazione predefinita (firma e decrittografia dei certificati generati automaticamente). Questo approccio usa lo strumento Microsoft Entra ldifde per esportare il contenitore Microsoft Entra e tutti i relativi sottoalberi.

  • StorageType <string>: quando l'utente esegue il backup, seleziona il percorso di backup:

    • FileSystem indica che l'utente vuole archiviare il backup in una cartella locale o nella rete. Per archiviare il backup nel file system, l'utente deve soddisfare i seguenti requisiti:

      • È necessario specificare un percorso di archiviazione.

      Nella directory del percorso viene creata una nuova directory per ogni backup. Ogni directory creata contiene i file di cui è stato eseguito il backup.

    • Azure indica che l'utente vuole archiviare il backup nel contenitore di archiviazione di Azure. Per archiviare il backup nel cloud, l'utente deve soddisfare i seguenti requisiti:

      • Le credenziali di Archiviazione di Azure devono essere passate al cmdlet. Le credenziali di archiviazione contengono il nome e la chiave dell'account.
      • È necessario passare anche un nome di contenitore. Se il contenitore non esiste, viene creato durante il backup.
  • EncryptionPassword <string>: password da usare per crittografare tutti i file di cui è stato eseguito il backup prima che vengano archiviati.

  • AzureConnectionCredentials <pscredential>: nome dell'account e chiave per l'account di archiviazione di Azure.

  • AzureStorageContainer <string>: contenitore di archiviazione per il backup in Azure.

  • StoragePath <string>: percorso di archiviazione per i backup.

  • ServiceAccountCredential <pscredential>: l'account del servizio utilizzato per l'attuale servizio AD FS in esecuzione. Questo parametro è necessario solo quando l'utente vuole eseguire il backup di DKM e non è un amministratore di dominio o non può accedere al contenuto del contenitore.

  • BackupComment <string[]>: stringa informativa sul backup da visualizzare durante il ripristino. Questa stringa è simile al concetto di denominazione del checkpoint Hyper-V. Il valore predefinito è una stringa vuota.

Esempi di backup

I seguenti esempi di PowerShell illustrano le opzioni di backup per una configurazione di AD FS con lo strumento di ripristino rapido di AD FS e il cmdlet Backup-ADFS.

Eseguire il backup nel file system con DKM come amministratore di dominio

Il cmdlet seguente esegue il backup della configurazione di AD FS nel file system con DKM usando il parametro -BackupDKM. Questo approccio consente l'accesso al contenuto del contenitore DKM come amministratore di dominio o utente con autorizzazioni delegate.

Backup-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -EncryptionPassword "password" -BackupComment "Clean Install of AD FS (FS)" -BackupDKM

Eseguire il backup nel file system con DKM come amministratore locale

Il cmdlet seguente esegue anche il backup della configurazione di AD FS nel file system con DKM, ma usa un approccio leggermente diverso. In questa opzione si specificano le credenziali dell'account del servizio usando il parametro -ServiceAccountCredential $cred ed eseguire l'operazione come amministratore locale.

Backup-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -EncryptionPassword "password" -BackupComment "Clean Install of AD FS (FS)" -BackupDKM -ServiceAccountCredential $cred

Eseguire il backup nel contenitore di Archiviazione di Azure senza DKM

Il cmdlet seguente esegue il backup della configurazione di AD FS nel contenitore di Archiviazione di Azure senza usare DKM. Usare il parametro -AzureStorageContainer "adfsbackups" per specificare il contenitore.

Backup-ADFS -StorageType "Azure" -AzureConnectionCredentials $cred -AzureStorageContainer "adfsbackups"  -EncryptionPassword "password" -BackupComment "Clean Install of AD FS"

Eseguire il backup nel file system senza DKM

Il seguente cmdlet esegue il backup della configurazione di AD FS nel file system senza usare DKM. Si noti che il parametro -BackupDKM non è specificato.

Backup-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -EncryptionPassword "password" -BackupComment "Clean Install of AD FS (FS)"

Ripristinare i backup: Restore-ADFS

Per applicare una configurazione creata usando il cmdlet Backup-ADFS a una nuova installazione di AD FS, usare il cmdlet Restore-ADFS. Il cmdlet restore crea una nuova farm AD FS usando il cmdlet Install-AdfsFarm e ripristina la configurazione, il database, i certificati e così via ad AD FS.

Il cmdlet di ripristino controlla il percorso di ripristino per i backup esistenti. Il cmdlet chiede all'utente di scegliere un backup appropriato in base alla data e all'ora in cui è stata eseguita e a qualsiasi commento di backup che l'utente potrebbe aver collegato al backup. Se sono presenti più configurazioni ad AD FS con nomi di servizio federativo diversi, all'utente viene prima richiesto di scegliere la configurazione ad AD FS appropriata.

Prima di usare il cmdlet di ripristino, esaminare i seguenti requisiti.

  • Se il ruolo AD FS non è installato nel server, il cmdlet installa il ruolo.
  • L'utente deve essere sia un amministratore locale che quello di dominio per eseguire questo cmdlet.

Importante

Prima di usare lo strumento di ripristino rapido di AD FS per ripristinare un backup, assicurarsi che il server sia aggiunto al dominio.

Parametri del cmdlet Restore-ADFS

Di seguito sono riportati i parametri per il cmdlet Restore-ADFS:

Restore-ADFS 
  -StorageType {FileSystem | Azure} 
  -DecryptionPassword <string> 
  -AzureConnectionCredentials <pscredential>
  -AzureStorageContainer <string>
  [-ADFSName <string>]
  [-ServiceAccountCredential <pscredential>]
  [-GroupServiceAccountIdentifier <string>]
  [-DBConnectionString <string>]
  [-Force]
  [-RestoreDKM]  
  [<CommonParameters>]
    
Restore-ADFS 
  -StorageType {FileSystem | Azure} 
  -DecryptionPassword <string>
  -StoragePath <string>
  [-ADFSName <string>]
  [-ServiceAccountCredential <pscredential>]
  [-GroupServiceAccountIdentifier <string>]
  [-DBConnectionString <string>]
  [-Force]
  [-RestoreDKM]
  [<CommonParameters>]

L'elenco seguente descrive i dettagli del parametro per il cmdlet Restore-ADFS.

  • StorageType <string>: tipo di archiviazione da usare:

    • FileSystem archivia il backup in una cartella locale o nella rete.
    • Azure archivia il backup nel contenitore di Archiviazione di Azure.
  • DecryptionPassword <string>: password usata per crittografare tutti i file di cui è stato eseguito il backup.

  • AzureConnectionCredentials <pscredential>: nome dell'account e chiave per l'account di archiviazione di Azure.

  • AzureStorageContainer <string>: contenitore di archiviazione per archiviare il backup in Azure.

  • StoragePath <string>: percorso di archiviazione per il backup.

  • ADFSName <string>: nome della federazione di cui è stato eseguito il backup e che ora si vuole ripristinare.

    • Quando non viene specificato un nome e esiste un solo nome di servizio federativo, viene usato il nome del servizio federativo.
    • Se viene eseguito il backup di più di un servizio federativo nel percorso, all'utente viene richiesto di scegliere un servizio federativo di cui è stato eseguito il backup.
  • ServiceAccountCredential <pscredential>: specifica l'account del servizio da usare per il nuovo servizio AD FS da ripristinare.

  • GroupServiceAccountIdentifier <string>: account del servizio gestito del gruppo che l'utente vuole usare per il nuovo servizio AD FS da ripristinare.

    • Per impostazione predefinita, se non viene specificato un valore, viene usato il nome dell'account di cui è stato eseguito il backup, se l'account è account del servizio gestito del gruppo.
    • Se non viene specificato un valore e l'account non è account del servizio gestito del gruppo, all'utente viene richiesto di specificare un account del servizio.
  • DBConnectionString <string>: per usare un database diverso per il ripristino, specificare la stringa di connessione SQL o immettere "WID".

  • Force <bool>: ignorare eventuali richieste dallo strumento dopo aver selezionato il processo di backup.

  • RestoreDKM <bool>: ripristinare il contenitore DKM in Active Directory. Impostare questa opzione quando si esegue il ripristino in una nuova istanza di Active Directory e inizialmente è stato eseguito il backup di DKM.

Esempi di ripristino

Gli esempi di PowerShell seguenti illustrano le opzioni di ripristino per una configurazione di AD FS con lo strumento di ripristino rapido di AD FS e il cmdlet Restore-ADFS.

Eseguire il ripristino nel file system con DKM come amministratore di dominio

Il seguente cmdlet ripristina la configurazione di AD FS nel file system con DKM usando il parametro -RestoreDKM.

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -RestoreDKM

Eseguire il ripristino nel file system senza DKM

Il seguente cmdlet ripristina la configurazione di AD FS nel file system senza usare DKM. Si noti che il parametro -RestoreDKM non è specificato.

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password"

Eseguire il ripristino nel contenitore di Archiviazione di Azure senza DKM

Il seguente cmdlet ripristina la configurazione di AD FS nel contenitore di Archiviazione di Azure senza usare DKM. Usare il parametro -AzureStorageContainer "adfsbackups" per specificare il contenitore.

Restore-ADFS -StorageType "Azure" -AzureConnectionCredential $cred -DecryptionPassword "password" -AzureStorageContainer "adfsbackups"

Ripristino in Windows Information Protection

Il seguente cmdlet ripristina la configurazione di AD FS in WID. Si noti il valore WID passato al parametro -DBConnectionString.

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -DBConnectionString "WID"

Eseguire il ripristino in SQL

Il seguente cmdlet ripristina la configurazione di AD FS in SQL. Si notino i valori Data Source e Integrated Security passati al parametro -DBConnectionString.

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -DBConnectionString "Data Source=TESTMACHINE\SQLEXPRESS; Integrated Security=True"

Ripristini con l'account del servizio gestito del gruppo specificato

Il seguente cmdlet ripristina la configurazione di AD FS e usa un account del servizio gestito del gruppo specificato. Si noti l'uso del parametro -GroupServiceAccountIdentifier.

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -GroupServiceAccountIdentifier "mangupd1\adfsgmsa$"

Ripristinare con le credenziali dell'account del servizio specificate

Il seguente cmdlet ripristina la configurazione di AD FS e usa le credenziali dell'account del servizio specificate. Si noti l'uso del parametro -ServiceAccountCredential.

Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -ServiceAccountCredential $cred

File di registro

Viene creato un file di log per ogni operazione di backup e ripristino. I file di log sono disponibili in %LOCALAPPDATA%\ADFSRapidRecreationTool.

Nota

Quando si esegue un ripristino, potrebbe essere creato un file PostRestore_Instructions. Questo file contiene una panoramica dei dati o dei servizi aggiuntivi che devono essere installati manualmente prima di avviare il servizio AD FS. Il file specifica i provider di autenticazione, gli archivi di attributi e i trust del provider di attestazioni locali.

Cronologia delle versioni

Le sezioni seguenti identificano i dettagli della versione per lo strumento di ripristino rapido di AD FS.

Versione 2.0.2464.1

Edizione: dicembre 2023

Problemi risolti:

  • Correzione di bug: distinguere le chiavi CNG & CSP durante il ripristino

Versione 1.0.82.3

Versione: aprile 2020

Problemi risolti:

  • Aggiungere il supporto per i certificati basati su CNG

Versione 1.0.82.0

Versione: luglio 2019

Problemi risolti:

  • Correzione di bug per i nomi degli account del servizio AD FS che contengono caratteri di escape LDAP

Versione 1.0.81.0

Versione: aprile 2019

Problemi risolti:

  • Correzioni di bug per il backup e il ripristino dei certificati
  • Aggiungere altre informazioni di traccia al file di log

Versione 1.0.75.0

Rilascio: agosto 2018

Problemi risolti:

  • Aggiornare il cmdlet Backup-ADFS per l'opzione -BackupDKM. Lo strumento determina se il contesto corrente ha accesso al contenitore DKM. Quando l'accesso è disponibile, lo strumento non richiede privilegi di amministratore di dominio o credenziali dell'account del servizio. Questo aggiornamento consente ai backup automatizzati che non consentono all'utente di fornire in modo esplicito le credenziali o di eseguire l'operazione come account amministratore di dominio.

Versione 1.0.73.0

Rilascio: agosto 2018

Problemi risolti:

  • Aggiornare gli algoritmi di crittografia per assicurarsi che l'applicazione sia conforme a FIPS

    Importante

    I backup precedenti non funzioneranno con la versione più recente dello strumento, a causa delle modifiche apportate agli algoritmi di crittografia per la conformità FIPS.

  • Aggiunta del supporto per i cluster SQL che usano la replica di tipo merge

Versione 1.0.72.0

Rilascio: luglio 2018

Problemi risolti:

  • Correzione di bug: correggere il programma di installazione MSI per supportare gli aggiornamenti sul posto

Versione 1.0.18.0

Rilascio: luglio 2018

Problemi risolti:

  • Correzione di bug: gestire le password dell'account di manutenzione con caratteri speciali (ovvero "&")
  • Correzione di bug: risolvere i problemi relativi all'errore di ripristino perché Microsoft.IdentityServer.Servicehost.exe.config è in uso da un altro processo

Versione 1.0.0.0

Versione: ottobre 2016

Versione iniziale dello strumento di ripristino rapido di AD FS