2016-04-15 8 views
0

ASP.NET Webフォーム(.Net 3.5)Webサイトアプリケーションでフォーム認証を使用しています。アプリケーションには、さまざまなSSOメソッド(CASなど)を使用してユーザーを検証するさまざまなカスタマイズされた認証サービスが用意されています。これで、AD FSベースの認証サービスを実装し、フォーム認証の構成を大幅に変更する必要がありました。フォーム認証でAD FS用にWIFを構成する

私の質問:

  1. .NETでSAMを設定する方法3.5ウェブサイト
  2. 代わりに、STSにリダイレクトする、AD FSのプロキシに私のログインページからユーザー名とパスワードを渡して取得することが可能ですsamlレスポンス?
  3. 私の意図は、samlレスポンスからカスタム属性値(Employees番号など)を読み込み、現在の認証モジュールで処理することです。出来ますか?

この質問は、AD FS and forms Authenticationでの議論に基づいています。どんな助けでも大歓迎です。

答えて

1
  1. 私は、以前の問題の答えとして掲載スニペットべきより多くまたは.NET 3.5の下で以下の作業(あなたがそれを把握することができませんでしたので、いくつかのAPIが変更ではなく、そのくらいしている)

  2. これは可能ですが、これは悪い考えです。これは、ユーザー名/パスワード以外の認証方法を使用するようにADFSを構成できるためです。たとえば、Windows統合認証を有効にすることができます。あるいは、テキストメッセージを含む2要素認証を使用する別のプロバイダに認証を委任することもできます。これは、パッシブ ws-fedに従う方が信頼できることを意味します。アプリで収集したユーザー名/パスワードをプロバイダに渡すのではなく、プロバイダのログインページにリダイレクトします。

  3. snippedでのSAML検証は、トークンのプリンシパルを表すClaimsIdentityで終了します。あなただけの主張を列挙し、必要な1の検索場所です:

    var identity = .. Validate saml token .. 
    
    foreach (var claim in identity.Claims) 
        if (claim.Type == employee number claim type) 
        Use the claim to establish a local forms auth session 
    
+0

は、詳細な回答のためにありがとうございました。 SecurityTokenHandlerConfiguration、SamlSecurityTokenHandlerなどのようなものは、コードで有効なトークンを取得するために設定する必要がある発行者固有のものですか?つまり、URL(「https://your.sts.address/here」)以外に、発行者からの他の入力が必要ですか? –

+0

はい、発行者の証明書に関する情報が必要です。その証明書は、 'IssuerNameRegistry'において、可能な受け入れられた発行者と照合されます。これは、 'ValidateToken'メソッドが、どの証明書がトークンに署名するのに使用されているかに基づいてSAMLトークンを何らかの形で受け入れ/拒否しなければならないためです。証明書の検証がなければ、誰もが独自のトークンを発行して有効な署名を作成できますが、独自の証明書を使用することができます。 –

+0

マイクロソフトか誰かからコードを検証するための「発行者URL」のテストはありますか? –

関連する問題