Msv1_0SubAuthenticationFilter 함수(subauth.h)
Msv1_0SubAuthenticationFilter 함수는 도메인 컨트롤러와 관련된 사용자 로그온 인증을 수행합니다.
함수는 사용자의 로그온 데이터와 도메인 컨트롤러의 SAM( 보안 계정 관리자 ) 데이터베이스에 있는 사용자에 대해 찾은 모든 정보를 수신합니다.
이 함수는 Kerberos 및 MSV1_0 인증 패키지와 함께 사용하기 위해 사용자 지정 하위 인증 패키지 DLL에 의해 구현됩니다.
구문
NTSTATUS Msv1_0SubAuthenticationFilter(
[in] NETLOGON_LOGON_INFO_CLASS LogonLevel,
[in] PVOID LogonInformation,
[in] ULONG Flags,
[in] PUSER_ALL_INFORMATION UserAll,
[out] PULONG WhichFields,
[out] PULONG UserFlags,
[out] PBOOLEAN Authoritative,
[out] PLARGE_INTEGER LogoffTime,
[out] PLARGE_INTEGER KickoffTime
);
매개 변수
[in] LogonLevel
LogonInformation에 지정된 정보의 수준을 지정합니다. 이 매개 변수는 일반적으로 NetlogonInteractiveInformation으로 설정됩니다.
[in] LogonInformation
NETLOGON_LOGON_IDENTITY_INFO 구조체에 대한 포인터입니다. 이 구조체의 멤버에는 로그온하는 사용자에 대한 정보가 포함됩니다. LogonDomainName 멤버는 무시됩니다.
[in] Flags
선택 사항입니다. 로그온의 상황을 설명하는 플래그를 포함합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
통과 인증. 사용자가 이 컴퓨터에 연결하지 않습니다. |
|
게스트 계정을 사용하여 로그온을 다시 시도합니다. |
[in] UserAll
SAM 데이터베이스에서 반환된 사용자에 대한 설명을 포함하는 USER_ALL_INFORMATION 구조체에 대한 포인터입니다.
[out] WhichFields
SAM 데이터베이스에 다시 기록해야 하는 USER_ALL_INFORMATION 구조체의 멤버를 반환합니다. 이러한 멤버는 Msv1_0SubAuthenticationFilter 성공을 반환하는 경우에만 작성됩니다. 다음 값만 유효합니다.
값 | 의미 |
---|---|
|
UserAll 구조의 Parameters 멤버에 포함된 데이터를 SAM 데이터베이스에 다시 씁니다.
Parameters 멤버의 UNICODE_STRING 버퍼 크기가 변경되면 Msv1_0SubAuthenticationFilter MIDL_user_free 함수를 사용하여 버퍼를 삭제하고 MIDL_user_allocate 함수를 사용하여 다시 할당해야 합니다. |
[out] UserFlags
해당 함수의 ProfileBuffer 매개 변수에 있는 LsaLogonUser 함수에서 반환할 값입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
게스트 로그온이었습니다. |
|
호출자가 암호화된 자격 증명을 지정하지 않았습니다. |
[out] Authoritative
반환된 상태 원래 호출자에게 반환되어야 하는 신뢰할 수 있는 상태 여부를 나타내는 부울 값에 대한 포인터입니다. 반환된 값이 FALSE이면 다른 도메인 컨트롤러에서 로그온 요청을 다시 시도할 수 있습니다. 이 매개 변수는 함수 호출의 반환 값에 관계없이 유효한 정보를 반환해야 합니다. 이 매개 변수는 Kerberos 인증 패키지와 함께 사용되지 않습니다.
[out] LogoffTime
사용자가 시스템에서 로그오프해야 하는 시간을 수신하는 값에 대한 포인터입니다. 이 시간은 로그온 수명을 제어하는 데 사용되며 GMT 상대 Windows 시스템 시간으로 지정됩니다.
[out] KickoffTime
사용자가 시스템에서 로그오프되어야 하는 시간을 수신하는 값에 대한 포인터입니다. 이 시간은 로그온 수명을 제어하는 데 사용되며 GMT 상대 시스템 시간으로 지정됩니다. 사용자가 자동으로 로그오프되지 않는 경우 다음과 같이 큰 양의 값을 지정합니다.
KickoffTime->HighPart = 0x7FFFFFFF;
KickoffTime->LowPart = 0xFFFFFFFF;
반환 값
이 함수는 다음 값 중 하나를 반환해야 합니다.
반환 코드 | 설명 |
---|---|
|
오류가 없었습니다. |
|
계정을 사용할 수 없습니다. |
|
계정이 만료되었습니다. |
|
계정이 잠겼습니다. |
|
LogonLevel 이 잘못되었습니다. |
|
현재 사용자에게 로그온할 권한이 없습니다. |
|
사용자에게 지정된 워크스테이션에 로그온할 권한이 없습니다. |
|
지정된 사용자에게 계정이 없습니다. |
|
암호가 만료되었습니다. |
|
다음 로그온할 때 암호가 변경되어야 합니다. |
|
암호가 잘못되었습니다. |
Msv1_0SubAuthenticationFilter 함수를 Kerberos 인증 패키지와 함께 사용하는 경우 함수 호출이 STATUS_SUCCESS 반환하고 LogoffTime 또는 KickoffTime의 두 매개 변수 중 하나에 0이 아닌 값이 있는 경우 이 값은 티켓 수명으로 사용됩니다. 반면에 두 매개 변수의 값이 0이 아닌 경우 이 두 값 중 더 작은 값이 사용됩니다.
티켓 수명( LogoffTime 및 KickoffTime의 빠른 시간)에 사용되는 값이 기본 티켓 수명보다 크면 해당 값이 티켓의 최대 갱신 시간으로 사용됩니다. 반대로 두 값 중 큰 값( LogoffTime 및 KickoffTime 이후)이 기본 티켓 수명보다 작으면 이 값이 티켓 수명으로 사용됩니다. 자세한 내용은 Microsoft Kerberos를 참조하세요.
Kerberos 인증 패키지와 함께 사용할 경우 이 함수가 오류를 반환하는 경우 KDC(키 배포 센터)는 상태 값을 확장 오류 코드로 사용하여 Kerberos 오류 KDC_ERR_POLICY 반환합니다.
설명
이 함수의 구현은 LDAP( Lightweight Directory Access Protocol ) 트래픽을 유발하는 작업을 실행해서는 안 됩니다. 예를 들어 Active Directory 데이터베이스에 연결하고 쿼리하지 마세요.
MSV1_0 또는 Kerberos 인증 패키지가 로그온의 유효성을 검사한 후 Msv1_0SubAuthenticationFilter 함수는 추가 유효성 검사를 수행하여 사용자가 네트워크 계정에 로그온할 수 있는지 여부를 확인할 수 있습니다. 이 함수는 도메인 컨트롤러의 레지스트리에서 하위 인증 패키지 DLL이 'Auth0'으로 올바르게 등록된 경우 호출됩니다. 레지스트리 경로는 함수가 MSV1_0 또는 Kerberos 하위 인증 패키지 DLL에 있는지 여부에 따라 다릅니다.
이 필터 루틴은 로그온이 진행되어야 했음을 나타내는 STATUS_SUCCESS 반환하거나 추가 유효성 검사가 실패했음을 나타내는 오류 코드를 반환할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | subauth.h |