Share via


인증 구조

인증 구조는 다음과 같이 사용량에 따라 분류됩니다.

SSPI 구조체

Sspi.h에 정의된 다음 구조체는 SSPI 함수에서 사용됩니다.

구조체 설명
CREDSSP_CRED Schannel 및 Negotiate 보안 패키지에 대한 인증 데이터를 지정 합니다.
SEC_WINNT_AUTH_IDENTITY 인증을 위해 특정 사용자 이름 및 암호를 런타임 라이브러리에 전달하는 데 사용됩니다.
SEC_WINNT_AUTH_IDENTITY_EX 사용자에 대한 정보를 포함합니다. 이 구조체의 ANSI 및 유니코드 형식이 모두 제공됩니다.
SecBuffer 보안 패키지에 전달하기 위해 전송 애플리케이션에서 할당한 버퍼입니다.
SecBufferDesc 전송 애플리케이션에서 보안 패키지로 전달할 SecBuffer 구조체의 배열입니다.
SecPkgContext_AccessToken 보안 컨텍스트의 액세스 토큰에 대한 핸들을 포함합니다.
SecPkgContext_ClientCreds QueryContextAttributes(CredSSP) 함수를 호출할 때 클라이언트 자격 증명을 지정합니다.
SecPkgContext_ConnectionInfo 프로토콜 및 암호 정보를 포함합니다. 이 구조체는 QueryContextAttributes(일반) 함수에서 사용됩니다.
SecPkgContext_CredentialName 자격 증명 이름을 지정합니다.
SecPkgContext_DceInfo DCE 서비스에서 사용하는 권한 부여 데이터를 포함합니다.
SecPkgContext_EapKeyBlock EAP TLS 인증 프로토콜에서 사용하는 키 데이터를 포함합니다.
SecPkgContext_Flags 보안 컨텍스트의 플래그에 대한 정보를 포함합니다.
SecPkgContext_IssuerListInfoEx 신뢰할 수 있는 CA( 인증 기관 ) 목록을 포함합니다.
SecPkgContext_Lifespan 보안 컨텍스트의 수명을 나타냅니다.
SecPkgContext_Names 보안 컨텍스트와 연결된 사용자의 이름을 포함합니다.
SecPkgContext_NativeNames 아웃바운드 티켓의 클라이언트 및 서버 보안 주체 이름을 포함합니다.
SecPkgContext_NegotiationInfo 설정 중이거나 설정된 보안 패키지 에 대한 정보를 포함합니다. 또한 보안 패키지를 설정하기 위한 협상에 대한 상태 제공합니다.
SecPkgContext_PackageInfo SSP( 보안 지원 공급자 )의 이름을 포함합니다.
SecPkgContext_PasswordExpiry 암호 또는 기타 자격 증명의 만료에 대한 정보를 포함합니다.
SecPkgContext_SessionKey 세션 키에 대한 정보를 포함합니다.
SecPkgContext_Sizes 메시지 지원 함수에 사용되는 중요한 구조체의 크기를 포함합니다.
SecPkgContext_StreamSizes 메시지 지원 함수에 사용할 다양한 스트림 특성의 크기를 포함합니다.
SecPkgContext_TargetInformation 보안 컨텍스트에 사용되는 자격 증명에 대한 정보를 포함합니다.
SecPkgCredentials_Names 컨텍스트와 연결된 사용자의 이름을 보유합니다.
SecPkgInfo 이름 및 기능과 같은 보안 패키지에 대한 일반 정보를 제공합니다.
SECURITY_INTEGER 숫자 값을 저장할 구조체입니다. 다른 형식을 정의하는 데 사용됩니다.
SecurityFunctionTable SSPI에 정의된 함수에 대한 포인터가 포함된 디스패치 테이블입니다.

Schannel 구조체

다음 구조체는 Schannel과 함께 사용하도록 정의됩니다.

