Share via


CREDENTIALA 구조체(wincred.h)

CREDENTIAL 구조에는 개별 자격 증명이 포함됩니다.

구문

typedef struct _CREDENTIALA {
  DWORD                  Flags;
  DWORD                  Type;
  LPSTR                  TargetName;
  LPSTR                  Comment;
  FILETIME               LastWritten;
  DWORD                  CredentialBlobSize;
  LPBYTE                 CredentialBlob;
  DWORD                  Persist;
  DWORD                  AttributeCount;
  PCREDENTIAL_ATTRIBUTEA Attributes;
  LPSTR                  TargetAlias;
  LPSTR                  UserName;
} CREDENTIALA, *PCREDENTIALA;

멤버

Flags

자격 증명의 특성을 식별하는 비트 멤버입니다. 정의되지 않은 비트는 0으로 초기화해야 하며 나중에 향상될 수 있도록 변경되지 않아야 합니다.

의미
CRED_FLAGS_PROMPT_NOW
2(0x2)
자격 증명이 CredentialBlob 을 유지하지 않고 이 로그온 세션 중에 자격 증명이 작성되지 않은 경우 비트 집합입니다. 이 비트는 입력 시 무시되며 쿼리할 때 자동으로 설정됩니다.

TypeCRED_TYPE_DOMAIN_CERTIFICATE 경우 인증서의 PIN이 매우 중요한 정보이므로 CredentialBlob은 로그온 세션에서 유지되지 않습니다. 실제로 자격 증명이 자격 증명 관리자에게 기록되면 PIN은 인증서와 연결된 CSP에 전달됩니다. CSP는 인증서에 적합한 PIN 보존 정책을 적용합니다.

형식CRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE 경우 인증 패키지는 CRED_FLAGS_PROMPT_NOW 표시된 자격 증명을 사용할 때 항상 인증 시도에 실패합니다. 애플리케이션(일반적으로 키 링 UI를 통해)은 사용자에게 암호를 묻는 메시지를 표시합니다. 애플리케이션은 자격 증명을 저장하고 인증을 다시 시도합니다. 자격 증명이 최근에 작성되었으므로 인증 패키지는 이제 CRED_FLAGS_PROMPT_NOW 표시되지 않은 자격 증명을 가져옵니다.

CRED_FLAGS_USERNAME_TARGET
4(0x4)
이 자격 증명에 TargetName 멤버가 UserName 멤버와 동일한 값으로 설정된 경우 비트가 설정됩니다. 이러한 자격 증명은 특정 사용자에 대한 CredentialBlob 을 저장하도록 설계된 자격 증명입니다. 자세한 내용은 CredMarshalCredential 함수를 참조하세요 .

이 비트는 Type이 CRED_TYPE_DOMAIN_PASSWORD 또는CRED_TYPE_DOMAIN_CERTIFICATE 경우에만 지정할 수 있습니다.

Type

자격 증명의 형식입니다. 자격 증명을 만든 후에는 이 멤버를 변경할 수 없습니다. 다음 값이 유효합니다.

의미
CRED_TYPE_GENERIC
1(0x1)
자격 증명은 제네릭 자격 증명입니다. 자격 증명은 특정 인증 패키지에서 사용되지 않습니다. 자격 증명은 안전하게 저장되지만 다른 중요한 특성은 없습니다.
CRED_TYPE_DOMAIN_PASSWORD
2(0x2)
자격 증명은 암호 자격 증명이며 Microsoft의 인증 패키지와 관련이 있습니다. NTLM, Kerberos 및 Negotiate 인증 패키지는 명명된 대상에 연결할 때 이 자격 증명을 자동으로 사용합니다.
CRED_TYPE_DOMAIN_CERTIFICATE
3(0x3)
자격 증명은 인증서 자격 증명이며 Microsoft의 인증 패키지와 관련이 있습니다. Kerberos, Negotiate 및 Schannel 인증 패키지는 명명된 대상에 연결할 때 이 자격 증명을 자동으로 사용합니다.
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD
4(0x4)
이 값은 더 이상 지원되지 않습니다.

Windows Server 2003 및 Windows XP: 자격 증명은 암호 자격 증명이며 Microsoft의 인증 패키지와 관련이 있습니다. Passport 인증 패키지는 명명된 대상에 연결할 때 이 자격 증명을 자동으로 사용합니다.

추가 값은 나중에 정의될 예정입니다. 이해하지 못하는 자격 증명 형식을 허용하려면 애플리케이션을 작성해야 합니다.

CRED_TYPE_GENERIC_CERTIFICATE
5(0x5)
자격 증명은 일반 인증 패키지인 인증서 자격 증명입니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

