Active Directory Federation Services 빠른 복원 도구

AD FS(Active Directory Federation Services)는 AD FS 팜을 설정하여 높은 가용성을 제공합니다. 일부 조직에서는 여러 AD FS 서버 및 네트워크 부하 분산 인프라가 필요하지 않도록 단일 서버 AD FS 배포를 선호합니다. 이 방법은 잠재적인 문제를 해결한 후 서비스를 신속하게 복원하는 데 도움이 됩니다.

AD FS 빠른 복원 도구는 운영 체제 또는 시스템 상태의 전체 백업 및 복원 없이 AD FS 데이터를 복원하는 방법을 제공합니다. 도구를 사용하여 AD FS 구성을 Azure 또는 온-프레미스 위치로 내보냅니다. 내보낸 데이터를 새 AD FS 설치에 적용하고 AD FS 환경을 다시 만들거나 복제할 수 있습니다.

사용 사례 시나리오

다양한 시나리오에서 AD FS 빠른 복원 도구를 사용할 수 있습니다.

  • 문제 발생 후 AD FS 기능을 신속하게 복원합니다. 빠른 복원 도구를 사용하여 온라인 AD FS 서버 대신 신속하게 배포할 수 있는 AD FS의 콜드 대기 설치를 만듭니다.

  • 동일한 테스트 및 프로덕션 환경을 배포합니다. 테스트 환경에서 프로덕션 AD FS의 정확한 복사본을 신속하게 만듭니다. 빠른 복원 도구를 사용하여 유효성이 검사된 테스트 구성을 프로덕션에 신속하게 배포할 수도 있습니다.

  • SQL 및 WID(Windows 통합 데이터베이스) 구성을 마이그레이션합니다. 빠른 복원 도구를 사용하여 데이터를 마이그레이션하고 SQL 기반 팜 구성에서 WID로 또는 그 반대로 이동합니다.

참고 항목

SQL 병합 복제 또는 Always on 가용성 그룹을 사용하는 경우 빠른 복원 도구는 지원되지 않습니다. SQL 기반 백업 및 SSL 인증서 백업을 사용하는 것이 좋습니다.

백업 내용

빠른 복원 도구는 다음 AD FS 구성을 백업합니다.

  • AD FS 구성 데이터베이스(SQL 또는 WID)
  • 구성 파일(AD FS 폴더에 있음)
  • 설치된 사용자 지정 인증 공급자, 특성 저장소 및 로컬 클레임 공급자 트러스트 목록
  • Active Directory DKM(Distributed Key Manager) 컨테이너에서 자동으로 생성된 토큰 서명 및 인증서 및 프라이빗 키 암호 해독
  • SSL 인증서 및 외부에 등록된 인증서(토큰 서명, 토큰 암호 해독 및 서비스 통신) 및 해당 프라이빗 키

참고 항목

프라이빗 키를 내보낼 수 있어야 합니다. 스크립트를 실행하는 사용자에게는 키에 액세스할 수 있는 권한이 있어야 합니다.

백업 암호화

모든 백업 데이터는 클라우드로 푸시되거나 파일 시스템에 저장되기 전에 암호화됩니다.

백업의 일부로 만든 각 문서는 AES-256을 사용하여 암호화됩니다. 빠른 복원 도구에 제공된 암호는 클래스를 통해 Rfc2898DeriveBytes 새 암호를 생성하는 전달 구로 사용됩니다.

클래스는 RngCryptoServiceProvider AES 및 Rfc2898DeriveBytes 클래스에서 사용하는 솔트(이진 Blob)를 생성합니다.

시작하기

AD FS 빠른 복원 도구를 시작하려면 먼저 다음 시스템 및 도구 요구 사항을 검토합니다.

  • 이 도구는 Windows Server 2016 이상에서 AD FS에 대해 작동합니다.
  • 이 도구에는 .NET Framework 4.0 이상이 필요합니다.
  • WID를 사용하는 경우 도구가 기본 AD FS 서버에서 실행되어야 합니다. cmdlet을 사용하여 서버가 Get-AdfsSyncProperties 주 서버인지 검사.
  • 복원은 백업 서버와 동일한 버전의 AD FS 서버에서 실행되어야 하며 AD FS 서비스 계정과 동일한 Active Directory 계정을 사용해야 합니다.

다음 단계에 따라 도구를 설정합니다.

  1. MSI를 다운로드 하여 AD FS 서버에 설치합니다.

  2. 도구를 설치한 후 PowerShell 프롬프트에서 다음 명령을 실행합니다.

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

백업 만들기: Backup-ADFS

백업을 만들려면 Backup-ADFS PowerShell cmdlet을 사용합니다. 백업 cmdlet은 AD FS 구성, 데이터베이스, SSL 인증서 등을 백업합니다.

