다음을 통해 공유


이벤트 및 로깅을 사용하여 Active Directory Federation Services 문제 해결

AD FS(Active Directory Federation Services)는 문제 해결에 사용할 수 있는 두 가지 기본 로그를 제공합니다. 화면은 다음과 같습니다.

  • 관리자 로그
  • Tracelog

관리자 로그 보기

관리자 로그는 발생 중이며 기본으로 사용 설정된 문제에 대한 개략적인 정보를 제공합니다. 다음과 같이 관리자 로그를 볼 수 있습니다.

  1. 이벤트 뷰어를 엽니다.

  2. 애플리케이션 및 서비스 로그를 확장합니다.

  3. AD FS를 확장합니다.

  4. 관리를 선택합니다.

    관리자 옵션이 호출된 이벤트 뷰어 스크린샷

Tracelog 사용

Tracelog는 자세한 메시지가 기록되는 위치이며 문제 해결 시 가장 유용한 로그입니다. 짧은 시간 안에 많은 Tracelog 정보를 생성할 수 있어 시스템 성능에 영향을 줄 수 있으므로 로그는 기본적으로 사용하지 않도록 설정됩니다.

다음과 같이 Tracelog를 사용 설정하고 볼 수 있습니다.

  1. 이벤트 뷰어를 열고 애플리케이션 및 서비스 로그를 확장합니다.

  2. 애플리케이션 및 서비스 로그를 마우스 오른쪽 단추로 클릭하고 보기를 선택합니다. 그런 다음 분석 및 디버그 로그 표시를 선택합니다. 이 창에는 더 많은 노드가 표시됩니다.

    사용자가 애플리케이션 및 서비스 로그를 마우스 오른쪽 단추로 클릭하고 분석 및 디버그 로그 표시 옵션이 호출된 보기가 선택된 것을 보여 주는 이벤트 뷰어 스크린샷

  3. AD FS 추적을 확장합니다.

  4. 디버그를 마우스 오른쪽 버튼으로 클릭하고 로그 사용을 선택합니다.

    로그 사용 옵션이 호출된 상태에서 사용자가 마우스 오른쪽 단추로 클릭한 디버그를 보여 주는 이벤트 뷰어 스크린샷

Windows Server 2016 AD FS에 대한 이벤트 감사 정보

기본적으로 Windows Server 2016의 AD FS에는 기본 수준의 감사가 사용 설정되어 있습니다. 기본 감사를 통해 관리자는 단일 요청에 대해 5개 이하의 이벤트를 볼 수 있습니다. 이 정보는 관리자가 단일 요청을 확인하기 위해 확인해야 하는 이벤트 수가 크게 감소했음을 의미합니다. PowerShell cmdlet을 사용하여 감사 수준을 높이거나 낮출 수 있습니다.

Set-AdfsProperties -AuditLevel

다음 표에서는 사용 가능한 감사 수준을 설명합니다.

감사 수준 PowerShell 구문 설명
None Set-AdfsProperties -AuditLevel None 감사를 사용하지 않으며 이벤트가 로그되지 않습니다.
Basic (기본값) Set-AdfsProperties -AuditLevel Basic 단일 요청에 대해 5개 이하의 이벤트가 로그됩니다.
자세한 정보 표시 Set-AdfsProperties -AuditLevel Verbose 모든 이벤트가 로그됩니다. 이 수준은 상당한 양의 요청당 정보를 로그합니다.

현재 감사 수준을 보려면 Get-AdfsProperties PowerShell cmdlet을 사용할 수 있습니다.

감사 수준 속성이 호출된 Get-AdfsProperties cmdlet의 결과를 보여 주는 PowerShell 창의 스크린샷

Set-AdfsProperties -AuditLevel PowerShell cmdlet을 사용하여 감사 수준을 높이거나 낮출 수 있습니다.

명령 프롬프트에 입력된 Set-AdfsProperties -AuditLevel Verbose cmdlet을 보여 주는 PowerShell 창의 스크린샷

이벤트 유형

AD FS에서 처리되는 요청 유형에 따라 AD FS 이벤트에는 다양한 유형이 있습니다. 각 이벤트 유형에는 특정 데이터가 연결되어 있습니다. 이벤트 유형은 로그인 요청과 시스템 요청을 구분할 수 있습니다. 로그인 요청은 토큰 요청일 수 있으며 시스템 요청은 구성 정보 가져오기를 포함하여 서버-서버 호출일 수 있습니다.