CRED_TYPE_DOMAIN_EXTENDED
6(0x6)
자격 증명은 확장 협상 패키지에서 지원됩니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

CRED_TYPE_MAXIMUM
7(0x7)
지원되는 자격 증명 형식의 최대 수입니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

CRED_TYPE_MAXIMUM_EX
CRED_TYPE_MAXIMUM+1000
이제 새 애플리케이션이 이전 운영 체제에서 실행되도록 허용하는 지원되는 자격 증명 유형의 최대 확장 수입니다.

Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 지원되지 않습니다.

TargetName

자격 증명의 이름입니다. TargetNameType 멤버는 자격 증명을 고유하게 식별합니다. 자격 증명을 만든 후에는 이 멤버를 변경할 수 없습니다. 대신 이전 이름의 자격 증명을 삭제하고 새 이름을 만든 자격 증명을 삭제해야 합니다.

TypeCRED_TYPE_DOMAIN_PASSWORD 또는 CRED_TYPE_DOMAIN_CERTIFICATE 경우 이 멤버는 자격 증명을 사용할 서버 또는 서버를 식별합니다. 멤버는 NetBIOS 또는 DNS 서버 이름, 와일드카드 문자가 포함된 DNS 호스트 이름 접미사, 와일드카드 문자 시퀀스를 포함하는 NetBIOS 또는 DNS 도메인 이름 또는 별표입니다.

TargetName이 DNS 호스트 이름인 경우 TargetAlias 멤버는 호스트의 NetBIOS 이름이 될 수 있습니다.

TargetName이 와일드카드 문자를 포함하는 DNS 호스트 이름 접미사인 경우 DNS 호스트 이름의 맨 왼쪽 레이블은 별표(*)이며, 이는 대상 이름이 지정된 이름으로 끝나는 서버(예: *.microsoft.com)임을 나타냅니다.

TargetName이 와일드카드 문자 시퀀스를 포함하는 도메인 이름인 경우 구문은 도메인 이름 뒤에 백슬래시 및 별표(*)가 되며, 이는 대상 이름이 명명된 도메인(또는 영역)의 멤버인 모든 서버임을 나타냅니다.

TargetName이 와일드카드 문자 시퀀스를 포함하는 DNS 도메인 이름인 경우 TargetAlias 멤버는 동일한 도메인에 와일드카드 시퀀스를 사용하는 NetBIOS 도메인 이름이 될 수 있습니다.

TargetName이 DFS 공유(예: DfsRoot\DfsShare)를 지정하는 경우 이 자격 증명은 특정 DFS 공유 및 해당 DFS 공유를 통해 도달한 모든 서버와 일치합니다.

TargetName이 단일 별표(*)인 경우 이 자격 증명은 모든 서버 이름과 일치합니다.

TargetName이 CRED_SESSION_WILDCARD_NAME 경우 이 자격 증명은 모든 서버 이름과 일치합니다. 이 자격 증명은 단일 별표 앞에 일치하며 PersistCRED_PERSIST_SESSION 경우에만 유효합니다. 자격 증명은 기본 자격 증명을 일시적으로 재정의하려는 애플리케이션에서 설정할 수 있습니다.

이 멤버는 CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (337) 문자보다 길 수 없습니다.

Type이 CRED_TYPE_GENERIC 경우 이 멤버는 실제 대상 외에도 자격 증명을 사용하는 서비스를 식별해야 합니다. Microsoft는 서비스를 구현하는 회사의 이름으로 이름을 접두사로 지정할 것을 제안합니다. Microsoft는 "Microsoft" 접두사를 사용합니다. Microsoft에서 작성한 서비스는 서비스 이름(예: Microsoft_RAS_TargetName)을 추가해야 합니다. 이 멤버는 CRED_MAX_GENERIC_TARGET_NAME_LENGTH (32767) 문자보다 길 수 없습니다.

이 멤버는 대/소문자를 구분하지 않습니다.

Comment

이 자격 증명을 설명하는 사용자의 문자열 주석입니다. 이 멤버는 CRED_MAX_STRING_LENGTH (256자)보다 길 수 없습니다.

LastWritten

조정된 세계시(그리니치 표준시)에서 자격 증명의 마지막 수정 시간입니다. 쓰기 작업의 경우 이 멤버의 값은 무시됩니다.

CredentialBlobSize

CredentialBlob 멤버의 크기(바이트)입니다. 이 멤버는 CRED_MAX_CREDENTIAL_BLOB_SIZE (5*512) 바이트보다 클 수 없습니다.

CredentialBlob

