Share via


LsaStorePrivateData 함수(ntsecapi.h)

LSA 프라이빗 데이터 함수 또는 일반 데이터 암호화 및 암호 해독을 사용하지 마세요. 대신 CryptProtectDataCryptUnprotectData 함수를 사용합니다. 비밀 개체 데이터 모델에 설명된 대로 LSA 비밀을 조작해야 하는 경우에만 LSA 프라이빗 데이터 함수를 사용합니다.

구문

NTSTATUS LsaStorePrivateData(
  [in] LSA_HANDLE          PolicyHandle,
  [in] PLSA_UNICODE_STRING KeyName,
  [in] PLSA_UNICODE_STRING PrivateData
);

매개 변수

[in] PolicyHandle

Policy 개체에 대한 핸들입니다. KeyName 매개 변수로 지정된 키 아래에 데이터를 처음 저장하는 경우 핸들에 POLICY_CREATE_SECRET 액세스 권한이 있어야 합니다. 자세한 내용은 정책 개체 핸들 열기를 참조하세요.

[in] KeyName

프라이빗 데이터가 저장되는 키의 이름을 포함하는 LSA_UNICODE_STRING 구조체에 대한 포인터입니다.

[in] PrivateData

저장할 프라이빗 데이터를 포함하는 LSA_UNICODE_STRING 구조체에 대한 포인터입니다. 함수는 저장하기 전에 이 데이터를 암호화합니다.

이 매개 변수가 NULL이면 함수는 키 아래에 저장된 모든 프라이빗 데이터를 삭제하고 키를 삭제합니다. 키에서 데이터를 검색하려는 후속 시도는 STATUS_OBJECT_NAME_NOT_FOUND 오류 코드를 반환합니다.

반환 값

함수가 성공하면 반환 값이 STATUS_SUCCESS.

함수가 실패하면 반환 값은 NTSTATUS 코드입니다. 자세한 내용은 LSA 정책 함수 반환 값을 참조하세요.

LsaNtStatusToWinError 함수를 사용하여 NTSTATUS 코드를 Windows 오류 코드로 변환할 수 있습니다.

설명

LsaStorePrivateData 함수는 서버 애플리케이션에서 클라이언트 및 컴퓨터 암호를 저장하는 데 사용할 수 있습니다.

프라이빗 데이터 개체에 설명된 대로 프라이빗 데이터 개체에는 로컬, 전역 및 컴퓨터의 세 가지 특수 형식이 포함됩니다. 특수화된 개체는 키 이름의 접두사로 식별됩니다. 로컬 개체의 경우 "L$", 전역 개체의 경우 "G$", 컴퓨터 개체의 경우 "M$"입니다. 로컬 개체는 원격으로 액세스할 수 없습니다. 컴퓨터 개체는 운영 체제에서만 액세스할 수 있습니다.

이러한 접두사 외에도 다음 값은 로컬 또는 컴퓨터 개체를 나타냅니다. 이러한 값은 이전 버전과의 호환성을 위해 지원되며 새 로컬 또는 컴퓨터 개체를 만들 때 사용하면 안 됩니다. 로컬 프라이빗 데이터 개체의 키 이름은 "$machine.acc", "SAC", "SAI", "SANSC"이거나 "RasDialParms" 또는 "RasCredentials"로 시작할 수도 있습니다. 컴퓨터 개체의 키 이름은 "NL$" 또는 "sc"로 시작할 수도 있습니다.

이전 키 이름 규칙을 사용하지 않는 프라이빗 데이터 개체는 원격으로 액세스할 수 있으며 다른 도메인에 복제되지 않습니다.

LsaStorePrivateData 함수에 의해 저장된 데이터는 절대로 보호되지 않습니다. 그러나 데이터는 저장되기 전에 암호화되고 키에는 작성자와 관리자만 데이터를 읽을 수 있는 DACL 이 있습니다.

LsaRetrievePrivateData 함수를 사용하여 LsaStorePrivateData에 저장된 값을 검색합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ntsecapi.h
라이브러리 Advapi32.lib
DLL Advapi32.dll

추가 정보

LSA_UNICODE_STRING

LsaRetrievePrivateData