다음 표에서는 기본 유형의 이벤트를 설명합니다.

이벤트 유형 이벤트 ID 설명
새 자격 증명 유효성 검사 성공 1202 페더레이션 서비스가 새 자격 증명의 유효성을 성공적으로 검사하는 요청입니다. 이 이벤트에는 WS-Trust, WS-Federation, SAML-P(SSO를 생성하는 첫 번째 레그), OAuth 인증 엔드포인트가 포함됩니다.
새 자격 증명 유효성 검사 오류 1203 새 자격 증명 유효성 검사는 페더레이션 서비스에는 실패 한 요청입니다. 이 이벤트에는 WS-Trust, WS-Fed, SAML-P(SSO를 생성하는 첫 번째 레그), OAuth 인증 엔드포인트가 포함됩니다.
애플리케이션 토큰 성공 1200 페더레이션 서비스가 보안 토큰을 성공적으로 발급하는 요청입니다. WS-Federation 및 SAML-P의 경우 SSO 쿠키 등의 SSO 아티팩트를 사용하여 요청을 처리할 때 이 이벤트가 로그됩니다.
애플리케이션 토큰 실패 1201 페더레이션 서비스에서 보안 토큰 발급에 실패한 요청입니다. WS-Federation 및 SAML-P의 경우 SSO 쿠키 등의 SSO 아티팩트를 사용하여 요청을 처리했을 때 이 이벤트가 로그됩니다.
암호 변경 요청 성공 1204 페더레이션 서비스가 비밀번호 변경 요청을 성공적으로 처리하는 트랜잭션입니다.
암호 변경 요청 오류 1205 페더레이션 서비스가 비밀번호 변경 요청에 실패한 트랜잭션입니다.
로그 아웃 성공 1,206 성공적인 로그아웃 요청을 설명합니다.
로그 아웃 실패 1,207 실패한 로그 아웃 요청을 설명합니다.

보안 감사

AD FS 서비스 계정의 보안 감사는 때때로 비밀번호 업데이트, 요청/응답 로깅, 요청 콘텐츠 헤더 및 디바이스 등록 결과 문제를 추적할 수 있습니다. AD FS 서비스 계정의 감사는 기본적으로 사용 설정이 해제되어 있습니다.

보안 감사 사용

  1. 시작을 선택합니다. 그런 다음 프로그램>관리 도구로 이동한 다음 로컬 보안 정책을 선택합니다.

  2. Security Settings\Local Policies\User Rights Management 폴더로 이동하여 보안 감사 생성을 두 번 클릭합니다.

  3. 로컬 보안 설정 탭에서 AD FS 서비스 계정이 나열되어 있는지 확인합니다. 없는 경우 사용자 추가 또는 그룹을 선택하고 목록에 추가합니다. 그런 다음 확인을 선택합니다.

  4. 상승된 권한으로 명령 프롬프트를 열고 다음 명령을 실행하여 감사를 사용 설정합니다. auditpol.exe /set /subcategory:"Application Generated" /failure:enable /success:enable

  5. 로컬 보안 정책을 닫은 다음 AD FS 관리 스냅인을 엽니다.

  6. AD FS 관리 스냅인을 열려면 시작을 선택합니다. 프로그램>관리 도구로 이동한 다음 AD FS 관리를 선택합니다.

  7. 작업 창에서 페더레이션 서비스 속성 편집을 선택합니다.

  8. 페더레이션 서비스 속성 대화 상자에서 이벤트 탭을 선택합니다.

  9. 성공 감사실패 감사 확인란을 선택합니다.

  10. 확인을 선택합니다.

    성공 감사 및 실패 감사 옵션이 선택되었음을 보여 주는 페더레이션 서비스 속성 대화 상자의 이벤트 탭 스크린샷

참고 항목

이전 지침은 AD FS가 독립 실행형 구성원 서버에 있는 경우에만 사용됩니다. AD FS가 로컬 보안 정책 대신 도메인 컨트롤러에서 실행되는 경우 그룹 정책 관리/포리스트/도메인/도메인 컨트롤러에 있는 기본 도메인 컨트롤러 정책을 사용합니다. 편집을 선택하고 Computer Configuration\Policies\Windows Settings\Security Settings\Local Policies\User Rights Management로 이동합니다.

