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

AD FS(Active Directory Federation Services)는 문제를 해결하는 데 사용할 수 있는 두 가지 기본 로그를 제공합니다. 아래에 이 계정과 키의 예제가 나와 있습니다.

  • 관리 로그입니다.
  • Tracelog입니다.

관리자 로그 보기

관리 로그는 발생 중이며 기본적으로 사용하도록 설정된 문제에 대한 개략적인 정보를 제공합니다. 관리자 로그를 보려면 다음을 수행합니다.

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

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

  3. AD FS를 확장합니다.

  4. 관리를 선택합니다.

    Screenshot of the Event Viewer with the Admin option called out.

Tracelog 사용

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

Tracelog를 사용하도록 설정하고 보려면

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

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

    Screenshot of the Event Viewer showing that the user right-clicked Applications and Services Log and selected View with the Show Analytic and Debug Logs option called out.

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

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

    Screenshot of the Event Viewer showing that the user right-clicked Debug with the Enable Log option called out.

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 모든 이벤트가 기록됩니다. 이 수준은 요청당 상당한 양의 정보를 기록합니다.

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

Screenshot of the PowerShell window showing the results of the Get-AdfsProperties cmdlet with the Audit Level property called out.

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

Screenshot of the PowerShell window showing the Set-AdfsProperties -AuditLevel Verbose cmdlet typed in the command prompt.

이벤트 유형

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 페더레이션 서비스가 암호 변경 요청을 처리하지 못하는 트랜잭션입니다.
로그 아웃 성공 1206 성공적인 로그아웃 요청에 대해 설명합니다.
로그 아웃 실패 1207 실패한 로그아웃 요청에 대해 설명합니다.

보안 감사

AD FS 서비스 계정의 보안 감사는 암호 업데이트, 요청/응답 로깅, 요청 콘텐츠 헤더 및 디바이스 등록 결과와 관련된 문제를 추적하는 데 도움이 될 수 있습니다. AD FS 서비스 계정의 감사는 기본적으로 사용하지 않도록 설정됩니다.

보안 감사 사용

  1. 시작을 선택합니다. 그런 다음 Programs>관리istrative Tools로 이동한 다음 로컬 보안 정책을 선택합니다.

  2. 보안 설정\로컬 정책\사용자 권한 관리 폴더로 이동한 다음 보안 감사 생성을 두 번 클릭합니다.

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

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

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

  6. AD FS 관리 스냅인을 열려면 시작을 선택합니다. Programs>관리istrative Tools로 이동한 다음, AD FS 관리를 선택합니다.

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

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

  9. 성공 감사 및 실패 감사 검사 상자를 선택합니다.

  10. 확인을 선택합니다.

    Screenshot of the Events tab of the Federation Service Properties dialog box showing that the Success audits and Failure audits options are selected.

참고 항목

이전 지침은 AD FS가 독립 실행형 멤버 서버에 있는 경우에만 사용됩니다. AD FS가 로컬 보안 정책 대신 do기본 컨트롤러에서 실행되는 경우 그룹 정책 관리/포리스트/Do기본s/Do기본 컨트롤러에 있는 기본 Do기본 컨트롤러 정책을 사용합니다. 편집선택하고 컴퓨터 구성\정책\Windows 설정\보안 설정\로컬 정책\사용자 권한 관리로 이동합니다.

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를 생성합니다.

Screenshot of the Details tab of the event Properties dialog box with the ActivityID value called out.

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

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

Screenshot of the Details tab of the event Properties dialog box with the client request ID value called out.

문제 해결 프로세스를 지원하기 위해 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를 기록합니다.

다음 단계