WIF ベースの WCF サービスが機能するには、メソッドFederatedServiceCredentials.ConfigureServiceHost()を呼び出すか、同等の要素<federatedServiceHostConfiguration>
をweb.config
ファイルに配置する必要があります。これはサービス レベルの設定です。つまり、すべてのエンドポイントに適用されます。
メソッドのドキュメントによると、ServiceHostBase
インスタンスはいくつかの WIF 固有の方法で変更されます。たとえば、承認は WIF ベースの承認クラスに置き換えられます。
ここで、1 つのエンドポイントが WIF ベースで、他のエンドポイントがプレーンな Windows 認証を使用している複数のを含む単一の<service>
(内部<system.serviceModel><services>
) を使用したいと考えています。<endpoint>
アップデート。以下の回答 に応えて、 WIF エンドポイントと非 WIF エンドポイントを混在させたい理由を説明させてください。WIF のみを使用する場合、各顧客は AD FS などの STS を必要とします。これを設定することは難しくありませんが、ソフトウェアをテストしたいだけの場合は特に、ハードルが高くなります。そのため、Windows 統合認証を使用するモード (Web サービスとフロント エンド) でインストールし、後で AD FS を使用するモードに切り替えることができます。
したがって、基本的には、AD FS なしでインストールできるようにして、アプリケーションの参入障壁を下げたいと考えています。
これを行うには、 が<service>
必要<federatedServiceHostConfiguration>
です。ただし、これが私の問題です。これは、同じサービスの非 WIF エンドポイントにも影響します。たとえば、WIF 承認マネージャー ( classClaimsAuthorizationManager
のインスタンス) を突然使用します。
だから私の質問は: 単一の WCF で WIF エンドポイントと非 WIF エンドポイントを混在させるための推奨される方法は何<service>
ですか?