EOLE_AUTHENTICATION_CAPABILITIES列挙 (objidl.h)

CoInitializeSecurityIClientSecurity::SetBlanket (またはそのヘルパー関数 CoSetProxyBlanket) のさまざまな機能を指定します。

構文

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 サーバー プリンシパル名を fullsic 形式でクライアントに送信します。 名前はサーバー証明書から抽出されます。 完全形式の詳細については、「 プリンシパル名」を参照してください。
EOAC_DEFAULT
値: 0x800
CoInitializeSecurity の呼び出しから有効な機能を使用するように DCOM に指示します。 CoInitializeSecurity が呼び出されなかった場合は、機能フラグにEOAC_NONEが使用されます。 このフラグは、 IClientSecurity::SetBlanket または CoSetProxyBlanket の呼び出しでクライアントのみが設定できます。
EOAC_SECURE_REFS
値: 0x2
分散参照カウント呼び出しを認証して、悪意のあるユーザーがまだ使用されているオブジェクトを解放しないようにします。 クライアントによる CoInitializeSecurity の呼び出しでのみ実行できるこのフラグが設定されている場合、認証レベル ( dwAuthnLevel 内) を none に設定することはできません。

サーバーは常にリリース呼び出しを認証します。 このフラグを設定すると、認証されたクライアントが別の認証済みクライアントのオブジェクトを解放できなくなります。 パフォーマンスは、追加のセキュリティに関連するオーバーヘッドのために影響を受けますが、クライアントでは常にこのフラグを設定することをお勧めします。
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 (activate-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 に実装されている CLSID のみをマーシャリングしたり、CATID_MARSHALERカテゴリ ID を実装したりできるため、任意の 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 [デスクトップ アプリのみ]
Header objidl.h (Objidl.h を含む)

こちらもご覧ください

CoInitializeSecurity

CoSetProxyBlanket

IAccessControl

IClientSecurity::SetBlanket