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 Integrated Database) 구성을 마이그레이션합니다. 빠른 복원 도구를 사용하여 데이터를 마이그레이션하고 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.6 이상이 필요합니다.
- WID를 사용하는 경우 도구가 기본 AD FS 서버에서 실행되어야 합니다.
Get-AdfsSyncProperties
cmdlet을 사용하여 서버가 주 서버인지 확인합니다. - 복원은 백업 서버와 동일한 버전의 AD FS 서버에서 실행되어야 하며 AD FS 서비스 계정과 동일한 Active Directory 계정을 사용해야 합니다.
도구를 설정하려면 다음 단계를 따릅니다.
MSI를 AD FS 서버에 다운로드하여 설치합니다.
도구를 설치한 후 PowerShell 프롬프트에서 다음 명령을 실행합니다.
Import-Module 'C:\Program Files (x86)\ADFS Rapid Recreation Tool\ADFSRapidRecreationTool.dll'
백업 생성: Backup-ADFS
백업을 만들려면 Backup-ADFS PowerShell cmdlet을 사용합니다. Backup cmdlet은 AD FS 구성, 데이터베이스, SSL 인증서 등을 백업합니다.
백업 cmdlet을 사용하기 전에 다음 액세스 및 권한 요구 사항을 검토합니다.
로컬 관리자로 실행합니다. 백업 cmdlet을 실행하려면 사용자가 최소한 로컬 관리자여야 합니다.
도메인 관리자로 백업합니다. Active Directory DKM 컨테이너(기본 AD FS 구성에 필요)를 백업하려면 사용자 권한이 다음 조건 중 하나 이상을 충족해야 합니다.
- 사용자는 도메인 관리자여야 합니다.
- 사용자는 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 Entraldifde
도구를 사용하여 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 검사점 이름의 개념과 유사합니다. 기본값은 빈 문자열입니다.
백업 예제
다음 PowerShell 예제에서는 AD FS 빠른 복원 도구 및 Backup-ADFS cmdlet을 사용하여 AD FS 구성에 대한 백업 옵션을 보여 줍니다.
DKM을 도메인 관리자로 사용하여 파일 시스템에 백업
다음 cmdlet은 -BackupDKM
매개 변수를 사용하여 DKM을 사용하여 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은 Install-AdfsFarm
cmdlet을 사용하여 새 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 연결 문자열을 지정하거나 "WID"를 입력합니다.Force <bool>
: 백업 프로세스를 선택한 후 도구에서 프롬프트를 건너뜁니다.RestoreDKM <bool>
: DKM 컨테이너를 Active Directory로 복원합니다. 새 Active Directory로 복원할 때 DKM이 처음에 백업될 때 이 옵션을 설정합니다.
복원 예제
다음 PowerShell 예제에서는 AD FS 빠른 복원 도구 및 Restore-ADFS cmdlet을 사용하여 AD FS 구성에 대한 복원 옵션을 보여 줍니다.
DKM을 도메인 관리자로 사용하여 파일 시스템에 복원
다음 cmdlet은 -RestoreDKM
매개 변수를 사용하여 DKM을 사용하여 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로 복원합니다. -DBConnectionString
매개 변수에 전달된 WID
값을 확인합니다.
Restore-ADFS -StorageType "FileSystem" -StoragePath "C:\Users\administrator\testExport\" -DecryptionPassword "password" -DBConnectionString "WID"
SQL로 복원
다음 cmdlet은 AD FS 구성을 SQL로 복원합니다. -DBConnectionString
매개 변수에 전달된 Data Source
값과 Integrated Security
값을 확인합니다.
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
릴리스: 2023년 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 컨테이너에 액세스할 수 있는지를 결정합니다. 액세스를 사용할 수 있는 경우 도구에 도메인 관리자 권한 또는 서비스 계정 자격 증명이 필요하지 않습니다. 이 업데이트를 사용하면 사용자가 명시적으로 자격 증명을 제공하거나 도메인 관리자 계정으로 작업을 실행하지 않는 자동화된 백업을 사용할 수 있습니다.
버전 1.0.73.0
릴리스: 2018년 8월
수정된 문제:
애플리케이션이 FIPS 규격인지 확인하도록 암호화 알고리즘 업데이트
Important
FIPS 준수를 위한 암호화 알고리즘의 변경으로 인해 이전 백업은 최신 버전의 도구에서 작동하지 않습니다.
병합 복제를 사용하는 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 빠른 복원 도구의 초기 릴리스