백업 cmdlet을 사용하기 전에 다음 액세스 및 권한 요구 사항을 검토합니다.

  • 로컬 관리자로 실행합니다. 백업 cmdlet을 실행하려면 사용자가 최소한 로컬 관리자여야 합니다.

  • 관리자처럼 백업기본. Active Directory DKM 컨테이너(기본 AD FS 구성에 필요)를 백업하려면 사용자 권한이 다음 조건 중 하나 이상을 충족해야 합니다.

    • 사용자는 do기본 관리자여야 합니다.
    • 사용자는 AD FS 서비스 계정 자격 증명을 전달해야 합니다.
    • 사용자에게 DKM 컨테이너에 대한 액세스 권한이 있어야 합니다.
  • 관리자처럼 gMSA 계정을 사용합니다기본. gMSA(그룹 관리 서비스 계정)의 경우 사용자는 할 일기본 관리자이거나 컨테이너에 대한 권한이 있어야 합니다. 사용자가 gMSA 자격 증명을 제공할 수 없습니다.

Backup-ADFS cmdlet 매개 변수

각 백업의 이름은 패턴 adfsBackup_ID_Date-Time에 따라 지정됩니다. 이름에는 백업의 버전 번호, 날짜 및 시간이 포함됩니다.

Backup-ADFS cmdlet에 대한 매개 변수는 다음과 같습니다.

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>]

다음 목록에서는 Backup-ADFS cmdlet에 대한 매개 변수 세부 정보를 설명합니다.

  • BackupDKM: 기본 구성에서 AD FS 키가 포함된 Active Directory DKM 컨테이너를 백업합니다(자동으로 생성된 토큰 서명 및 인증서 암호 해독). 이 방법은 Microsoft Entra ldifde 도구를 사용하여 Microsoft Entra 컨테이너 및 모든 하위 트리를 내보냅니다.

  • StorageType <string>: 사용자가 백업을 수행할 때 백업 위치를 선택합니다.

    • FileSystem 은 사용자가 로컬 폴더 또는 네트워크에 백업을 저장하려고 했음을 나타냅니다. 파일 시스템에 백업을 저장하려면 사용자가 다음 요구 사항을 충족해야 합니다.

      • 스토리지 경로를 지정해야 합니다.

      경로 디렉터리에서 각 백업에 대해 새 디렉터리가 만들어집니다. 만든 각 디렉터리에는 백업된 파일이 포함됩니다.

    • Azure 는 사용자가 Azure Storage 컨테이너에 백업을 저장하려고 했음을 나타냅니다. 클라우드에 백업을 저장하려면 사용자가 다음 요구 사항을 충족해야 합니다.

      • Azure Storage 자격 증명은 cmdlet에 전달되어야 합니다. 스토리지 자격 증명에는 계정 이름 및 키가 포함됩니다.
      • 컨테이너 이름도 전달해야 합니다. 컨테이너가 없으면 백업 중에 만들어집니다.
  • EncryptionPassword <string>: 백업된 모든 파일이 저장되기 전에 암호화하는 데 사용할 암호입니다.

  • AzureConnectionCredentials <pscredential>: Azure Storage 계정의 계정 이름 및 키입니다.

  • AzureStorageContainer <string>: Azure의 백업에 대한 스토리지 컨테이너입니다.

  • StoragePath <string>: 백업의 스토리지 위치입니다.

  • ServiceAccountCredential <pscredential>: 현재 실행 중인 AD FS 서비스에 사용되는 서비스 계정입니다. 이 매개 변수는 사용자가 DKM을 백업하려고 하고 할 일기본 관리자가 아니거나 컨테이너 콘텐츠에 액세스할 수 없는 경우에만 필요합니다.

  • BackupComment <string[]>: 복원하는 동안 표시할 백업에 대한 정보 문자열입니다. 이 문자열은 Hyper-V 검사point 명명의 개념과 유사합니다. 기본값은 빈 문자열입니다.

백업 예제

다음 PowerShell 예제에서는 AD FS 빠른 복원 도구 및 Backup-ADFS cmdlet을 사용하여 AD FS 구성에 대한 백업 옵션을 보여 줍니다.

마찬가지로 DKM을 사용하여 파일 시스템에 백업기본 관리자

다음 cmdlet은 매개 변수를 사용하여 DKM을 사용하여 -BackupDKM AD FS 구성을 파일 시스템에 백업합니다. 이 방법은 dKM 컨테이너 콘텐츠에 대한 액세스를 할 기본 관리자 또는 위임된 권한이 있는 사용자로 제공합니다.

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

DKM을 로컬 관리자로 사용하여 파일 시스템에 백업

다음 cmdlet은 DKM을 사용하여 파일 시스템에 AD FS 구성을 백업하지만 약간 다른 방법을 사용합니다. 이 옵션에서는 매개 변수를 사용하여 서비스 계정 자격 증명을 -ServiceAccountCredential $cred 지정하고 로컬 관리자로 작업을 실행합니다.

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