구조체 설명
SCH_CRED_PUBLIC_CERTCHAIN 단일 인증서를 포함합니다. 이 인증서에서 인증 체인을 빌드할 수 있습니다.
SCH_CRED_SECRET_PRIVKEY 클라이언트 또는 서버를 인증하는 데 필요한 프라이빗 키 정보를 포함합니다.
SCHANNEL_CERT_HASH Schannel에서 사용하는 인증서에 대한 해시 저장소 데이터를 포함합니다.
SCHANNEL_CERT_HASH_STORE Schannel이 커널 모드에서 사용하는 인증서에 대한 해시 저장소 데이터를 포함합니다.
SCHANNEL_ALERT_TOKEN InitializeSecurityContext(Schannel) 함수 또는 AcceptSecurityContext(Schannel) 함수에 대한 호출 대상으로 보낼 SSL(Secure Sockets Layer Protocol) 또는 TSL(전송 계층 보안 프로토콜) 경고를 생성합니다.
SCHANNEL_CLIENT_SIGNATURE InitializeSecurityContext(Schannel) 함수를 호출할 때 클라이언트 인증서의 프라이빗 키에 액세스할 수 없는 경우 클라이언트 서명을 지정합니다(이 경우 함수는 SEC_I_SIGNATURE_NEEDED 반환).
SCHANNEL_CRED Schannel 자격 증명에 대한 데이터를 포함합니다.
SCHANNEL_SESSION_TOKEN InitializeSecurityContext(Schannel) 함수 또는 AcceptSecurityContext(Schannel) 함수를 호출하여 만든 인증 세션에 대해 다시 연결을 사용할 수 있는지 여부를 지정합니다.
SecPkgContext_Authority 인증 기관을 사용할 수 있는 경우 인증 기관의 이름을 포함합니다. CA( 인증 기관 ) 또는 연결을 인증한 서버 또는 도메인의 이름일 수 있습니다.
SecPkgContext_ConnectionInfo 프로토콜 및 암호 정보를 포함합니다. 이 구조체는 QueryContextAttributes(일반) 함수에서 사용됩니다.
SecPkgContext_IssuerListInfoEx 신뢰할 수 있는 인증 기관 목록을 포함합니다.
SecPkgContext_KeyInfo 보안 컨텍스트에서 사용되는 세션 키에 대한 정보를 포함합니다. 이 구조체는 SecPkgContext_ConnectionInfo 구조체로 대체되었습니다.
SecPkgContext_ProtoInfo 사용 중인 프로토콜에 대한 정보를 보유합니다.
SecPkgContext_SessionAppData 세션 컨텍스트에 대한 애플리케이션 데이터를 저장합니다.
SecPkgCred_CipherStrengths 지정된 Schannel 자격 증명에서 사용하는 암호에 허용되는 최소 및 최대 강도를 보유합니다.
SecPkgCred_SupportedAlgs 지정된 Schannel 자격 증명으로 허용되는 알고리즘에 대한 식별자를 포함합니다.
SecPkgCred_SupportedProtocols 지정된 Schannel 자격 증명으로 허용되는 프로토콜을 나타냅니다.
X509Certificate X.509 인증서를 나타냅니다.

사용자 지정 보안 패키지 구조

사용자 지정 보안 패키지 는 다음 구조를 사용합니다.

구조체 설명
LSA_SECPKG_FUNCTION_TABLE 사용자 지정 보안 패키지에서 호출할 수 있는 LSA( 로컬 보안 기관 ) 함수에 대한 포인터 테이블입니다.
SECPKG_CALL_INFO 실행 중인 함수 호출에 대한 정보를 포함합니다.
SECPKG_CLIENT_INFO 보안 패키지의 사용자에 대한 정보를 포함합니다.
SECPK_CONTEXT_THUNKS LSA를 사용하여 In Process로 실행될 보안 패키지에 대한 호출에 대한 정보를 포함합니다.
SECPKG_DLL_FUNCTIONS 클라이언트/서버 애플리케이션을 사용하여 in-process를 실행하는 사용자 지정 보안 패키지에 사용할 수 있는 함수를 포함합니다.
SECPKG_EVENT_DOMAIN_CHANGE 세션 및 컴퓨터 정보를 포함합니다. 이 구조체 이름은 SECPKG_PARAMETERS 구조체의 별칭입니다.
SECPKG_EVENT_NOTIFY 보안 관련 이벤트에 대한 정보를 포함합니다.
SECPKG_EVENT_PACKAGE_CHANGE 보안 패키지 가용성 및 사용에 대한 정보를 포함합니다.
SECPKG_EXTENDED_INFORMATION 보안 패키지에 대한 확장된 정보를 포함합니다.
SECPKG_FUNCTION_TABLE 보안 패키지에서 구현하는 함수에 대한 포인터를 포함합니다.
SECPKG_GSS_INFO 보안 패키지를 식별하는 데 사용되는 GSS OID에 대한 정보를 포함합니다.
SECPKG_MUTUAL_AUTH_LEVEL 보안 패키지에서 사용하는 상호 인증 수준에 대한 정보를 포함합니다.
SECPKG_PARAMETERS 세션 및 컴퓨터 정보를 포함합니다.
SECPKG_PRIMARY_CRED 기본 자격 증명 정보를 포함합니다.
SECPKG_SUPPLEMENTAL_CRED 추가 자격 증명 정보를 포함합니다.
SECPKG_SUPPLEMENTAL_CRED_ARRAY 추가 자격 증명 정보를 포함합니다.
SECPKG_USER_FUNCTION_TABLE 클라이언트/서버 애플리케이션을 사용하여 in-process로 로드된 보안 패키지에 의해 구현된 함수를 포함합니다.
SecurityUserData 로그온한 사용자에 대한 정보를 포함합니다.

