ADF2.0、WIF(WS-Federation)、ASP.NET:web.configに定義されているhttpモジュールやIdentityFoundationの設定はありません(ほとんどのWIF SDKサンプルのように)、代わりにWSFederationAuthenticationModule 、ServiceConfigurationクラス、およびSignInRequestMessageクラスです。私はhttpでADFSへのリダイレクトをコードで行い、それはうまく動作していると思われ、要求を返して、httpリクエストでシリアル化された主張でユーザーを自分のWebサイトにリダイレクトします。したがって、問題は、WIFのクラス、プロパティ、およびメソッドを使用してこのリクエストを解析し、そこからクレーム値を抽出する方法です。ありがとうWIFを使用しているコードでhttp要求の要求をシリアル化する方法は?
1
A
答えて
1
私の経験を共有したい場合は、将来的に誰かを助けるかもしれません。まあ、解決策は、私が最終的にこのようなルックスに来た:私は読み、トークン解析する代わりにSaml11SecurityTokenHandlerのSecurityTokenServiceConfigurationを(それがトークンハンドラが含まれている)を使用して、いくつかの類似したコードを見つけ
var message = SignInResponseMessage.CreateFromFormPost(Request) as SignInResponseMessage;
var rstr = new WSFederationSerializer().CreateResponse(message, new WSTrustSerializationContext(SecurityTokenHandlerCollectionManager.CreateDefaultSecurityTokenHandlerCollectionManager()));
var issuers = new ConfigurationBasedIssuerNameRegistry();
issuers.AddTrustedIssuer("630AF999EA69AF4917362D30C9EEA00C22D9A343", @"http://MyADFSServer/adfs/services/trust");
var tokenHandler = new Saml11SecurityTokenHandler {CertificateValidator = X509CertificateValidator.None};
var config = new SecurityTokenHandlerConfiguration{
CertificateValidator = X509CertificateValidator.None,
IssuerNameRegistry = issuers};
config.AudienceRestriction.AllowedAudienceUris.Add(new Uri("MyUri"));
tokenHandler.Configuration = config;
using(var reader=XmlReader.Create(new StringReader(rstr.RequestedSecurityToken.SecurityTokenXml.OuterXml)))
{
token = tokenHandler.ReadToken(reader);
}
ClaimsIdentityCollection claimsIdentity = tokenHandler.ValidateToken(token);
、しかし、それは理由の私のために動作しませんでした証明書の検証に失敗しました。 SecurityTokenServiceConfiguration.CertificateValidator
〜X509CertificateValidator.None
はセキュリティの手助けをしていませんセキュリティトークンハンドラクラスは独自のハンドラ構成を使用し、STS設定値を無視します。少なくとも、設定パラメータを指定した場合はコードを使用しますが、web.config 。
関連する問題
- 1. haproxyを使用したhttps要求へのHTTP要求
- 2. WCF XMLシリアル化ソープ要求
- 3. コード変更なしですべてのHTTP要求をHTTPS要求にリダイレクト
- 4. 要求ライブラリでHTTP DELETE要求を行う方法
- 5. WIFを使用したSAML認証要求の作成
- 6. は、httpポスト要求ポストの要求を竜巻する
- 7. 要求のHTTP要求のダウンロード速度を制限する方法Pythonライブラリ?
- 8. のWhatsAppのAPI要求コード要求コード
- 9. Nodejを使用して単一のHTTP要求マルチリダイレクションが必要
- 10. 整数をPOST HTTP要求のパラメータとして使用する
- 11. akka-http MergeHubを使用してクライアント側から要求をスロットルする方法
- 12. HTTP要求ですべての結果を得る方法python
- 13. httpメソッドに応じてフィールドを要求する方法は?
- 14. HTTP POST要求エラーHTTPError:不正要求
- 15. は、HTTPSリクエスト私はPythonの要求ライブラリーに 私のコードを使用してHTTPS要求を送信しようとしていますPythonの要求ライブラリ
- 16. 角度アプリケーションでHTTP要求を同期する方法は?
- 17. ASPでHTTP POST要求を実行する方法は?
- 18. ジャスミンHTTP要求(フェッチとXMLXtthpRequest用)を模擬する方法
- 19. Node.jsの要求は、私は、Webサービスに対して次の要求(要求/要求を使用して)やってる
- 20. アクセストークンを使用してPOST要求に署名する方法
- 21. http要求を使用してSQL Serverでストアドプロシージャを実行
- 22. ローカルマシンでのHTTP要求のステータスゼロを克服する方法
- 23. サーバー要求なしで応答する$ http要求と応答を返す
- 24. REST APIを使用してJSONを要求するC#コードを最適化する方法
- 25. stenciljsのhttp要求
- 26. ウィンドウでhttp/https要求をトラップする
- 27. NodeMCU HTTPモジュールのHTTPS投稿要求の使用方法
- 28. AWS XRAY - 私たちは、次のステートメントで解決HTTPモジュールを使用する必要がHTTP要求を追跡するために、HTTP送信要求
- 29. 非同期HTTP要求と新しいスレッドのHTTP要求の比較
- 30. J2MEで完全なHTTP POST要求を表示する方法
モジュールと設定を避ける理由を尋ねることはできますか?あなたはある程度車輪を再発明しているようです。 –
これは長い話です。まもなく、私たちはすでにユーザ認証の従来の仕組みを持っています。私たちはこれからも使い続けるつもりです。 SSOはユーザーに提供される選択肢であり、WS-Fed SSOを単一のページ/サービスに実装してクレームを獲得し、独自の認証システムに変換し、システムの残りの部分はそのままにします。私たちが今やっているのは、私たち自身のレガシー認証システムに一種の変換WS-Def SSO(ADFS、WIF)です。私たちは、WSFederationAuthenticationModuleのようなMSのhttpモジュールが動作し、認証を制御することを望んでいません。 – YMC