각각의 Application ADFS 거쳐서 로그인을 진행하기 때문에, ADFS에서 로깅을 설정하면, DC 각각의 서버에서 필요 없이 ADFS 에서 확인하면 매우 편리합니다.

 

아래의 기술자료를 참고하여 진행하였습니다.

AD FS Troubleshooting - Events and Logging

https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/troubleshooting/ad-fs-tshoot-logging

 

관리자로그

시작 버튼을 우클릭 - Event Viewer 실행합니다.


Applications and Services Logs - AD FS - Admin 으로 이동합니다.


  • 관리자 로그에서 ADFS 관련된 문제사항이 모두 기록되기 때문에 어떠한 문제가 발생할 , 부분부터 확인하여 문제해결에 접근합니다.

 

추적로그(To enable and view the trace log)

The Trace log is where detailed messages are logged, and will be the most useful log when troubleshooting. Since a lot of trace log information can be generated in a short amount of time, which can impact system performance, the trace logs are disabled by default.

 

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

 

이벤트 뷰어에서 Show Anaytics and Debug Logs


AD FS Tracing - Debug - 우클릭 - Enable log


Event auditing information for AD FS

기본적으로 ADFS Auditing Level Basic 입니다.

 

Get-AdfsProperties |fl audit*


Basic Level 같은 이벤트에 대해서 5 이상 기록하지 않으며, Verbose 모두 기록합니다.


아래의 명령어로 변경할 있습니다.

Set-ADFSProperties -AuditLevel Verbose


이벤트 형식은 다음과 같이 기록 됩니다.


보안 감사

AD FS 서비스 계정의 보안 감사는 때때로 암호 업데이트, 요청/응답 로깅, 요청 하는 요청/응답 로깅, 장치 등록 결과 요청을 추적 하는 데 도움이 될 수 있습니다. AD FS 서비스 계정의 감사는 기본적으로 사용 하지 않도록 설정 되어 있습니다.

 

시작 버튼 - Windows Administrative Toold - Local Security Policy 클릭합니다.


Security Settings\Local Policies\User Rights Management - Generate security audits 더블 클릭합니다.


ADFS 서비스 계정이 표시되어 있는지 확인합니다.


명령 프롬프트 장에서 아래의 명령어를 진행합니다.

auditpol.exe /set /subcategory:"Application Generated" /failure:enable /success:enable


AD FS 관리 스냅인을 실행한 , Actions Pane 에서 Edit Federation Service Properties 클릭합니다.


성공/실패에 대한 Audit 체크 - OK


로컬 서버 보안 정책(secpol.msc) 실행합니다


Local Policies - Audit Policy - Audit Logon events, Audit object access 대해서 감사 설정을 진행합니다.


Windows Communication Foundation and Windows Identity Foundation messages

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

이 파일은 <% system root% > \windows\adfs 에 있으며 XML 형식입니다. 파일의 관련 부분이 다음과 같이 표시 됩니다.

 

C:\Windows\ADFS\Microsoft.IdentityServer.Servicehost.exe.config 메모장으로 열어 줍니다.


아래와 같이 변경합니다.

<source name="Microsoft.IdentityModel" switchValue="Verbose">

   <source name="System.ServiceModel" switchValue="Verbose">

 

수정전


수정후


ADFS 서비스를 재시작합니다.

Restart-service adfssrv


이벤트뷰어의 Security 항목에서 Event ID 1200 확인해보면,


 

아래와 같이 로그인 성공에 대한 상세한 접속정보를 확인할 있습니다.

The Federation Service issued a valid token. See XML for details.

 

Activity ID: d56df849-b077-4d4f-ca00-0080010000f8

 

Additional Data

XML: <?xml version="1.0" encoding="utf-16"?>

<AuditBase xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="AppTokenAudit">

  <AuditType>AppToken</AuditType>

  <AuditResult>Success</AuditResult>

  <FailureType>None</FailureType>

  <ErrorCode>N/A</ErrorCode>

  <ContextComponents>

    <Component xsi:type="ResourceAuditComponent">

      <RelyingParty>https://mail.contoso.kr/owa/</RelyingParty>

      <ClaimsProvider>AD AUTHORITY</ClaimsProvider>

      <UserId>CONTOSO\ex-admin</UserId>

    </Component>

    <Component xsi:type="AuthNAuditComponent">

      <PrimaryAuth>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</PrimaryAuth>

      <DeviceAuth>false</DeviceAuth>

      <DeviceId>N/A</DeviceId>

      <MfaPerformed>false</MfaPerformed>

      <MfaMethod>N/A</MfaMethod>

      <TokenBindingProvidedId>false</TokenBindingProvidedId>

      <TokenBindingReferredId>false</TokenBindingReferredId>

      <SsoBindingValidationLevel>TokenUnbound</SsoBindingValidationLevel>

    </Component>

    <Component xsi:type="ProtocolAuditComponent">

      <OAuthClientId>N/A</OAuthClientId>

      <OAuthGrant>N/A</OAuthGrant>

    </Component>

    <Component xsi:type="RequestAuditComponent">

      <Server>http://sts.contoso.kr/adfs/services/trust</Server>

      <AuthProtocol>WSFederation</AuthProtocol>

      <NetworkLocation>Extranet</NetworkLocation>

      <IpAddress>223.38.24.110</IpAddress>

      <ForwardedIpAddress>223.38.24.110</ForwardedIpAddress>

      <ProxyIpAddress>N/A</ProxyIpAddress>

      <NetworkIpAddress>N/A</NetworkIpAddress>

      <ProxyServer>WAP</ProxyServer>

      <UserAgentString>Mozilla/5.0 (Linux; Android 9; SM-N950N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.81 Mobile Safari/537.36</UserAgentString>

      <Endpoint>/adfs/ls/</Endpoint>

    </Component>

  </ContextComponents>

</AuditBase>


로그아웃을 진행하면, 1206 ID 기록되는 것이 확인됩니다.


ADFSProperties 에서 Auditlevel verbose 진행하였기 때문에 성공뿐만 아니라 과정의 모든기록을 확인할 있습니다.


너무 많은 정보는 불필요할 있기 때문에, 문제가 발생할 이외에는 아래와 같이 Basic 으로 변경하는 것을 권장드립니다.



+ Recent posts