감사 로그 - Audit Logging
Last updated
Last updated
Audit Logging
Axs는 애플리케이션 내의 모든 상호 작용을 자동으로 기록하는 기능을 제공합니다.
기본적으로 저장된 필드는 다음과 같습니다. 관련 테넌트 ID, 호출자 사용자 ID, 호출 된 서비스 이름 (호출 된 메서드의 클래스), 호출 된 메서드 이름, 실행 매개 변수 (JSON으로 직렬화 됨), 실행 시간, 실행 기간 (밀리 초), 클라이언트의 IP 주소, 클라이언트의 컴퓨터 이름 및 예외.
이 정보를 통해 우리는 누가 작업을 수행했는지 알 수 있을 뿐만 아니라 애플리케이션의 성능을 측정하고 발생한 예외를 확인 할 수도 있습니다. 또한 응용 프로그램 사용에 대한 통계를 얻을 수 있습니다.
감사 시스템은 IAxsSession을 사용하여 현재 UserId 및 TenantId를 가져옵니다.
애플리케이션 컨트롤러, MVC 컨트롤러, 웹 API 및 ASP.NET Core 메서드는 기본적으로 자동으로 감사됩니다.
IAuditingStore
감사 시스템은 IAuditingStore를 사용하여 감사 정보를 저장합니다. 기본적으로 SimpleLogAuditingStore가 사용되고 감사 정보를 로그(log)에 저장합니다.
감사를 구성하려면 모듈(module)의 PreInitialize 메서드에서 Configuration.Auditing 속성을 사용할 수 있습니다.
감사 구성 속성은 다음과 같습니다 :
IsEnabled: 감사 시스템을 완전히 활성화/비 활성화하는데 사용됩니다. 기본값 : true.
IsEnabledForAnonymousUsers: true로 설정하면 시스템에 로그인하지 않은 사용자에 대한 감사 로그가 저장됩니다. 기본값 : false.
Selectors: 감사 로그를 저장할 다른 클래스를 선택하는 데 사용됩니다.
SaveReturnValues: 반환 값 저장을 활성화/비 활성화하는 데 사용됩니다. 기본값 : false.
IgnoredTypes: 정의 된 유형을 무시하는 데 사용됩니다.
Selectors는 감사 로그를 저장하는 다른 유형의 클래스를 선택하기 위한 기능 입니다.
모듈의 PreInitialize 메서드에 선택기를 추가 할 수 있습니다. 애플리케이션 컨트롤러에 대한 감사 로그를 저장하지 않으려면 위의 선택기를 이름으로 제거 할 수도 있습니다. 이것이 고유 한 이름을 갖는 이유입니다 (간단한 LINQ를 사용하여 선택기에서 선택기를 찾고 원하는 경우 제거).
구성별로 감사 클래스를 선택할 수 있지만 단일 클래스 또는 개별 메서드에 대해 Audited 및 DisableAuditing 특성을 사용할 수 있습니다.
MyClass의 모든 메서드는 명시 적으로 비활성화되어 있으므로 MyMethod2를 제외한 모든 메서드가 감사됩니다. Audited 속성은 원하는 방법에 대한 감사를 저장하는 데 사용할 수 있습니다.
DisableAuditing은 DTO의 단일 속성에도 사용할 수 있습니다. 따라서 예를 들어 암호와 같은 감사 로그에서 민감한 데이터를 숨길 수 있습니다.
스웨거를 호출하여 감사로그가 발생이 되도록 호출한다.
아래와 같이 데이터 베이스의 AuditLogs 테이블에서 아래와 같이 호출된 주소에 대한 정보를 확인 할 수 있습니다.
스웨거에서 /api/services/app/Sample/CreateSampleAudited 주소를 호출합니다.