네트워크 공급자 구조

다음 구조는 네트워크 공급자 API 및 관련 함수에서 사용됩니다.

구조체 설명
NETCONNECTINFOSTRUCT 네트워크 연결의 성능에 대한 정보를 포함합니다.
NETRESOURCE 열거된 네트워크 리소스에 대한 정보를 포함합니다.
NOTIFYADD 네트워크 연결 작업의 세부 정보를 포함합니다.
NOTIFYCANCEL 네트워크 연결 끊기 작업의 세부 정보를 포함합니다.
NOTIFYINFO 네트워크 연결 또는 연결 끊기 작업에 대한 상태 정보를 포함합니다.
REMOTE_NAME_INFO 원격 범용 이름에 대한 정보를 포함합니다.
UNIVERSAL_NAME_INFO 로컬 범용 이름을 포함합니다.

GINA 구조체

GINA 인터페이스 함수 및 Winlogon 지원 함수는 다음 구조를 사용합니다.

구조체 설명
WLX_CLIENT_CREDENTIALS_INFO_V1_0 클라이언트 자격 증명 정보를 포함합니다.
WLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 자격 증명을 대상 세션으로 투명하게 전송할 수 있는 클라이언트 자격 증명을 포함합니다.
WLX_DESKTOP 데스크톱 정보를 포함합니다.
WLX_DISPATCH_VERSION_1_0 Winlogon 버전 1.0 디스패치 테이블을 포함합니다.
WLX_DISPATCH_VERSION_1_1 Winlogon 버전 1.1 디스패치 테이블을 포함합니다.
WLX_DISPATCH_VERSION_1_2 Winlogon 버전 1.2 디스패치 테이블을 포함합니다.
WLX_DISPATCH_VERSION_1_3 Winlogon 버전 1.3 디스패치 테이블을 포함합니다.
WLX_DISPATCH_VERSION_1_4 Winlogon 버전 1.4 디스패치 테이블을 포함합니다.
WLX_MPR_NOTIFY_INFO 인증 및 식별 정보를 포함합니다.
WLX_PROFILE_V1_0 초기 환경을 설정하는 데 사용되는 정보를 포함합니다.
WLX_PROFILE_V2_0 초기 환경을 설정하는 데 사용되는 정보를 포함합니다.
WLX_TERMINAL_SERVICES_DATA 터미널 서비스 프로필 경로 및 홈 디렉터리 정보를 포함합니다.

로컬 보안 기관 구조

LSA(로컬 보안 기관)는 다음 구조를 사용합니다.

