Win32 API 日本語リファレンス
ホームSystem.Com › EOLE_AUTHENTICATION_CAPABILITIES

EOLE_AUTHENTICATION_CAPABILITIES

列挙型
基底型i4

メンバー 16

名前10進16進説明
EOAC_NONE00x0機能フラグが設定されていないことを示します。
EOAC_MUTUAL_AUTH10x1このフラグを指定しても無視されます。相互認証のサポートは、一部の認証サービスによって自動的に提供されます。詳細については、「COM and Security Packages」を参照してください。
EOAC_STATIC_CLOAKING320x20

静的クローキングを設定します。このフラグが設定されている場合、DCOM はクライアントの ID を判別する際にスレッドトークン (存在する場合) を使用します。ただし、クライアントの ID が判別されるのは、各プロキシに対する最初の呼び出し時 (SetBlanket が呼び出されない場合) と、そのプロキシに対して CoSetProxyBlanket が呼び出されるたびです。静的クローキングの詳細については、「Cloaking」を参照してください。

両方のクローキングフラグが設定されている場合、または認証サービスが Schannel であるときにいずれかのフラグが設定されている場合、CoInitializeSecurity および IClientSecurity::SetBlanket はエラーを返します。

EOAC_DYNAMIC_CLOAKING640x40

動的クローキングを設定します。このフラグが設定されている場合、DCOM はクライアントの ID を判別する際にスレッドトークン (存在する場合) を使用します。プロキシへの呼び出しごとに現在のスレッドトークンが検査され、クライアントの ID が変化したかどうかが判別され (その分のパフォーマンスコストが発生します)、必要な場合にのみクライアントが再度認証されます。動的クローキングを設定できるのはクライアントだけです。動的クローキングの詳細については、「Cloaking」を参照してください。

両方のクローキングフラグが設定されている場合、または認証サービスが Schannel であるときにいずれかのフラグが設定されている場合、CoInitializeSecurity および IClientSecurity::SetBlanket はエラーを返します。

EOAC_ANY_AUTHORITY1280x80このフラグは廃止されています。
EOAC_MAKE_FULLSIC2560x100既定のセキュリティネゴシエーションの一環として、DCOM が Schannel のサーバープリンシパル名を fullsic 形式でクライアントに送信するようにします。この名前はサーバー証明書から抽出されます。fullsic 形式の詳細については、「Principal Names」を参照してください。
EOAC_DEFAULT20480x800CoInitializeSecurity の呼び出しで指定された有効な機能を使用するよう DCOM に指示します。CoInitializeSecurity が呼び出されていない場合は、機能フラグとして EOAC_NONE が使用されます。このフラグは、クライアントが IClientSecurity::SetBlanket または CoSetProxyBlanket を呼び出すときにのみ設定できます。
EOAC_SECURE_REFS20x2

分散参照カウントの呼び出しを認証し、悪意のあるユーザーが使用中のオブジェクトを解放できないようにします。このフラグは、クライアントによる CoInitializeSecurity の呼び出しでのみ設定でき、設定した場合は認証レベル (dwAuthnLevel) を none に設定できません。

サーバーは常に Release の呼び出しを認証します。このフラグを設定すると、認証済みのクライアントが別の認証済みクライアントのオブジェクトを解放することを防止できます。追加のセキュリティに伴うオーバーヘッドによりパフォーマンスに影響がありますが、クライアントでは常にこのフラグを設定することを推奨します。

EOAC_ACCESS_CONTROL40x4

CoInitializeSecuritypSecDesc パラメーターが、アクセス制御オブジェクト上の IAccessControl インターフェイスへのポインターであることを示します。DCOM はセキュリティチェックを行う際に IAccessControl::IsAccessAllowed を呼び出します。このフラグはサーバーのみが設定します。

EOAC_APPID フラグと EOAC_ACCESS_CONTROL フラグの両方が設定されている場合、CoInitializeSecurity はエラーを返します。

EOAC_APPID80x8

CoInitializeSecuritypSecDesc パラメーターが、AppID である GUID へのポインターであることを示します。CoInitializeSecurity 関数はレジストリで AppID を検索し、そこからセキュリティ設定を読み取ります。このフラグが設定されている場合、CoInitializeSecurity の他のすべてのパラメーターは無視され、0 でなければなりません。このフラグを設定できるのはサーバーだけです。この機能フラグの詳細については、以下の「解説」セクションを参照してください。

EOAC_APPID フラグと EOAC_ACCESS_CONTROL フラグの両方が設定されている場合、CoInitializeSecurity はエラーを返します。

EOAC_DYNAMIC160x10予約済みです。
EOAC_REQUIRE_FULLSIC5120x200Schannel のプリンシパル名が fullsic 以外の形式で指定されている CoSetProxyBlanket の呼び出しを、DCOM が失敗させるようにします。このフラグは現在のところクライアント専用です。fullsic 形式の詳細については、「Principal Names」を参照してください。
EOAC_AUTO_IMPERSONATE10240x400予約済みです。
EOAC_DISABLE_AAA40960x1000

呼び出し元の ID でサーバープロセスが起動されるアクティブ化 (activate-as-activator) をすべて、E_ACCESSDENIED で失敗させます。この値はクライアントによる CoInitializeSecurity の呼び出しでのみ指定でき、特権アカウント (LocalSystem など) で実行されるアプリケーションが、自身の ID を信頼できないコンポーネントの起動に使用されないようにするのに役立ちます。

CLSCTX 列挙型の CLSCTX_ENABLE_AAA を使用するアクティブ化呼び出しでは、その呼び出しに限り activate-as-activator のアクティブ化が許可されます。

EOAC_NO_CUSTOM_MARSHAL81920x2000このフラグを指定すると、DCOM または COM+ を使用する際のサーバーのセキュリティ保護に役立ちます。マーシャリングできる CLSID が、Ole32.dll、ComAdmin.dll、ComSvcs.dll、Es.dll のいずれかに実装されているもの、または CATID_MARSHALER カテゴリ ID を実装しているものに限定されるため、任意の DLL が実行される可能性を減らせます。システム動作にとって重要なサービスでは、このフラグを設定してください。
EOAC_RESERVED1163840x4000

公式ドキュメント

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_REFSEOAC_ACCESS_CONTROLEOAC_APPIDEOAC_DYNAMICEOAC_REQUIRE_FULLSICEOAC_DISABLE_AAAEOAC_NO_CUSTOM_MARSHAL のいずれかのフラグが設定されている場合、IClientSecurity::SetBlanket メソッドおよび CoSetProxyBlanket 関数はエラーを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 Enum
import 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* = 16384
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,
}
#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