AppContainer を実装する

AppContainer は、プロセス トークンに新しい情報を追加し、 SeAccessCheck() を変更して、すべてのレガシ、未変更のアクセス制御リスト (ACL) オブジェクトが AppContainer プロセスからのアクセス要求を既定でブロックし、AppContainers で使用できる必要がある再 ACL オブジェクトによって実装されます。

プロセス

まず、プロセス トークンの新しい情報を追加します。 次に、変更されていないレガシ ACL がすべて AppContainer プロセスからのアクセス要求を既定でブロックするように SeAccessCheck() を変更します。 最後に、AppContainers で使用できる必要がある再 ACL リソース

AppContainer SID は、appcontainer の永続的な一意識別子です。 機能 SID は、リソースのグループへのアクセスを AppContainers のグループに付与します。 AppContainerNumber は、AppContainers を区別するために使用される一時的な DWORD です。 ただし、AppContainer の ID として使用しないでください。

1 つの AppContainer がリソースにアクセスできるようにするには、その AppContainerSID をそのリソースの ACL に追加します。

複数の特定の AppContainers がリソースにアクセスできるようにするには、すべての AppContainerSID をそのリソースの ACL に追加します。

アクセス許可のグループを管理するには、機能 SID (GUID) を作成し、その機能 SID を付与するすべてのリソースに配置します。 次に、プロセス トークンに機能 SID を追加します。

すべての AppContainers がリソースにアクセスできるようにするには、 すべてのアプリケーション パッケージ SID をそのリソースの ACL に追加します。 これはワイルドカードのように機能します。

AppContainerSID と CapabilitySID の両方で、Access Control エントリ (ACE) のアクセス マスクがサポートされています。 必要に応じて 設定します。