윈로그온(Winlogon)은 SAS를 다루고, 로그온 시 사용자 프로필을 로드하며, 화면 보호기가 실행중일 시에 컴퓨터를 잠그는 역할을 하는 마이크로소프트 윈도우운영 체제의 구성 요소이다. 사용자 정보에 대한 실제 확인과 입수는 다른 구성 요소가 한다. 윈로그온은 자신의 함수와 메모리를 조작하는 여러 위협들의 흔한 목표가 된다. 이 프로세스의 메모리 사용이 증가한 경우 "하이재킹"되었을 가능성이 있다. 윈도우 비스타 이후로 윈로그온의 역할과 책임은 상당히 바뀌게 된다.
윈로그온은 인증 정책과 독립적인 인터페이스 함수들을 다룬다. 이것은 윈도우 스테이션을 위해 데스크톱을 생성하고, 타임아웃 과정을 구현하며, 윈도우 비스타 버전 이전에는 GINA를 위한 지원 함수를 제공하고, 머신의 설정과 사용자의 그룹 정책에 대한 책임을 가졌다.
윈로그온은 또한 윈도우 XP 버전 이후로는 이 윈도우가 합법적인 라이선스를 가졌는지도 확인한다.
윈로그온은 아래와 같은 책임을 진다.
윈도우 스테이션과 데스크톱 보호
윈로그온은 각각이 적절하게 접근 가능한지를 보장함으로써 윈도우 스테이션과 상응하는 데스크톱들에 대한 보호를 세팅한다. 대개 이것은 로컬 시스템이 객체들에 대해 모든 권한을 가질 것이고, 로그온한 사용자는 윈도우 스테이션 객체에 대한 읽기 권한과 애플리케이션 데스크톱 객체에 대한 모든 권한을 가질 것이라는 것을 의미한다.
표준 SAS 인식
윈로그온은 Control-Alt-Delete secure attention sequence (SAS) 이벤트를 감시할 수 있게 해주는 User32 서버에 대한 특별한 훅(hook)을 가진다. 윈로그온은 이 SAS 이벤트 정보를 GINA가 자신의 SAS로서 사용 가능하게 만들어 준다. 대개 GINA는 자신의 SAS를 감시해야 하지만, 표준Ctrl+Alt+Del SAS의 경우 윈로그온의 지원을 통해 자신의 것으로 인식한다.
SAS 루틴 디스패칭
윈로그온이 SAS 이벤트에 직면하거나 GINA에 의해 SAS가 배달될 경우, 윈로그온은 상황에 맞는 세팅을 하고, 윈로그온 데스크탑으로 바꾸며, GINA의 SAS 처리 함수 중 하나를 호출한다.
사용자 프로필 로딩
사용자가 로그온을 하면, 자신의 사용자 프로필은 레지스트리로 로드된다. 이렇게 하여, 사용자의 프로세스들은 HKEY_CURRENT_USER라고 하는 특별한 레지스트리 키를 사용할 수 있게된다. 윈로그온은 이 과정을 로그온 성공 이후로 (하지만 로그온한 사용자의 셸이 활성화되기 전에) 자동으로 수행한다.
사용자 셸에 대한 보안 할당
사용자가 로그온을 하면, GINA는 하나 또는 그 이상의 사용자 초기 프로세스를 생성할 책임이 있다. 윈로그온은 GINA를 위한 지원 함수를 제공하여 로그온한 사용자의 보안을 이 프로세스들에게 적용되게 한다. 그러나 이것을 하는 우선적인 방법은 GINA에게 CreateProcessAsUser 함수를 호출하여 시스템에게 서비스를 제공하는 것이다.
화면 보호기 제어
윈로그온은 키보드와 마우스의 활동을 감시하여 화면 보호기를 활성화 할지를 결정한다. 화면 보호기가 활성화 된 이후, 윈로그온은 키보드와 마우스의 활동을 계속 감시해서 화면 보호기를 종료할지를 결정한다. 만약 화면 보호기가 보안으로 표시된 경우, 윈로그온은 워크스테이션이 잠긴것으로 치부한다. 이 때 키보드나 마우스가 움직인다면 윈로그온은 GINA의 WlxDisplayLockedNotice 함수를 호출하고 잠긴 워크스테이션을 다시 시작한다. 만약 화면 보호기가 보안 설정이 되어있지 않다면 GINA에 대한 통보 없이 화면 보호기는 종료된다.
복합 네트워크 제공자 지원
윈도우 시스템에 설치된 복합 네트워크는 인증 프로세스에 포함될 수 있다. 이 포함은 윈로그온의 보안 데스크톱을 사용함으로써 추가적인 네트워크들에게 식별과 인증 정보를 보통의 로그온 과정에서 한번에 모을 수 있게 한다. 윈로그온 서비스 중에 요구되는 몇몇 파라미터들은 GINA가 분명하게 이 추가적인 네트워크 제공자들을 지원할 수 있게 해준다.