カバーしなければならないことがたくさんあるので、すべての優れたプログラマーがすべきであるように、構造化を維持しようとします.. 我慢してください.
私の環境
- .NET 3.5 SP1 スマート クライアント
- HTTP 経由で WCF+SOAP を使用して、ビジネス ロジック/データ アクセスのためにサーバーと通信します。
- 通常、カスタム (ユーザー名とパスワード) または Windows 認証スキームを使用します。
- 現在の作業は、ADFS での SSO を容易にする新しいクレームベースの認証スキームを含めるように拡張することを目的としています
ここのところ...
- ws2007FederationHttpBinding バインディングを使用する主要なサービス エンドポイント、trust/13/issuedtokenmixedsymmetricbasic256 ADFS 2.0 エンドポイントを介したメッセージ セキュリティで設定された構成
- IssuedTokenOverTransport で構成された発行者エンドポイントから HTTPS trust/13/usernamemixed ADFS 2.0 エンドポイントへ
- サービスには federateServiceHostConfiguration サービス動作が指定されています
- 一時的な認証局 (CA) 証明書を作成しました
- CA によって署名された一時的な証明書が作成されました
- 証明書 (秘密キーを含む) をインストールし、IIS アプリ プール プロセス アカウントで使用できるようにする
- X509 証明書を使用するようにサービス WCF 構成を更新しました
- 新しいアプリ独自のクライアント スキーム/モードで変更されたクライアントは、プログラムでチャネル ファクトリをセットアップして、一時証明書によって発生したエラーを無視し、証明書失効チェックを無効にします。
- ユーザー名/パスワード資格情報が (標準の WCF ClientCredentials オブジェクトを介して) トークン要求の SOAP エンベロープに正常に追加されました
- トークンは usernamemixed エンドポイントによって正常に生成され、クライアントに返されます
私の問題
- トークンが発行された直後に、issuedtokenmixedsymmetricbasic256 エンドポイントへの後続の呼び出しが失敗し、メッセージのセキュリティを検証できなかったという一般的なエラー メッセージが表示されます。SOAP エンベロープの結果を検査しても、単純な「失敗」結果の列挙値以外の情報はまったく得られません
- ADFS 2.0 サーバーで完全なトレースが有効になっていますが、詳細な診断のためにイベント ログまたはイベント トレースにイベントがまったく記録されません。
- これまでフェデレーション方式で動作するように構成できませんでした。トークンは、「テスト」環境 (リモート サーバーではなく内部 ADFS サーバー) で usernamemixed エンドポイントを介して正常に発行されます。「ライブ」環境を使用すると、トークンを取得しようとするときに、usernamemixed を確認済みの有効な資格情報と混合して使用するか、windowsmixed を使用するかに関係なく、説明のつかない単純な 401 HTTP ステータス コードが返されます。
- 一般的に: Microsoft または他のソースからのリソースは非常に少なく、特定の状況に非常に限定されており、いくつかのケースでは、完全に間違っているか、誤解を招く可能性があります。
だから、もう質問してください、ばか
トークンを取得した後に WCF が実行する issuedtokenmixedsymmetricbasic256 の呼び出しが失敗するのはなぜですか? 結果を診断するにはどうすればよいですか?サービス ホスト構成ですべてのトレース フラグを有効にすること、イベント ログとイベント トレース データをチェックすること、これまでに行ったこと以外に、何ができますか?
スクリーンキャスト/ガイド/ブログ/すべてを網羅しているように見える MSDN 記事へのリンクを提案しようとしている場合は、注意してください。私はそれらをすべて見つけ、すべて試したと思います。この時点で必要なのは、上記の質問に対する答えです。一般リソースではありません。