私の WCF 認証のメンタル モデルにはギャップがあると思います。誰かがそれを埋めるのを手伝ってくれることを願っています。
そのため、私は WCF サービスを作成しており、証明書とメッセージ レベルのセキュリティを使用してクライアントを認証させたいと考えています。各クライアント証明書をサービスにインストールする必要がないように、サービスがチェーン トラストを使用してこれらを検証することを希望します。今のところ、サービスをクライアントに対して認証することに興味はありません。
これを行うために何が必要かについての私の理解は次のとおりです。
- クライアントには、サービス側で信頼されている CA によって署名された証明書が必要です。
- サービスには、その CA 用にインストールされた CRL が必要です。
- サービス構成では、メッセージ セキュリティをオンにし、clientCredentialType="Certificate" を指定し、クライアント証明書の検証のために信頼をチェーンする必要があります。
- クライアント構成では、メッセージ セキュリティをオンにし、clientCredentialType="Certificate" を指定し、ストアでクライアント証明書を見つける方法を示すエンドポイント動作を指定する必要があります。
クライアントはサービスにリクエストを送信し、証明書を送信します。サービスは、クライアントの証明書が信頼できる CA によって署名されていることを認識し、要求を通過させます。
現在、私が見つけたこのプロセスのすべてのウォークスルーには、サービスの証明書を作成する手順も含まれています。彼らの誰も、これが何のためにあるのかを説明していません。クライアントを認証したいだけなのに、なぜサービス証明書が必要なのですか?