ライブラリ アプリケーションのセキュリティの構成
ライブラリ アプリケーションのロールベースのセキュリティと認証の構成には、特別な考慮事項があります。
認証の有効化または無効化
考慮すべき要因の 1 つは、ライブラリ アプリケーションの呼び出し元が、ホスティング プロセスのプロセス レベルのセキュリティ チェック (認証を有効または無効にするかどうか) の対象とすべきかどうかです。
たとえば、ライブラリ アプリケーションがブラウザーによってホストされる場合は、認証されていないコールバックを受け取る必要がある場合があります。 このニーズに対処するために、ホスティング プロセスがライブラリ アプリケーションの呼び出し元のセキュリティ チェックを実行しないように、認証を無効にすることができます。 認証を無効にすると、ライブラリ アプリケーションは実質的に認証されません。すべての呼び出しは成功します。 ライブラリ アプリケーションの呼び出し元は、ホスティング プロセスのセキュリティ チェックの対象になりません。 基本的には、ライブラリ アプリケーションは "認証されていません" というタグが付けられます。また、ライブラリ アプリケーションの呼び出しではセキュリティ チェックは省略されます。
認証を有効または無効にする方法については、「ライブラリ アプリケーションの認証を有効にする」を参照してください。
ロール チェックの適用
もう 1 つの決定は、ライブラリ アプリケーションでロールベースのセキュリティを使用する必要があるかどうかです。 ロールベースのセキュリティを使用する場合は、実行するアクセスチェックにコンポーネント レベルのセキュリティを使用する必要があります。ライブラリ アプリケーションに割り当てられたロールは、プロセス セキュリティ記述子に反映されません。 ライブラリ アプリケーションが制御できる唯一の承認は、コンポーネント レベルです。 コンポーネント レベルのセキュリティの詳細については、「セキュリティ境界」を参照してください。
コンポーネント レベルのセキュリティを設定する方法については、「アクセス チェックのセキュリティ レベルの設定」を参照してください。
構成シナリオ
ライブラリ アプリケーションがロールベースのセキュリティを使用する必要があるかどうか、およびライブラリ アプリケーションを認証しない必要があるかどうかを判断することの影響をより深く理解するには、次のシナリオを検討してください。
認証が有効になり、ロールベースのセキュリティが使用されます。 このシナリオでは、セキュリティ チェックはホスティング プロセスによって行われ、一部の呼び出し元はプロセス レベルでアクセスを拒否されます。 また、ロールチェックはライブラリ アプリケーション レベルで実行されるため、プロセス レベルのセキュリティ チェックを介して作成した一部の呼び出し元は、ロール メンバーシップがチェックされたときにライブラリ アプリケーションへのアクセスが拒否されます。 これは、ロールベースのセキュリティを使用する COM+ ライブラリ アプリケーションの通常のシナリオです。
次の図は、認証が有効になっており、ロールチェックが使用されるシナリオを示しています。
認証が有効になっており、ロールベースのセキュリティは使用されません。 このシナリオでは、セキュリティ チェックはプロセス レベルで行われますが、ロール メンバーシップはライブラリ アプリケーション レベルではチェックされません。 そのため、ロール メンバーシップがチェックされていないため、プロセス レベルのセキュリティ チェックを介してライブラリ アプリケーションを作成するライブラリ アプリケーションの呼び出し元には、ライブラリ アプリケーションへのアクセス権が付与されます。 この状況は、ロールベースのセキュリティを使用しない COM アプリケーションが COM+ ライブラリ アプリケーションに移行された場合に発生します。
次の図は、認証が有効で、ロールチェックが使用されていないシナリオを示しています。
認証が無効になり、ロールベースのセキュリティが使用されます。 このシナリオでは、セキュリティ チェックはプロセス レベルで実行されますが、ライブラリ アプリケーションの呼び出し元は認証されていません。 実際には、ライブラリ アプリケーションの呼び出し元は、プロセス レベルのセキュリティ チェックから除外されます。 ロールチェックが有効になっているため、ロール メンバーシップだけで、ライブラリ アプリケーションへのアクセス権が付与されるユーザーが決まります。 このシナリオは、ホスティング プロセスによって実行されるセキュリティ チェックが制限が厳しすぎるが、ライブラリ アプリケーションまたは特定のインターフェイスまたはメソッドに対して何らかのアクセス制限が必要な場合に適している可能性があります。 このシナリオでは、プロセスセキュリティを効果的にオフにし、ロールベースのセキュリティを使用して適切なレベルのアクセスチェックを持つことができます。
認証が無効になっており、ロールチェックが使用されているシナリオを次の図に示します。
認証は無効になっており、ロールベースのセキュリティは使用されません。 このシナリオでは、セキュリティ チェックは引き続きプロセス レベルで行われますが、前のシナリオと同様に、ライブラリ アプリケーションの呼び出し元は常にこのセキュリティ チェックを渡します。 ロールチェックも無効になっているため、ロール メンバーシップはライブラリ アプリケーション レベルではチェックされません。 基本的に、誰でもライブラリ アプリケーションを呼び出すことができます。 このシナリオは、インターネット エクスプローラーおよび Microsoft 管理コンソール スナップインでホストされている ActiveX コントロールの場合と同様に、COM オブジェクトが認証されていないコールバックを受け取る必要がある場合に選択する必要があります。 もちろん、認証されていない呼び出しを受信するときに適切に動作するには、この COM オブジェクトを信頼する必要があります。 たとえば、呼び出し元の代わりに任意のファイルにアクセスすることはできません。
認証が無効で、ロールチェックが使用されていないシナリオを次の図に示します。
COM+ ライブラリ アプリケーションの認証を有効または無効にするかどうかを決定したら、コンポーネント サービス管理ツールを使用して認証を無効にする (または有効にする) 方法を説明する手順については、「ライブラリ アプリケーションの認証を有効にする」を参照してください。 ライブラリ アプリケーションでロールベースのセキュリティを使用する場合は、「ロールベースのセキュリティの構成」を参照してください。
関連トピック