구조체 설명
DOMAIN_PASSWORD_INFORMATION 암호의 최소 길이 및 고유한 암호와 같은 도메인의 암호 정책에 대한 정보를 포함합니다.
KERB_ADD_CREDENTIALS_REQUEST 로그온 세션에 대한 추가 서버 자격 증명을 추가, 제거 또는 바꿀 메시지를 지정합니다.
KERB_ADD_CREDENTIALS_REQUEST_EX 로그온 세션에 대한 추가 서버 자격 증명을 추가, 제거 또는 바꿀 메시지와 해당 자격 증명과 연결된 SPN( 서비스 사용자 이름 )을 지정합니다.
KERB_CERTIFICATE_LOGON 스마트 카드 로그온 세션에 대한 정보를 포함합니다.
KERB_CERTIFICATE_UNLOCK_LOGON 대화형 스마트 카드 로그온 세션 중에 잠긴 워크스테이션의 잠금을 해제하는 데 사용되는 정보를 포함합니다.
KERB_CHANGEPASSWORD_REQUEST 암호를 변경하는 데 사용되는 정보를 포함합니다.
KERB_CRYPTO_KEY Kerberos 암호화 세션 키에 대한 정보를 포함합니다.
KERB_EXTERNAL_NAME 외부 이름에 대한 정보를 포함합니다.
KERB_EXTERNAL_TICKET 외부 티켓에 대한 정보를 포함합니다.
KERB_INTERACTIVE_LOGON 대화형 로그온 세션에 대한 정보를 포함합니다.
KERB_INTERACTIVE_PROFILE 대화형 로그온 프로필에 대한 정보를 포함합니다.
KERB_INTERACTIVE_UNLOCK_LOGON 대화형 로그온 세션 중에 잠긴 워크스테이션의 잠금을 해제하는 데 사용되는 정보를 포함합니다.
KERB_PURGE_TKT_CACHE_REQUEST 티켓 캐시에서 항목을 삭제하는 데 사용되는 정보를 포함합니다.
KERB_QUERY_TKT_CACHE_REQUEST 지정된 사용자 로그온 세션에 대해 캐시된 모든 티켓에 대한 정보를 검색하는 데 사용됩니다.
KERB_QUERY_TKT_CACHE_RESPONSE 티켓 캐시를 쿼리한 결과를 포함합니다.
KERB_RETRIEVE_TKT_REQUEST 티켓을 검색하는 데 사용되는 정보를 포함합니다.
KERB_RETRIEVE_TKT_RESPONSE 티켓 검색의 응답을 포함합니다.
KERB_S4U_LOGON 사용자용 서비스(S4U) 로그온 세션에 대한 정보를 포함합니다.
KERB_SMARTCARD_CSP_INFO 스마트 카드 CSP(암호화 서비스 공급자)에 대한 정보를 포함합니다.
KERB_SMART_CARD_LOGON 스마트 카드 로그온 세션에 대한 정보를 포함합니다.
KERB_SMART_CARD_UNLOCK_LOGON 스마트 카드 로그온 세션 중에 잠긴 워크스테이션의 잠금을 해제하는 데 사용되는 정보를 포함합니다.
KERB_TICKET_CACHE_INFO 캐시된 Kerberos 티켓에 대한 정보를 포함합니다.
KERB_TICKET_LOGON 네트워크 로그온에 대한 프로필 정보를 포함합니다.
KERB_TICKET_PROFILE 대화형 로그온 프로필에 대한 정보를 포함합니다.
KERB_TICKET_UNLOCK_LOGON 워크스테이션의 잠금을 해제하는 정보를 포함합니다.
LSA_DISPATCH_TABLE Windows 인증 패키지 에서 호출할 수 있는 LSA 함수에 대한 포인터 테이블입니다.
LSA_STRING ANSI 문자열 및 길이 정보를 포함합니다.
LSA_FOREST_TRUST_BINARY_DATA LSA 포리스트 트러스트 작업에 사용되는 이진 데이터를 포함합니다.
LSA_FOREST_TRUST_COLLISION_INFORMATION LSA 포리스트 트러스트 충돌에 대한 정보를 포함합니다.
LSA_FOREST_TRUST_RECORD LSA 포리스트 트러스트 충돌에 대한 정보를 포함합니다.
LSA_FOREST_TRUST_DOMAIN_INFO 도메인에 대한 식별 정보를 포함합니다.
LSA_FOREST_TRUST_INFORMATION LSA 포리스트 트러스트 정보를 포함합니다.
LSA_FOREST_TRUST_RECORD LSA 포리스트 트러스트 레코드를 포함합니다.
LSA_TOKEN_INFORMATION_NULL 인증되지 않은 시스템 액세스가 필요한 경우에 사용됩니다. 이 구조에는 내용이 없습니다.
LSA_TOKEN_INFORMATION_V1 버전 1 Windows 토큰 개체에 인증 패키지가 배치할 수 있는 정보를 포함합니다.
MSV1_0_CHANGEPASSWORD_REQUEST 사용되지 않습니다.
MSV1_0_CHANGEPASSWORD_RESPONSE 사용되지 않습니다.
MSV1_0_ENUMUSERS_REQUEST 사용되지 않습니다.
MSV1_0_ENUMUSERS_RESPONSE 사용되지 않습니다.
MSV1_0_GETUSERINFO_REQUEST 사용되지 않습니다.
MSV1_0_GETUSERINFO_RESPONSE 사용되지 않습니다.
MSV1_0_INTERACTIVE_LOGON 대화형 로그온에 대한 사용자 로그온 정보를 포함합니다.
MSV1_0_INTERACTIVE_PROFILE 대화형 로그온 프로필에 대한 정보를 포함합니다.
MSV1_0_LM20_LOGON 네트워크 로그온에 사용되는 로그온 정보를 포함합니다.
MSV1_0_LM20_LOGON_PROFILE 네트워크 로그온 세션에 대한 정보를 포함합니다.
MSV1_0_SUBAUTH_LOGON 하위 인증 DLL에서 사용됩니다.
MSV1_0_SUBAUTH_REQUEST 하위 인증 패키지에 전달할 정보를 포함합니다.
MSV1_0_SUBAUTH_RESPONSE 하위 인증 패키지의 응답을 포함합니다.
MSV1_0_SUPPLEMENTAL_CREDENTIAL Kerberos 또는 사용자 지정 인증 패키지에서 MSV1_0 자격 증명 을 전달하는 데 사용됩니다.
NETLOGON_LOGON_IDENTITY_INFO Msv1_0SubAuthenticationRoutineMsv1_0SubAuthenticationFilter 로그온 하위 인증을 위해 사용자에 대한 정보를 전달하는 데 사용됩니다.
OLD_LARGE_INTEGER 64비트 부가 정수 값을 두 개의 32비트 정수로 나타내는 데 사용됩니다.
QUOTA_LIMITS 사용자가 사용할 수 있는 시스템 리소스의 양을 설명합니다.
SR_SECURITY_DESCRIPTOR 사용자의 보안 권한에 대한 정보를 포함합니다 .
USER_ALL_INFORMATION 세션 사용자에 대한 정보를 포함합니다. 하위 인증 패키지와 함께 사용됩니다.