Windows Communication Foundation 및 Windows Identity Foundation 메시지

추적 로깅 외에도 문제를 해결하기 위해 WCF(Windows Communication Foundation) 및 WIF(Windows Identity Foundation) 메시지를 확인해야 하는 경우가 있습니다. AD FS 서버에서 Microsoft.IdentityServer.ServiceHost.Exe.Config 파일을 수정하여 이러한 메시지를 볼 수 있습니다.

이 파일은 <%system root%>\Windows\ADFS에 있으며 XML 형식입니다. 파일의 관련 부분은 다음 샘플에 나와 있습니다.

<!-- To enable WIF tracing, change the following switchValue to the desired trace level - Verbose, Information, Warning, Error, Critical -->

<source name="Microsoft.IdentityModel" switchValue="Off"> … </source>

<!-- To enable WCF tracing, change the following switchValue to the desired trace level - Verbose, Information, Warning, Error, Critical -->

<source name="System.ServiceModel" switchValue="Off" > … </source>

이러한 변경 내용을 적용한 후 구성을 저장하고 AD FS 서비스를 다시 시작합니다. 적절한 스위치를 설정하여 이러한 추적을 사용 설정하면 Windows 이벤트 뷰어 AD FS 추적 로그에 표시됩니다.

이벤트 상관관계 지정

가장 어려운 문제 중 하나는 수많은 오류를 생성하거나 이벤트를 디버그하는 액세스 문제입니다.

이를 돕기 위해 AD FS는 관리자와 디버그 로그에서 이벤트 뷰어에 기록되는 모든 이벤트의 상관관계를 지정합니다. 이러한 각 로그는 활동 ID라는 고유한 GUID(Globally Unique Identifier)를 사용하여 특정 요청에 해당합니다. AD FS는 패시브 요청자 프로필을 사용하는 애플리케이션에 대한 웹 애플리케이션에 토큰 발급 요청을 표시할 때 이 ID를 생성합니다. 또한 AD FS는 WS-Trust를 사용하는 애플리케이션에 대한 클레임 공급자에 직접 요청을 보낼 때 ID를 생성합니다.

ActivityID 값이 호출된 이벤트 속성 대화 상자의 세부 정보 탭 스크린샷

이 활동 ID는 요청의 전체 기간 동일하게 유지되며 해당 요청에 대한 이벤트 뷰어에 기록된 모든 이벤트의 일부로 로그됩니다. 이것은 다음을 의미합니다.

  • 이 활동 ID를 사용하여 이벤트 뷰어를 필터링하거나 검색하면 토큰 요청에 해당하는 모든 관련 이벤트를 추적할 수 있습니다.
  • 동일한 활동 ID가 다른 컴퓨터에 로그되므로 FSP(페더레이션 서버 프록시)와 같은 여러 컴퓨터에서 사용자 요청 문제를 해결할 수 있습니다.
  • 어떤 식으로든 AD FS 요청이 실패하면 활동 ID도 사용자의 브라우저에 표시되므로 사용자가 지원 센터 또는 IT 지원에 이 ID를 전달할 수 있습니다.

클라이언트 요청 ID 값이 호출된 이벤트 속성 대화 상자의 세부 정보 탭 스크린샷

문제 해결 프로세스 지원을 위해 AD FS는 AD FS 서버에서 토큰 발급 프로세스가 실패할 때마다 호출자 ID 이벤트도 기록합니다. 이 이벤트는 다음 클레임 유형 중 하나의 클레임 유형 및 값을 포함하며, 이 정보가 토큰 요청의 일부로 페더레이션 서비스에 전달되었다고 가정합니다.

  • https://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountnameh
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upnh
  • https://schemas.microsoft.com/ws/2008/06/identity/claims/upn
  • http://schemas.xmlsoap.org/claims/UPN
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressh
  • https://schemas.microsoft.com/ws/2008/06/identity/claims/emailaddress
  • http://schemas.xmlsoap.org/claims/EmailAddress
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
  • https://schemas.microsoft.com/ws/2008/06/identity/claims/name
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier

또한 호출자 ID 이벤트는 해당 활동 ID를 사용하여 특정 요청에 대한 이벤트 로그를 필터링하거나 검색할 수 있도록 활동 ID를 기록합니다.

다음 단계