EOLE_AUTHENTICATION_CAPABILITIES
列挙型メンバー 16
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| EOAC_NONE | 0 | 0x0 | 機能フラグが設定されていないことを示します。 |
| EOAC_MUTUAL_AUTH | 1 | 0x1 | このフラグを指定しても無視されます。相互認証のサポートは、一部の認証サービスによって自動的に提供されます。詳細については、「COM and Security Packages」を参照してください。 |
| EOAC_STATIC_CLOAKING | 32 | 0x20 | 静的クローキングを設定します。このフラグが設定されている場合、DCOM はクライアントの ID を判別する際にスレッドトークン (存在する場合) を使用します。ただし、クライアントの ID が判別されるのは、各プロキシに対する最初の呼び出し時 (SetBlanket が呼び出されない場合) と、そのプロキシに対して CoSetProxyBlanket が呼び出されるたびです。静的クローキングの詳細については、「Cloaking」を参照してください。 両方のクローキングフラグが設定されている場合、または認証サービスが Schannel であるときにいずれかのフラグが設定されている場合、CoInitializeSecurity および IClientSecurity::SetBlanket はエラーを返します。 |
| EOAC_DYNAMIC_CLOAKING | 64 | 0x40 | 動的クローキングを設定します。このフラグが設定されている場合、DCOM はクライアントの ID を判別する際にスレッドトークン (存在する場合) を使用します。プロキシへの呼び出しごとに現在のスレッドトークンが検査され、クライアントの ID が変化したかどうかが判別され (その分のパフォーマンスコストが発生します)、必要な場合にのみクライアントが再度認証されます。動的クローキングを設定できるのはクライアントだけです。動的クローキングの詳細については、「Cloaking」を参照してください。 両方のクローキングフラグが設定されている場合、または認証サービスが Schannel であるときにいずれかのフラグが設定されている場合、CoInitializeSecurity および IClientSecurity::SetBlanket はエラーを返します。 |
| EOAC_ANY_AUTHORITY | 128 | 0x80 | このフラグは廃止されています。 |
| EOAC_MAKE_FULLSIC | 256 | 0x100 | 既定のセキュリティネゴシエーションの一環として、DCOM が Schannel のサーバープリンシパル名を fullsic 形式でクライアントに送信するようにします。この名前はサーバー証明書から抽出されます。fullsic 形式の詳細については、「Principal Names」を参照してください。 |
| EOAC_DEFAULT | 2048 | 0x800 | CoInitializeSecurity の呼び出しで指定された有効な機能を使用するよう DCOM に指示します。CoInitializeSecurity が呼び出されていない場合は、機能フラグとして EOAC_NONE が使用されます。このフラグは、クライアントが IClientSecurity::SetBlanket または CoSetProxyBlanket を呼び出すときにのみ設定できます。 |
| EOAC_SECURE_REFS | 2 | 0x2 | 分散参照カウントの呼び出しを認証し、悪意のあるユーザーが使用中のオブジェクトを解放できないようにします。このフラグは、クライアントによる CoInitializeSecurity の呼び出しでのみ設定でき、設定した場合は認証レベル (dwAuthnLevel) を none に設定できません。 サーバーは常に Release の呼び出しを認証します。このフラグを設定すると、認証済みのクライアントが別の認証済みクライアントのオブジェクトを解放することを防止できます。追加のセキュリティに伴うオーバーヘッドによりパフォーマンスに影響がありますが、クライアントでは常にこのフラグを設定することを推奨します。 |
| EOAC_ACCESS_CONTROL | 4 | 0x4 | CoInitializeSecurity の pSecDesc パラメーターが、アクセス制御オブジェクト上の IAccessControl インターフェイスへのポインターであることを示します。DCOM はセキュリティチェックを行う際に IAccessControl::IsAccessAllowed を呼び出します。このフラグはサーバーのみが設定します。 EOAC_APPID フラグと EOAC_ACCESS_CONTROL フラグの両方が設定されている場合、CoInitializeSecurity はエラーを返します。 |
| EOAC_APPID | 8 | 0x8 | CoInitializeSecurity の pSecDesc パラメーターが、AppID である GUID へのポインターであることを示します。CoInitializeSecurity 関数はレジストリで AppID を検索し、そこからセキュリティ設定を読み取ります。このフラグが設定されている場合、CoInitializeSecurity の他のすべてのパラメーターは無視され、0 でなければなりません。このフラグを設定できるのはサーバーだけです。この機能フラグの詳細については、以下の「解説」セクションを参照してください。 EOAC_APPID フラグと EOAC_ACCESS_CONTROL フラグの両方が設定されている場合、CoInitializeSecurity はエラーを返します。 |
| EOAC_DYNAMIC | 16 | 0x10 | 予約済みです。 |
| EOAC_REQUIRE_FULLSIC | 512 | 0x200 | Schannel のプリンシパル名が fullsic 以外の形式で指定されている CoSetProxyBlanket の呼び出しを、DCOM が失敗させるようにします。このフラグは現在のところクライアント専用です。fullsic 形式の詳細については、「Principal Names」を参照してください。 |
| EOAC_AUTO_IMPERSONATE | 1024 | 0x400 | 予約済みです。 |
| EOAC_DISABLE_AAA | 4096 | 0x1000 | 呼び出し元の ID でサーバープロセスが起動されるアクティブ化 (activate-as-activator) をすべて、E_ACCESSDENIED で失敗させます。この値はクライアントによる CoInitializeSecurity の呼び出しでのみ指定でき、特権アカウント (LocalSystem など) で実行されるアプリケーションが、自身の ID を信頼できないコンポーネントの起動に使用されないようにするのに役立ちます。 CLSCTX 列挙型の CLSCTX_ENABLE_AAA を使用するアクティブ化呼び出しでは、その呼び出しに限り activate-as-activator のアクティブ化が許可されます。 |
| EOAC_NO_CUSTOM_MARSHAL | 8192 | 0x2000 | このフラグを指定すると、DCOM または COM+ を使用する際のサーバーのセキュリティ保護に役立ちます。マーシャリングできる CLSID が、Ole32.dll、ComAdmin.dll、ComSvcs.dll、Es.dll のいずれかに実装されているもの、または CATID_MARSHALER カテゴリ ID を実装しているものに限定されるため、任意の DLL が実行される可能性を減らせます。システム動作にとって重要なサービスでは、このフラグを設定してください。 |
| EOAC_RESERVED1 | 16384 | 0x4000 |
公式ドキュメント
CoInitializeSecurity および IClientSecurity::SetBlanket (またはそのヘルパー関数である CoSetProxyBlanket) におけるさまざまな機能を指定します。
解説(Remarks)
EOAC_APPID フラグが設定されている場合、CoInitializeSecurity は AppID の下から認証レベルを探します。認証レベルが見つからない場合は、既定の認証レベルを探します。既定の認証レベルも見つからない場合は、connect という既定の認証レベルを生成します。認証レベルが RPC_C_AUTHN_LEVEL_NONE でない場合、CoInitializeSecurity は AppID の下からアクセス許可の値を探します。見つからない場合は、既定のアクセス許可の値を探します。それも見つからない場合は、既定のアクセス許可を生成します。その他のセキュリティ設定はすべて、従来のアプリケーションの場合と同じ方法で決定されます。
AppID が NULL の場合、CoInitializeSecurity はレジストリでアプリケーションの .exe 名を検索し、そこに格納されている AppID を使用します。AppID が存在しない場合は、コンピューターの既定値が使用されます。
機能パラメーターに EOAC_SECURE_REFS、EOAC_ACCESS_CONTROL、EOAC_APPID、EOAC_DYNAMIC、EOAC_REQUIRE_FULLSIC、EOAC_DISABLE_AAA、EOAC_NO_CUSTOM_MARSHAL のいずれかのフラグが設定されている場合、IClientSecurity::SetBlanket メソッドおよび CoSetProxyBlanket 関数はエラーを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum EOLE_AUTHENTICATION_CAPABILITIES : int {
EOAC_NONE = 0,
EOAC_MUTUAL_AUTH = 1,
EOAC_STATIC_CLOAKING = 32,
EOAC_DYNAMIC_CLOAKING = 64,
EOAC_ANY_AUTHORITY = 128,
EOAC_MAKE_FULLSIC = 256,
EOAC_DEFAULT = 2048,
EOAC_SECURE_REFS = 2,
EOAC_ACCESS_CONTROL = 4,
EOAC_APPID = 8,
EOAC_DYNAMIC = 16,
EOAC_REQUIRE_FULLSIC = 512,
EOAC_AUTO_IMPERSONATE = 1024,
EOAC_DISABLE_AAA = 4096,
EOAC_NO_CUSTOM_MARSHAL = 8192,
EOAC_RESERVED1 = 16384
} EOLE_AUTHENTICATION_CAPABILITIES;public enum EOLE_AUTHENTICATION_CAPABILITIES : int
{
EOAC_NONE = 0,
EOAC_MUTUAL_AUTH = 1,
EOAC_STATIC_CLOAKING = 32,
EOAC_DYNAMIC_CLOAKING = 64,
EOAC_ANY_AUTHORITY = 128,
EOAC_MAKE_FULLSIC = 256,
EOAC_DEFAULT = 2048,
EOAC_SECURE_REFS = 2,
EOAC_ACCESS_CONTROL = 4,
EOAC_APPID = 8,
EOAC_DYNAMIC = 16,
EOAC_REQUIRE_FULLSIC = 512,
EOAC_AUTO_IMPERSONATE = 1024,
EOAC_DISABLE_AAA = 4096,
EOAC_NO_CUSTOM_MARSHAL = 8192,
EOAC_RESERVED1 = 16384,
}Public Enum EOLE_AUTHENTICATION_CAPABILITIES As Integer
EOAC_NONE = 0
EOAC_MUTUAL_AUTH = 1
EOAC_STATIC_CLOAKING = 32
EOAC_DYNAMIC_CLOAKING = 64
EOAC_ANY_AUTHORITY = 128
EOAC_MAKE_FULLSIC = 256
EOAC_DEFAULT = 2048
EOAC_SECURE_REFS = 2
EOAC_ACCESS_CONTROL = 4
EOAC_APPID = 8
EOAC_DYNAMIC = 16
EOAC_REQUIRE_FULLSIC = 512
EOAC_AUTO_IMPERSONATE = 1024
EOAC_DISABLE_AAA = 4096
EOAC_NO_CUSTOM_MARSHAL = 8192
EOAC_RESERVED1 = 16384
End Enumimport enum
class EOLE_AUTHENTICATION_CAPABILITIES(enum.IntEnum):
EOAC_NONE = 0
EOAC_MUTUAL_AUTH = 1
EOAC_STATIC_CLOAKING = 32
EOAC_DYNAMIC_CLOAKING = 64
EOAC_ANY_AUTHORITY = 128
EOAC_MAKE_FULLSIC = 256
EOAC_DEFAULT = 2048
EOAC_SECURE_REFS = 2
EOAC_ACCESS_CONTROL = 4
EOAC_APPID = 8
EOAC_DYNAMIC = 16
EOAC_REQUIRE_FULLSIC = 512
EOAC_AUTO_IMPERSONATE = 1024
EOAC_DISABLE_AAA = 4096
EOAC_NO_CUSTOM_MARSHAL = 8192
EOAC_RESERVED1 = 16384// EOLE_AUTHENTICATION_CAPABILITIES
pub const EOAC_NONE: i32 = 0;
pub const EOAC_MUTUAL_AUTH: i32 = 1;
pub const EOAC_STATIC_CLOAKING: i32 = 32;
pub const EOAC_DYNAMIC_CLOAKING: i32 = 64;
pub const EOAC_ANY_AUTHORITY: i32 = 128;
pub const EOAC_MAKE_FULLSIC: i32 = 256;
pub const EOAC_DEFAULT: i32 = 2048;
pub const EOAC_SECURE_REFS: i32 = 2;
pub const EOAC_ACCESS_CONTROL: i32 = 4;
pub const EOAC_APPID: i32 = 8;
pub const EOAC_DYNAMIC: i32 = 16;
pub const EOAC_REQUIRE_FULLSIC: i32 = 512;
pub const EOAC_AUTO_IMPERSONATE: i32 = 1024;
pub const EOAC_DISABLE_AAA: i32 = 4096;
pub const EOAC_NO_CUSTOM_MARSHAL: i32 = 8192;
pub const EOAC_RESERVED1: i32 = 16384;// EOLE_AUTHENTICATION_CAPABILITIES
const (
EOAC_NONE int32 = 0
EOAC_MUTUAL_AUTH int32 = 1
EOAC_STATIC_CLOAKING int32 = 32
EOAC_DYNAMIC_CLOAKING int32 = 64
EOAC_ANY_AUTHORITY int32 = 128
EOAC_MAKE_FULLSIC int32 = 256
EOAC_DEFAULT int32 = 2048
EOAC_SECURE_REFS int32 = 2
EOAC_ACCESS_CONTROL int32 = 4
EOAC_APPID int32 = 8
EOAC_DYNAMIC int32 = 16
EOAC_REQUIRE_FULLSIC int32 = 512
EOAC_AUTO_IMPERSONATE int32 = 1024
EOAC_DISABLE_AAA int32 = 4096
EOAC_NO_CUSTOM_MARSHAL int32 = 8192
EOAC_RESERVED1 int32 = 16384
)const
EOAC_NONE = 0;
EOAC_MUTUAL_AUTH = 1;
EOAC_STATIC_CLOAKING = 32;
EOAC_DYNAMIC_CLOAKING = 64;
EOAC_ANY_AUTHORITY = 128;
EOAC_MAKE_FULLSIC = 256;
EOAC_DEFAULT = 2048;
EOAC_SECURE_REFS = 2;
EOAC_ACCESS_CONTROL = 4;
EOAC_APPID = 8;
EOAC_DYNAMIC = 16;
EOAC_REQUIRE_FULLSIC = 512;
EOAC_AUTO_IMPERSONATE = 1024;
EOAC_DISABLE_AAA = 4096;
EOAC_NO_CUSTOM_MARSHAL = 8192;
EOAC_RESERVED1 = 16384;// EOLE_AUTHENTICATION_CAPABILITIES
pub const EOAC_NONE: i32 = 0;
pub const EOAC_MUTUAL_AUTH: i32 = 1;
pub const EOAC_STATIC_CLOAKING: i32 = 32;
pub const EOAC_DYNAMIC_CLOAKING: i32 = 64;
pub const EOAC_ANY_AUTHORITY: i32 = 128;
pub const EOAC_MAKE_FULLSIC: i32 = 256;
pub const EOAC_DEFAULT: i32 = 2048;
pub const EOAC_SECURE_REFS: i32 = 2;
pub const EOAC_ACCESS_CONTROL: i32 = 4;
pub const EOAC_APPID: i32 = 8;
pub const EOAC_DYNAMIC: i32 = 16;
pub const EOAC_REQUIRE_FULLSIC: i32 = 512;
pub const EOAC_AUTO_IMPERSONATE: i32 = 1024;
pub const EOAC_DISABLE_AAA: i32 = 4096;
pub const EOAC_NO_CUSTOM_MARSHAL: i32 = 8192;
pub const EOAC_RESERVED1: i32 = 16384;const
EOAC_NONE* = 0
EOAC_MUTUAL_AUTH* = 1
EOAC_STATIC_CLOAKING* = 32
EOAC_DYNAMIC_CLOAKING* = 64
EOAC_ANY_AUTHORITY* = 128
EOAC_MAKE_FULLSIC* = 256
EOAC_DEFAULT* = 2048
EOAC_SECURE_REFS* = 2
EOAC_ACCESS_CONTROL* = 4
EOAC_APPID* = 8
EOAC_DYNAMIC* = 16
EOAC_REQUIRE_FULLSIC* = 512
EOAC_AUTO_IMPERSONATE* = 1024
EOAC_DISABLE_AAA* = 4096
EOAC_NO_CUSTOM_MARSHAL* = 8192
EOAC_RESERVED1* = 16384enum EOLE_AUTHENTICATION_CAPABILITIES : int {
EOAC_NONE = 0,
EOAC_MUTUAL_AUTH = 1,
EOAC_STATIC_CLOAKING = 32,
EOAC_DYNAMIC_CLOAKING = 64,
EOAC_ANY_AUTHORITY = 128,
EOAC_MAKE_FULLSIC = 256,
EOAC_DEFAULT = 2048,
EOAC_SECURE_REFS = 2,
EOAC_ACCESS_CONTROL = 4,
EOAC_APPID = 8,
EOAC_DYNAMIC = 16,
EOAC_REQUIRE_FULLSIC = 512,
EOAC_AUTO_IMPERSONATE = 1024,
EOAC_DISABLE_AAA = 4096,
EOAC_NO_CUSTOM_MARSHAL = 8192,
EOAC_RESERVED1 = 16384,
}#define global EOAC_NONE 0x0
#define global EOAC_MUTUAL_AUTH 0x1
#define global EOAC_STATIC_CLOAKING 0x20
#define global EOAC_DYNAMIC_CLOAKING 0x40
#define global EOAC_ANY_AUTHORITY 0x80
#define global EOAC_MAKE_FULLSIC 0x100
#define global EOAC_DEFAULT 0x800
#define global EOAC_SECURE_REFS 0x2
#define global EOAC_ACCESS_CONTROL 0x4
#define global EOAC_APPID 0x8
#define global EOAC_DYNAMIC 0x10
#define global EOAC_REQUIRE_FULLSIC 0x200
#define global EOAC_AUTO_IMPERSONATE 0x400
#define global EOAC_DISABLE_AAA 0x1000
#define global EOAC_NO_CUSTOM_MARSHAL 0x2000
#define global EOAC_RESERVED1 0x4000