サービス公開のセキュリティに関する問題
システムは、接続ポイント オブジェクトを作成、変更、または削除する機能を制限します。 サービスを発行するときは、これらの制限に注意して対処してください。
クライアントは、ディレクトリ内の接続ポイント オブジェクトにパブリッシュされたデータを信頼できる必要があります。 このため、接続ポイント オブジェクトを作成するアクセス許可は、通常、doメイン 管理者などの特権ユーザーに制限されます。 これにより、承認されていないユーザーが既知のサービスに対して無効な接続ポイントを作成することで、クライアントを妨害することを防ぐことができます。
サービスは doメイン 管理者特権で実行しないでください。 これは、通常、サービスが独自の接続ポイントを作成できないことを意味します。 代わりに、接続ポイントを作成するサービス インストールまたは構成アプリケーションを提供します。 このインストーラーは、必要な特権を持つユーザーが実行する必要があります。
通常、サービスは接続ポイントを作成できませんが、実行時に接続ポイントのプロパティを更新できる必要があります。 接続ポイントのプロパティには、クライアントがサービスに接続するために使用するバインディング データが含まれます。 バインディング データが変更された場合、サービスは接続ポイントを更新する必要があります。それ以外の場合、クライアントはサービスを使用できません。 つまり、インストーラーは、実行時にサービスが適切なプロパティを読み書きできるように、接続ポイント オブジェクトのセキュリティ記述子も変更する必要があります。 詳細とコード例については、「サービス アカウントを有効にして SCP プロパティにアクセスする」を参照してください。
LocalSystem アカウントで実行されているサービスは、ディレクトリ内の独自のコンピューター オブジェクトの下に子オブジェクトとして接続ポイントを作成できます。 このようなサービスは、独自の接続ポイントを作成しないサービスのルールの例外です。 LocalSystem サービスには、独自のコンピューター オブジェクトの下にある接続ポイント オブジェクトのプロパティを変更するアクセス許可もあります。 サービスは、絶対に必要な場合にのみ LocalSystem アカウントで実行する必要があることに注意してください。 詳細については、「サービス ログオン アカウントを選択するためのガイドライン」を参照してください。
接続ポイント オブジェクトまたは任意のオブジェクトを作成するアプリケーションには、オブジェクトが作成されるコンテナーに作成されるオブジェクト クラスに対する子の作成権限が必要です。 オブジェクトを削除するには、操作を実行するプロセスが、オブジェクトを保持しているコンテナーで削除されるオブジェクト クラスの子アクセス許可を削除するか、オブジェクト自体に対する削除アクセス許可を持っている必要があります。 接続ポイントを更新するには、操作を実行するプロセスに、オブジェクトで更新するプロパティへの書き込みアクセス権が必要です。