인증 구조
인증 구조는 다음과 같이 사용량에 따라 분류됩니다.
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_0SubAuthenticationRoutine 및 Msv1_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 | 판독기 내에서 스마트 카드를 추적합니다. |