DKM 없이 Azure Storage 컨테이너에 백업

다음 cmdlet은 DKM을 사용하지 않고 AD FS 구성을 Azure Storage 컨테이너에 백업합니다. 매개 변수를 -AzureStorageContainer "adfsbackups" 사용하여 컨테이너를 지정합니다.

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

DKM 없이 파일 시스템에 백업

다음 cmdlet은 DKM을 사용하지 않고 파일 시스템에 AD FS 구성을 백업합니다. 매개 변수가 -BackupDKM 지정되지 않았습니다.

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

백업 복원: Restore-ADFS

Backup-ADFS cmdlet을 사용하여 만든 구성을 새 AD FS 설치에 적용하려면 Restore-ADFS cmdlet을 사용합니다. 복원 cmdlet은 cmdlet을 사용하여 Install-AdfsFarm 새 AD FS 팜을 만들고 AD FS 구성, 데이터베이스, 인증서 등을 복원합니다.

복원 cmdlet은 기존 백업의 복원 위치를 검사. cmdlet은 수행된 날짜와 시간 및 사용자가 백업에 연결했을 수 있는 백업 주석에 따라 적절한 백업을 선택하라는 메시지를 사용자에게 표시합니다. 페더레이션 서비스 이름이 다른 여러 AD FS 구성이 있는 경우 사용자에게 먼저 적절한 AD FS 구성을 선택하라는 메시지가 표시됩니다.

복원 cmdlet을 사용하기 전에 다음 요구 사항을 검토합니다.

  • AD FS 역할이 서버에 설치되어 있지 않으면 cmdlet에서 역할을 설치합니다.
  • 이 cmdlet을 실행하려면 사용자는 로컬 관리자여야 하며 기본 관리자여야 합니다.

Important

AD FS 빠른 복원 도구를 사용하여 백업을 복원하기 전에 서버가 할 일기본 조인되어 있는지 확인합니다.

Restore-ADFS cmdlet 매개 변수

Restore-ADFS cmdlet에 대한 매개 변수는 다음과 같습니다.

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>]

다음 목록에서는 Restore-ADFS cmdlet에 대한 매개 변수 세부 정보를 설명합니다.

  • StorageType <string>: 사용할 스토리지 유형:

    • FileSystem 은 로컬 폴더 또는 네트워크에 백업을 저장합니다.
    • Azure 는 Azure Storage 컨테이너에 백업을 저장합니다.
  • DecryptionPassword <string>: 모든 백업 파일을 암호화하는 데 사용되는 암호입니다.

  • AzureConnectionCredentials <pscredential>: Azure Storage 계정의 계정 이름 및 키입니다.

  • AzureStorageContainer <string>: Azure에 백업을 저장할 스토리지 컨테이너입니다.

  • StoragePath <string>: 백업의 스토리지 위치입니다.

  • ADFSName <string>: 백업되어 복원할 페더레이션의 이름입니다.

    • 이름이 지정되지 않고 페더레이션 서비스 이름이 하나만 있는 경우 해당 페더레이션 서비스 이름이 사용됩니다.
    • 둘 이상의 페더레이션 서비스가 위치에 백업되는 경우 사용자에게 백업된 페더레이션 서비스를 선택하라는 메시지가 표시됩니다.
  • ServiceAccountCredential <pscredential>: 복원 중인 새 AD FS 서비스에 사용할 서비스 계정을 지정합니다.

  • GroupServiceAccountIdentifier <string>: 사용자가 복원 중인 새 AD FS 서비스에 사용하려는 gMSA입니다.

    • 기본적으로 값이 제공되지 않으면 계정이 gMSA인 경우 백업된 계정 이름이 사용됩니다.
    • 값이 제공되지 않고 계정이 gMSA가 아닌 경우 사용자에게 서비스 계정을 지정하라는 메시지가 표시됩니다.
  • DBConnectionString <string>: 복원에 다른 데이터베이스를 사용하려면 SQL 커넥트ion String을 지정하거나 "WID"를 입력합니다.

  • Force <bool>: 백업 프로세스를 선택한 후 도구에서 프롬프트를 건너뜁니다.

  • RestoreDKM <bool>: DKM 컨테이너를 Active Directory로 복원합니다. 새 Active Directory로 복원할 때 DKM이 처음에 백업될 때 이 옵션을 설정합니다.

복원 예제

다음 PowerShell 예제에서는 AD FS 빠른 복원 도구 및 Restore-ADFS cmdlet을 사용하여 AD FS 구성에 대한 복원 옵션을 보여 줍니다.

마찬가지로 DKM을 사용하여 파일 시스템으로 복원기본 관리자

