クライアント認証
認証は、呼び出し元が実際に本人であることを判断するプロセスであり、ID の主張の信憑性を検証するものです。 一般に、これはサーバーとクライアントの両方で実行でき、それぞれが他方を認証します。 ただし、ロールベースのセキュリティと同様に、クライアントを承認しているサーバー アプリケーションでも認証を実行することが特に重要です。 クライアントの認証は、承認ポリシーを意味のあるものにするための前提条件です。 必要なすべてのロールのチェックを実行できますが、チェックしているクライアント ID が本物であることが不明な場合は、アプリケーションは基本的に自主管理に依存します。
COM+ アプリケーションの場合、認証は管理者が有効にして構成することができ、その後はアプリケーションに対して透過的に動作します。 認証レベルは、コンポーネント サービス管理ツール、または管理機能を使用して管理的に指定します。 認証の設定の詳細については、「サーバー アプリケーションの認証レベルの設定」および「ライブラリ アプリケーションの認証の有効化」を参照してください。
認証の設定は、アプリケーションの種類がサーバー アプリケーションかライブラリ アプリケーションかによって異なります。
COM+ サーバー アプリケーションの認証の設定
COM+ サーバー アプリケーションの場合は、クライアントがアプリケーション内のコンポーネントを呼び出すときの認証の実行方法を決定する認証レベルを設定します。 認証なしから、すべてのパケットおよびすべてのメソッド呼び出しパラメーターの暗号化に至るまで、さまざまなセキュリティ レベルを提供するいくつかの認証レベルから選択できます。 詳細については、「サーバー アプリケーションの認証レベルの設定」を参照してください。
ただし、セキュリティの向上にはパフォーマンス コストの発生が伴います。これは、アプリケーションを構成する際に考慮する必要があります。 COM+ は、クライアントとサーバーで指定された認証レベルの間でネゴシエートします。 このネゴシエーションの実行方法は、サーバー側からの認証を管理的に制御できるというメリットをもたらします。 詳細については、「認証レベルのネゴシエーション」を参照してください。
Note
COM+ アプリケーション内で CoInitializeSecurity を使用して、認証レベルをプログラムで指定しないでください。 COM+ は CoInitializeSecurity を呼び出します。この呼び出しはプロセスごとに 1 回のみ行うことができます。
基になる認証サービスは、COM と Microsoft Windows によって提供されます。 認証サービスでは、サード パーティがユーザーの証明書を提供し、ユーザーの ID の信頼性を証明します。 この証明書は、認証機関と同じくらい信頼でき、運転免許証やパスポートとほとんど同じように認証書類として機能しますが、発行者の権限に依存します。 認証サービスの詳細については、COM ドキュメントの「COM およびセキュリティ パッケージ」を参照してください。
COM+ ライブラリ アプリケーションの認証の設定
COM+ ライブラリ アプリケーションの場合は、認証を有効または無効にして、アプリケーションがホスティング プロセスによって実行される認証の対象となるかどうかを判断します。 COM+ ライブラリ アプリケーションの認証は、主にホスティング プロセスによって制御されますが、認証に参加しないようにライブラリ アプリケーションを構成することができます。 つまり、アプリケーションへの呼び出しを認証あり、または認証なしにすることができ、後者の場合、クライアントの「認証」は常に成功します。 詳細については、「ライブラリ アプリケーションの認証の有効化」を参照してください。
さらに、データベースまたは何らかのダウンストリーム アプリケーションで、クライアントを認証を行いたい場合や認証する必要がある状況が生じることもあります。COM+ アプリケーションだけではクライアントを認証するのに不十分かもしれません。 その場合は、クライアントの ID がダウンストリームに伝達されるように、クライアントの権限を借用する必要があります。 権限借用の詳細については、「クライアントの権限借用と委任」を参照してください 。 データ層で認証を行うかどうかの決定に関わる問題については、「多層アプリケーションのセキュリティ」を参照してください。
関連トピック