자격 증명 관리 구조

자격 증명 관리 API에는 다음 구조가 포함됩니다.

구조체 설명
CERT_CREDENTIAL_INFO 인증서에 대한 참조를 포함합니다.
자격 증명 개별 자격 증명을 포함합니다.
CREDENTIAL_ATTRIBUTE 자격 증명의 애플리케이션 정의 특성을 포함합니다.
CREDENTIAL_TARGET_INFORMATION 대상 컴퓨터의 이름, 도메인 및 트리를 포함합니다.
CREDUI_INFO 자격 증명 관리 대화 상자의 모양을 제어합니다.
USERNAME_TARGET_CREDENTIAL_INFO 자격 증명에 대한 참조를 포함합니다. 이 구조체는 CredMarshalCredential 함수 및 CredUnmarshalCredential에서 사용자 이름을 전달하는 데 사용됩니다.

스마트 카드 구조

스마트 카드는 다음과 같은 구조를 제공합니다.

구조체 설명
OPENCARD_SEARCH_CRITERIA SCardUIDlgSelectCard 함수에서 사용하는 특정 검색 정보를 제공합니다.
OPENCARDNAME GetOpenCardName 함수에서 사용하는 정보를 제공합니다.
OPENCARDNAME_EX SCardUIDlgSelectCard 함수에서 사용하는 정보를 제공합니다.
SCARD_ATRMASK SCardLocateCardsByATR을 사용하여 카드를 찾습니다.
SCARD_IO_REQUEST 프로토콜 제어 정보 구조를 시작합니다.
SCARD_READERSTATE 판독기 내에서 스마트 카드를 추적합니다.