다음 cmdlet은 매개 변수를 사용하여 DKM을 사용하여 -RestoreDKM AD FS 구성을 파일 시스템에 복원합니다.

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

DKM 없이 파일 시스템으로 복원

다음 cmdlet은 DKM을 사용하지 않고 AD FS 구성을 파일 시스템으로 복원합니다. 매개 변수가 -RestoreDKM 지정되지 않았습니다.

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

DKM 없이 Azure Storage 컨테이너로 복원

다음 cmdlet은 DKM을 사용하지 않고 AD FS 구성을 Azure Storage 컨테이너로 복원합니다. 매개 변수를 -AzureStorageContainer "adfsbackups" 사용하여 컨테이너를 지정합니다.

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

WID로 복원

다음 cmdlet은 AD FS 구성을 WID로 복원합니다. 매개 변수에 WID 전달된 값을 확인합니다 -DBConnectionString .

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

SQL로 복원

다음 cmdlet은 AD FS 구성을 SQL로 복원합니다. 매개 변수에 Data Source 전달된 값과 Integrated Security 값을 확인합니다 -DBConnectionString .

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

지정된 gMSA 계정으로 복원

다음 cmdlet은 AD FS 구성을 복원하고 지정된 gMSA 계정을 사용합니다. 매개 변수의 사용을 확인합니다 -GroupServiceAccountIdentifier .

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

지정된 서비스 계정 자격 증명을 사용하여 복원

다음 cmdlet은 AD FS 구성을 복원하고 지정된 서비스 계정 자격 증명을 사용합니다. 매개 변수의 사용을 확인합니다 -ServiceAccountCredential .

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

로그 파일

모든 백업 및 복원 작업에 대해 로그 파일이 만들어집니다. 로그 파일은 %LOCALAPPDATA%\ADFSRapidRecreationTool에서 찾을 수 있습니다.

참고 항목

복원 을 수행할 때 PostRestore_Instructions 파일이 만들어질 수 있습니다. 이 파일에는 AD FS 서비스를 시작하기 전에 수동으로 설치해야 하는 추가 데이터 또는 서비스에 대한 개요가 포함되어 있습니다. 이 파일은 인증 공급자, 특성 저장소 및 로컬 클레임 공급자 트러스트를 지정합니다.

버전 릴리스 기록

다음 섹션에서는 AD FS 빠른 복원 도구의 버전 세부 정보를 식별합니다.

버전 2.0.2464.1

릴리스: 2023년 12월

수정된 문제:

  • 버그 수정: 복원하는 동안 CNG 및 CSP 키 구분

버전 1.0.82.3

릴리스: 2020년 4월

수정된 문제:

  • CNG 기반 인증서에 대한 지원 추가

버전 1.0.82.0

릴리스: 2019년 7월

수정된 문제:

  • LDAP 이스케이프 문자를 포함하는 AD FS 서비스 계정 이름에 대한 버그 수정

버전 1.0.81.0

릴리스: 2019년 4월

수정된 문제:

  • 인증서 백업 및 복원에 대한 버그 수정
  • 로그 파일에 추가 추적 정보 추가

버전 1.0.75.0

릴리스: 2018년 8월

수정된 문제:

  • -BackupDKM 스위치에 대한 Backup-ADFS cmdlet을 업데이트합니다. 이 도구는 현재 컨텍스트가 DKM 컨테이너에 액세스할 수 있는지 여부를 결정합니다. 액세스를 사용할 수 있는 경우 도구에 Do기본 관리 권한 또는 서비스 계정 자격 증명이 필요하지 않습니다. 이 업데이트를 사용하면 사용자가 명시적으로 자격 증명을 제공하거나 작업을 Do기본 관리istrator 계정으로 실행하지 않는 자동화된 백업을 사용할 수 있습니다.

버전 1.0.73.0

릴리스: 2018년 8월

수정된 문제:

  • 애플리케이션이 FIPS 규격인지 확인하도록 암호화 알고리즘 업데이트

    Important

    FIPS 준수를 위한 암호화 알고리즘의 변경으로 인해 이전 백업은 최신 버전의 도구에서 작동하지 않습니다.

  • 병합 복제본(replica)tion을 사용하는 SQL 클러스터에 대한 지원 추가

버전 1.0.72.0

릴리스: 2018년 7월

수정된 문제:

  • 버그 수정: 현재 위치 업그레이드를 지원하도록 .MSI 설치 관리자 수정

버전 1.0.18.0

릴리스: 2018년 7월

수정된 문제:

  • 버그 수정: 특수 문자를 사용하여 서비스 계정 암호 처리(즉, '&')
  • 버그 수정: Microsoft.IdentityServer.Servicehost.exe.config가 다른 프로세스에서 사용 중이므로 복원 실패와 관련된 문제 해결

버전 1.0.0.0

릴리스: 2016년 10월

AD FS 빠른 복원 도구의 초기 릴리스