EOLE_AUTHENTICATION_CAPABILITIES 열거형(objidl.h)

CoInitializeSecurityIClientSecurity::SetBlanket(또는 도우미 함수 CoSetProxyBlanket)의 다양한 기능을 지정합니다.

Syntax

typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
  EOAC_NONE = 0,
  EOAC_MUTUAL_AUTH = 0x1,
  EOAC_STATIC_CLOAKING = 0x20,
  EOAC_DYNAMIC_CLOAKING = 0x40,
  EOAC_ANY_AUTHORITY = 0x80,
  EOAC_MAKE_FULLSIC = 0x100,
  EOAC_DEFAULT = 0x800,
  EOAC_SECURE_REFS = 0x2,
  EOAC_ACCESS_CONTROL = 0x4,
  EOAC_APPID = 0x8,
  EOAC_DYNAMIC = 0x10,
  EOAC_REQUIRE_FULLSIC = 0x200,
  EOAC_AUTO_IMPERSONATE = 0x400,
  EOAC_DISABLE_AAA = 0x1000,
  EOAC_NO_CUSTOM_MARSHAL = 0x2000,
  EOAC_RESERVED1 = 0x4000
} EOLE_AUTHENTICATION_CAPABILITIES;

상수

 
EOAC_NONE
값: 0
기능 플래그가 설정되지 않음을 나타냅니다.
EOAC_MUTUAL_AUTH
값: 0x1
이 플래그를 지정하면 무시됩니다. 상호 인증에 대한 지원은 일부 인증 서비스에서 자동으로 제공됩니다. 자세한 내용은 COM 및 보안 패키지를 참조하세요.
EOAC_STATIC_CLOAKING
값: 0x20
정적 은폐를 설정합니다. 이 플래그가 설정되면 DCOM은 클라이언트의 ID를 결정할 때 스레드 토큰(있는 경우)을 사용합니다. 그러나 클라이언트의 ID는 각 프록시의 첫 번째 호출( SetBlanket 이 호출되지 않은 경우)과 프록시에서 CoSetProxyBlanket 이 호출 될 때마다 결정됩니다. 정적 은폐에 대한 자세한 내용은 은폐를 참조하세요.


CoInitializeSecurityIClientSecurity::SetBlanket 은 두 은폐 플래그가 모두 설정되거나 Schannel이 인증 서비스일 때 플래그가 설정된 경우 오류를 반환합니다.
EOAC_DYNAMIC_CLOAKING
값: 0x40
동적 은폐를 설정합니다. 이 플래그가 설정되면 DCOM은 클라이언트의 ID를 결정할 때 스레드 토큰(있는 경우)을 사용합니다. 프록시에 대한 각 호출에서 현재 스레드 토큰을 검사하여 클라이언트의 ID가 변경되었는지(추가 성능 비용 발생) 클라이언트가 필요한 경우에만 다시 인증되는지 여부를 확인합니다. 동적 은폐는 클라이언트에서만 설정할 수 있습니다. 동적 은폐에 대한 자세한 내용은 은폐를 참조하세요.


CoInitializeSecurityIClientSecurity::SetBlanket 은 두 은폐 플래그가 모두 설정되거나 Schannel이 인증 서비스일 때 플래그가 설정된 경우 오류를 반환합니다.
EOAC_ANY_AUTHORITY
값: 0x80
이 플래그는 사용되지 않습니다.
EOAC_MAKE_FULLSIC
값: 0x100
DCOM이 기본 보안 협상의 일환으로 클라이언트에 전체 형식의 Schannel 서버 보안 주체 이름을 보내도록 합니다. 이름은 서버 인증서에서 추출됩니다. 전체 양식에 대한 자세한 내용은 보안 주체 이름을 참조하세요.
EOAC_DEFAULT
값: 0x800
CoInitializeSecurity 호출에서 유효한 기능을 사용하도록 DCOM에 지시합니다. CoInitializeSecurity가 호출되지 않은 경우 기능 플래그에 EOAC_NONE 사용됩니다. 이 플래그는 IClientSecurity::SetBlanket 또는 CoSetProxyBlanket 호출에서 클라이언트에서만 설정할 수 있습니다.
EOAC_SECURE_REFS
값: 0x2
분산 참조 수 호출을 인증하여 악의적인 사용자가 여전히 사용 중인 개체를 해제하지 못하도록 합니다. 클라이언트에서 CoInitializeSecurity 를 호출할 때만 수행할 수 있는 이 플래그가 설정된 경우 인증 수준( dwAuthnLevel)을 없음으로 설정할 수 없습니다.

