セキュリティの既定値群

独自のセキュリティ設定を指定するのではなく、アプリケーションの COM セキュリティの既定値を使用できます。 その場合、COM はセキュリティを初期化して管理します。 レジストリを構成したり、プログラムでセキュリティ関数を呼び出したりする必要はありません。

ただし、特定のレジストリの名前付き値が設定または変更されている場合、COM で使用されるセキュリティの既定値が影響を受けます。 次の一覧では、COM セキュリティの既定値について説明し、一部の値がレジストリ設定によってどのように影響されるかについて説明します。

COM で使用される既定のセキュリティ値を次に示します。

  • 既定のセキュリティ サービス プロバイダーは、COM によって環境と最も互換性があると判断されるプロバイダーです。 COM は Kerberos v5 プロトコルまたは NTLMSSP のいずれかを選択し、Kerberos プロトコルが既定の選択肢になります。 Schannel によって提供されるプロトコルは、いずれも既定値として選択されていません。
  • システムは、ユーザー名とパスワードを使用して呼び出し元を識別し、セキュリティ システムによって使用される識別トークンを自動的に作成します。
  • LegacyAuthenticationLevel の名前付き値が存在し、その値が設定されている場合は、その値が使用されます。 それ以外の場合、認証レベルは接続時 (RPC_C_AUTHN_LEVEL_CONNECT) に設定されます。 このレベルは、クライアントがサーバーに対して最初に呼び出すと、COM が認証チェックを実行することを意味します。 クライアントがチェックに合格した場合、それ以上の認証は行われません。 AuthenticationLevel 値は、AppID キーで設定することもできます。
  • LegacyImpersonationLevel の名前付き値が存在し、その値が設定されている場合は、その値が使用されます。 それ以外の場合、偽装レベルは識別 (RPC_C_IMP_LEVEL_IDENTIFY) に設定されます。 偽装権限は、クライアントによってサーバーに付与されます。 識別レベルは、サーバーがクライアントの ID を取得できることを意味します。 サーバーは、アクセス制御リスト (ACL) の確認時にクライアントを偽装できますが、クライアントとしてシステム オブジェクトにアクセスすることはできません。 詳細については、「委任と偽装」を参照してください。
  • AppID の下AccessPermission の名前付き値が存在し、設定されている場合は、その値が使用されます。 それ以外の場合は、DEFAULTAccessPermission エントリの COM チェック。 存在する場合は、その値が使用されます。 この値が存在しない場合、COM は、サーバー ID とローカル システムにアクセス許可を付与する ACL を構築します。
  • AppID の下SRPTrustLevel 名前付き値が存在し、設定されている場合は、その値が使用されます。 それ以外の場合は、ソフトウェア制限ポリシー (SRP) の信頼レベルが許可されていない (SAFER_LEVELID_DISALLOWED) に設定されます。これは、アプリケーションが制約付き環境で実行され、ユーザーのセキュリティに依存するユーザー特権へのアクセスが許可されていないことを示します。

COM のセキュリティ