EOLE_AUTHENTICATION_CAPABILITIES列挙 (objidlbase.h)
CoInitializeSecurity と IClientSecurity::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 が呼び出されるたびに決定されます。 静的クローキングの詳細については、「 クローキング」を参照してください。 CoInitializeSecurity と IClientSecurity::SetBlanket は、両方のクローキング フラグが設定されている場合、または Schannel が認証サービスのときにいずれかのフラグが設定されている場合にエラーを返します。 |
EOAC_DYNAMIC_CLOAKING 値: 0x40 動的クローキングを設定します。 このフラグが設定されている場合、DCOM はクライアントの ID を決定するときにスレッド トークン (存在する場合) を使用します。 プロキシを呼び出すたびに、現在のスレッド トークンが調べられ、クライアントの ID が変更された (追加のパフォーマンス コストが発生する) かどうかが判断され、必要な場合にのみクライアントが再び認証されます。 動的クローキングは、クライアントのみが設定できます。 動的クローキングの詳細については、「 クローキング」を参照してください。 CoInitializeSecurity と IClientSecurity::SetBlanket は、両方のクローキング フラグが設定されている場合、または Schannel が認証サービスのときにいずれかのフラグが設定されている場合にエラーを返します。 |
EOAC_ANY_AUTHORITY 値: 0x80 このフラグは、互換性のために残されています。 |
EOAC_MAKE_FULLSIC 値: 0x100 DCOM は、既定のセキュリティ ネゴシエーションの一部として、完全形式の Schannel サーバー プリンシパル名をクライアントに送信します。 名前はサーバー証明書から抽出されます。 完全形式の詳細については、「 プリンシパル名」を参照してください。 |
EOAC_DEFAULT 値: 0x800 CoInitializeSecurity の呼び出しから有効な機能を使用するように DCOM に指示します。 CoInitializeSecurity が呼び出されなかった場合は、capabilities フラグに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+ を使用する場合にサーバーのセキュリティを保護できます。 任意の DLL を実行する可能性が低くなります。これは、Ole32.dll、ComAdmin.dll、ComSvcs.dll、または Es.dll に実装されている、またはCATID_MARSHALERカテゴリ ID を実装する CLID のみをマーシャリングできるためです。 システム操作に不可欠なサービスでは、このフラグを設定する必要があります。 |
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 | objidlbase.h (Objidl.h を含む) |