서버는 항상 릴리스 호출을 인증합니다. 이 플래그를 설정하면 인증된 클라이언트가 다른 인증된 클라이언트의 개체를 해제할 수 없습니다. 추가 보안과 관련된 오버헤드로 인해 성능이 영향을 받지만 클라이언트는 항상 이 플래그를 설정하는 것이 좋습니다.
EOAC_ACCESS_CONTROL
값: 0x4
CoInitializeSecurity에 대한pSecDesc 매개 변수가 액세스 제어 개체의 IAccessControl 인터페이스에 대한 포인터임을 나타냅니다. DCOM이 보안 검사를 수행하면 IAccessControl::IsAccessAllowed를 호출합니다. 이 플래그는 서버에서만 설정됩니다.


CoInitializeSecurity 는 EOAC_APPID 플래그와 EOAC_ACCESS_CONTROL 플래그가 모두 설정된 경우 오류를 반환합니다.
EOAC_APPID
값: 0x8
CoInitializeSecurity에 대한 pSecDesc 매개 변수가 AppID인 GUID에 대한 포인터임을 나타냅니다. CoInitializeSecurity 함수는 레지스트리에서 AppID를 조회하고 여기에서 보안 설정을 읽습니다. 이 플래그가 설정되면 CoInitializeSecurity에 대한 다른 모든 매개 변수는 무시되며 0이어야 합니다. 서버만 이 플래그를 설정할 수 있습니다. 이 기능 플래그에 대한 자세한 내용은 아래 설명 섹션을 참조하세요.


CoInitializeSecurity 는 EOAC_APPID 플래그와 EOAC_ACCESS_CONTROL 플래그가 모두 설정된 경우 오류를 반환합니다.
EOAC_DYNAMIC
값: 0x10
예약되어 있습니다.
EOAC_REQUIRE_FULLSIC
값: 0x200
Schannel 보안 주체 이름이 fullsic 이외의 형식으로 지정된 CoSetProxyBlanket 호출에 DCOM이 실패하도록 합니다. 이 플래그는 현재 클라이언트에만 사용됩니다. 전체 양식에 대한 자세한 내용은 보안 주체 이름을 참조하세요.
EOAC_AUTO_IMPERSONATE
값: 0x400
예약되어 있습니다.
EOAC_DISABLE_AAA
값: 0x1000
호출자의 ID(activat-as-activator)에서 서버 프로세스가 시작되는 활성화가 E_ACCESSDENIED 실패합니다. 클라이언트에서 CoInitializeSecurity 를 호출할 때만 지정할 수 있는 이 값을 사용하면 권한 있는 계정(예: LocalSystem)에서 실행되는 애플리케이션을 통해 해당 ID가 신뢰할 수 없는 구성 요소를 시작하는 데 사용되지 않도록 할 수 있습니다.

CLSCTX 열거형의 CLSCTX_ENABLE_AAA 사용하는 활성화 호출은 해당 호출에 대해 활성화자 활성화를 허용합니다.
EOAC_NO_CUSTOM_MARSHAL
값: 0x2000
이 플래그를 지정하면 DCOM 또는 COM+를 사용할 때 서버 보안을 보호할 수 있습니다. Ole32.dll, ComAdmin.dll, ComSvcs.dll 또는 Es.dll 구현되거나 CATID_MARSHALER 범주 ID를 구현하는 CLSID만 마샬링할 수 있으므로 임의 DLL을 실행할 가능성이 줄어듭니다. 시스템 작업에 중요한 모든 서비스는 이 플래그를 설정해야 합니다.
EOAC_RESERVED1
값: 0x4000

설명

EOAC_APPID 플래그가 설정되면 CoInitializeSecurity 는 AppID에서 인증 수준을 찾습니다. 인증 수준을 찾을 수 없는 경우 기본 인증 수준을 찾습니다. 기본 인증 수준을 찾을 수 없는 경우 기본 인증 수준의 연결을 생성합니다. 인증 수준이 RPC_C_AUTHN_LEVEL_NONE 않으면 CoInitializeSecurity 는 AppID에서 액세스 권한 값을 찾습니다. 찾을 수 없는 경우 기본 액세스 권한 값을 찾습니다. 찾을 수 없는 경우 기본 액세스 권한을 생성합니다. 다른 모든 보안 설정은 레거시 애플리케이션과 동일한 방식으로 결정됩니다.

AppID가 NULL인 경우 CoInitializeSecurity 는 레지스트리에서 애플리케이션 .exe 이름을 조회하고 거기에 저장된 AppID를 사용합니다. AppID가 없으면 머신 기본값이 사용됩니다.

iClientSecurity::SetBlanket 메서드 및 CoSetProxyBlanket 함수는 capabilities 매개 변수에 EOAC_SECURE_REFS, EOAC_ACCESS_CONTROL, EOAC_APPID, EOAC_DYNAMIC, EOAC_REQUIRE_FULLSIC, EOAC_DISABLE_AAA 또는 EOAC_NO_CUSTOM_MARSHAL 플래그가 설정된 경우 오류를 반환합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
머리글 objidl.h(Objidl.h 포함)

추가 정보

CoInitializeSecurity

CoSetProxyBlanket

IAccessControl

IClientSecurity::SetBlanket