자격 증명에 대한 비밀 데이터입니다. CredentialBlob 멤버를 읽고 쓸 수 있습니다.

Type 멤버가 CRED_TYPE_DOMAIN_PASSWORD 경우 이 멤버에는 UserName에 대한 일반 텍스트 유니코드 암호가 포함됩니다. CredentialBlobCredentialBlobSize 멤버에는 후행 0 문자가 포함되지 않습니다. 또한 CRED_TYPE_DOMAIN_PASSWORD 경우 인증 패키지에서만 이 멤버를 읽을 수 있습니다.

Type 멤버가 CRED_TYPE_DOMAIN_CERTIFICATE 경우 이 멤버에는 UserName에 대한 명확한 테스트 유니코드 PIN이 포함됩니다. CredentialBlobCredentialBlobSize 멤버에는 후행 0 문자가 포함되지 않습니다. 또한 이 멤버는 인증 패키지에서만 읽을 수 있습니다.

Type 멤버가 CRED_TYPE_GENERIC 경우 이 멤버는 애플리케이션에서 정의됩니다.

자격 증명은 이식 가능해야 합니다. 애플리케이션은 CredentialBlob 의 데이터가 이식 가능한지 확인해야 합니다. 애플리케이션은 CredentialBlob에서 데이터의 바이트 엔드리안 및 맞춤을 정의합니다.

Persist

이 자격 증명의 지속성을 정의합니다. 이 멤버는 읽고 쓸 수 있습니다.

의미
CRED_PERSIST_SESSION
1(0x1)
자격 증명은 로그온 세션의 수명 동안 유지됩니다. 이 동일한 사용자의 다른 로그온 세션에는 표시되지 않습니다. 이 사용자가 로그오프하고 다시 로그온한 후에는 존재하지 않습니다.
CRED_PERSIST_LOCAL_MACHINE
2(0x2)
자격 증명은 이 동일한 컴퓨터의 모든 후속 로그온 세션에 대해 유지됩니다. 동일한 컴퓨터에서 이 동일한 사용자의 다른 로그온 세션에 표시되며 다른 컴퓨터에서 이 사용자의 로그온 세션에는 표시되지 않습니다.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter 및 Windows XP Home Edition: 이 값은 지원되지 않습니다.

CRED_PERSIST_ENTERPRISE
3(0x3)
자격 증명은 이 동일한 컴퓨터의 모든 후속 로그온 세션에 대해 유지됩니다. 동일한 컴퓨터에서 이 동일한 사용자의 다른 로그온 세션과 다른 컴퓨터에서 이 사용자에 대한 로그온 세션이 표시됩니다.

관리자 또는 사용자가 로밍 가능 상태가 없도록 사용자 계정을 구성하는 경우 이 옵션을 로컬로 유지 자격 증명으로 구현할 수 있습니다. instance 경우 사용자에게 로밍 프로필이 없는 경우 자격 증명은 로컬로만 유지됩니다.

Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Starter 및 Windows XP Home Edition: 이 값은 지원되지 않습니다.

AttributeCount

자격 증명과 연결할 애플리케이션 정의 특성의 수입니다. 이 멤버는 읽고 쓸 수 있습니다. 해당 값은 CRED_MAX_ATTRIBUTES (64)보다 클 수 없습니다.

Attributes

자격 증명과 연결된 애플리케이션 정의 특성입니다. 이 멤버는 읽고 쓸 수 있습니다.

TargetAlias

TargetName 멤버의 별칭입니다. 이 멤버는 읽고 쓸 수 있습니다. CRED_MAX_STRING_LENGTH(256) 문자보다 길 수 없습니다.

자격 증명 형식CRED_TYPE_GENERIC 경우 이 멤버는 NULL이 아닌 멤버일 수 있지만 자격 증명 관리자는 멤버를 무시합니다.

UserName

TargetName에 연결하는 데 사용되는 계정의 사용자 이름입니다.

자격 증명 형식CRED_TYPE_DOMAIN_PASSWORD 경우 이 멤버는 DomainName UserName 또는 UPN일 수 있습니다.

자격 증명 형식CRED_TYPE_DOMAIN_CERTIFICATE 경우 이 멤버는 CertCredential을 사용하여 CredMarshalCredential 을 호출하여 만든 마샬링된 인증서 참조여야 합니다.

자격 증명 형식CRED_TYPE_GENERIC 경우 이 멤버는 NULL이 아닌 멤버일 수 있지만 자격 증명 관리자는 멤버를 무시합니다.

이 멤버는 CRED_MAX_USERNAME_LENGTH (513) 문자보다 길 수 없습니다.

설명

참고

wincred.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 CREDENTIAL을 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 wincred.h