AppID 키
하나 이상의 DCOM 개체에 대한 구성 옵션을 레지스트리의 중앙 집중식 위치로 그룹화합니다. 동일한 실행 파일에서 호스트되는 DCOM 개체는 하나의 AppID로 그룹화되어 일반적인 보안 및 구성 설정의 관리를 간소화합니다.
\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID{AppID_GUID}
레지스트리 값 | 설명 |
---|---|
AccessPermission | 이 클래스의 인스턴스에 액세스할 수 있는 보안 주체의 ACL(Access Control List)에 대해 설명합니다. 이 ACL은 CoInitializeSecurity를 호출하지 않는 애플리케이션에서만 사용됩니다. |
ActivateAtStorage | 사용 중이거나 초기화된 영구 상태와 동일한 컴퓨터에서 개체를 인스턴스화하도록 클라이언트를 구성합니다. |
Appid | 명명된 실행 파일에 해당하는 AppID GUID를 식별합니다. |
AppIDFlags | "대화형 사용자"로 실행되도록 구성된 COM 서버가 기본이 아닌 데스크톱의 클라이언트에서 시작되거나 바인딩되는 방법을 구성합니다. |
AuthenticationLevel | CoInitializeSecurity를 호출하지 않는 애플리케이션 또는 CoInitializeSecurity를 호출하고 AppID를 지정하는 애플리케이션의 인증 수준을 설정합니다. |
DllSurrogate | 서로게이트 프로세스에서 DLL 서버를 실행할 수 있습니다. 빈 문자열을 지정하면 시스템에서 제공하는 서로게이트가 사용됩니다. 그렇지 않으면 값은 사용할 서로게이트의 경로를 지정합니다. |
DllSurrogateExecutable | DLL 서버가 DllSurrogate 레지스트리 값과 함께 사용자 지정 서로게이트 프로세스에서 실행되도록 설정합니다. |
엔드포인트 | DCOM 통신에 지정된 TCP 포트 번호를 사용하도록 COM 애플리케이션을 구성합니다. |
LaunchPermission | 이 클래스에 대한 새 서버를 시작할 수 있는 보안 주체의 ACL(Access Control List)에 대해 설명합니다. |
LoadUserSettings | COM이 실행 중인 COM 서버의 사용자 프로필을 시작 사용자 애플리케이션 ID로 로드할지 여부를 결정합니다. |
Localservice | 개체를 서비스 애플리케이션으로 설치합니다. |
PreferredServerBitness | 이 COM 서버에 대해 기본 아키텍처(32비트 또는 64비트)를 설정합니다. |
RemoteServerName | COSERVERINFO 구조가 지정되지 않은 활성화 함수가 호출될 때마다 특정 컴퓨터에서 개체를 실행하도록 클라이언트를 구성합니다. |
ROTFlags | ROT(실행 중인 개체 테이블)에서 COM 서버 등록을 제어합니다. |
Runas | 서비스 애플리케이션으로 작성되지 않고 원격 클라이언트에서 활성화할 때 특정 사용자 계정으로 실행되도록 클래스를 구성합니다. |
ServiceParameters | LocalService 레지스트리 값을 통해 COM에서 사용하기 위해 설치된 개체에 전달할 명령줄 매개 변수를 지정합니다. |
SRPTrustLevel | 애플리케이션에 대한 SRP(소프트웨어 제한 정책) 신뢰 수준을 설정합니다. |
AppID는 두 가지 메커니즘을 사용하여 실행 파일 및 클래스에 매핑됩니다.
- AppID 키를 식별하는 128비트 GUID(Globally Unique Identifier)를 사용합니다. 클래스는 명명된 값 "AppID"의 CLSID 키 아래에 해당하는 AppID를 나타냅니다. 이 매핑은 활성화하는 동안 사용됩니다.
- 실행 파일 이름(예: "MYOLDAPP.EXE")을 나타내는 명명된 값을 사용합니다. 이 명명된 값은 REG_SZ 형식이며 실행 파일과 연결된 AppID의 문자열 표현을 포함합니다. 이 매핑은 기본 액세스 권한 및 인증 수준을 가져오는 데 사용됩니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes 키는 이전 버전의 COM과의 호환성을 위해 유지된 HKEY_CLASSES_ROOT 키에 해당합니다.
COM 서버의 경우 일반적으로 등록 프로세스 중 또는 dcomcnfg.exe 실행할 때 매핑이 생성되고 레지스트리에 기록됩니다. 그러나 AppID 키를 사용하여 보안을 설정하려는 COM 클라이언트는 레지스트리 함수 를 호출하거나 Regedit.exe 사용하여 적절한 레지스트리 키를 만들고 필요한 매핑을 지정해야 합니다. 그런 다음 클라이언트 에 대해 AccessPermission 또는 AuthenticationLevel 과 같은 값을 설정할 수 있습니다. 예를 들어 클라이언트 프로세스에 대한 실행 파일의 이름이 "YourClient.exe"이고 인증 수준을 "None"으로 설정하려는 경우를 가정합니다. Guidgen.exe 또는 Uuidgen.exe 사용하여 실행 파일의 AppID인 GUID를 만듭니다. 그런 다음, 다음 예제와 같이 레지스트리에서 값을 설정합니다. 여기서 00000001 "없음"의 인증 수준을 나타냅니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
{MyGuid}
AuthenticationLevel = 00000001
MyClient.exe
AppID = {MyGUID}