セキュリティで保護されたセッションに関するセキュリティの検討
セキュリティで保護されたセッションを実装するには、セキュリティに影響を及ぼす次の項目について考慮する必要があります。セキュリティに関する考慮事項詳細については、 、「セキュリティ上の考慮事項」および「WCF のセキュリティのベスト プラクティス」を参照してください。
セキュリティで保護されたセッションとメタデータ
セキュリティで保護されたセッションが確立され、RequireCancellation プロパティが false に設定されると、Windows Communication Foundation (WCF) はサービス エンドポイントの Web サービス記述言語 (WSDL: Web Services Description Language) ドキュメントにメタデータの一部として mssp:MustNotSendCancel アサーションを出力します。mssp:MustNotSendCancel アサーションは、クライアントに対してセキュリティで保護されたセッションのキャンセル要求にサービスが応答しないことを通知します。RequireCancellation プロパティが true に設定されている場合、WCF は WSDL ドキュメントに mssp:MustNotSendCancel アサーションを出力しません。セキュリティで保護されたセッションが必要でなくなった場合、クライアントはサービスに対してキャンセル要求を送る必要があります。ServiceModel Metadata Utility Tool (Svcutil.exe) を使用してクライアントを生成した場合、クライアント コードは、mssp:MustNotSendCancel アサーションが存在するかどうかに対して適切に反応するようになります。
セキュリティ保護されたメッセージ交換とカスタム トークン
WS-SecureConversation 仕様での定義方法に起因する、カスタム トークンと派生キーの混在に関する問題があります。仕様では、wsse:SecurityTokenReference 派生トークンを参照するオプション要素について次のような記述があります。「/wsc:DerivedKeyToken/wsse:SecurityTokenReference このオプションの要素は、派生用のセキュリティ コンテキスト トークン、セキュリティ トークン、または共有キーやシークレットの指定に使用されます。指定されていない場合、受信者はメッセージのコンテキストから共有キーを判断できると想定されます。コンテキストを判断できない場合は、wsc:UnknownDerivationSource などのエラーが発生します。」
つまり、カスタム トークンを派生させるには、SecurityTokenReference 要素にその句型をラップする必要があります。派生をオフにするオプションもありますが、キーを派生させるオプションが既定となっています。キーをラップしなかった場合、派生キー トークンのシリアル化は実行されますが、その逆シリアル化を試みると例外がスローされます。
関連項目
タスク
方法 : WSFederationHttpBinding のセキュリティで保護されたセッションを無効にする