トップ回答者
Windows認証できないときにフォーム認証(ログインページ)に移行するには?

質問
-
毎々お世話になっております。
WindowsServer2008R2でIISを構築してASP.net 4.5 Web Forms(VB)で開発したWebサイトを運用します。
このサイトはWindowsのほかにiosやandroid端末からアクセスされます。
社内イントラのため大部分はWindows端末からのアクセスとなるため
Windows端末はシングルサインオン(Windows認証)でログイン操作の簡略化を行い、
他のOSからのアクセスはWindowsアカウントを持たないユーザがいるためフォーム認証を行いたいという要望があります。
実装方法としてWindows認証に失敗した場合はログインページにリダイレクトさせる処理を行えばよいのかなと考えましたが
Windows認証失敗時はIIS側で止まってしまいWEBサイト側までリクエストが届きませんよね?
このような認証を実現するためになにか方法や回避策、別案などありましたらご教授いただけないでしょうか?
ちなみにWindows認証成功後に取得できるユーザアカウントからルールに基づいてコードを生成してそのコードで
本サイト用DBのユーザマスタからユーザ情報を取得します。
フォーム認証の場合、このテーブルから直接ユーザ情報を取得します。
WindowsServer2012R2のActive Directory Federation Service を使用すればiosなどでもWindows認証が行えそうなのでフォーム認証が不要になりそうな気がいたしますが
インフラ関係の見直しが必要になるためだめそうです。
サードパーティ製品も極力使用しない方針です。
以上、よろしくお願いいたします。
回答
-
asp.net forms windows authentication をキーワードにしてググると参考になりそうな記事が見つかりますが、やってみましたか?
例えば下記:
Mixing Forms and Windows Security in ASP.NET
https://msdn.microsoft.com/en-us/library/ms972958.aspxMixing Forms authentication with Windows authentication
http://stackoverflow.com/questions/2250921/mixing-forms-authentication-with-windows-authenticationもし、すでにご自分では検索などで調べて、それらの記事では質問者さんのケースには対応できないことが分かっている場合は、その旨書いてもらえると、回答者のほうも考える範囲が絞れて時間の節約になるのですが・・・
もし、まだ検索などはしていないのでしたら、是非やってみてください。ヒットした記事を読んでみた結果、諦めざるを得ないということになるかもしれませんが・・・
- 編集済み SurferOnWww 2015年6月8日 9:41 一部追加
- 回答としてマーク mikupedia 2015年6月11日 10:52
すべての返信
-
asp.net forms windows authentication をキーワードにしてググると参考になりそうな記事が見つかりますが、やってみましたか?
例えば下記:
Mixing Forms and Windows Security in ASP.NET
https://msdn.microsoft.com/en-us/library/ms972958.aspxMixing Forms authentication with Windows authentication
http://stackoverflow.com/questions/2250921/mixing-forms-authentication-with-windows-authenticationもし、すでにご自分では検索などで調べて、それらの記事では質問者さんのケースには対応できないことが分かっている場合は、その旨書いてもらえると、回答者のほうも考える範囲が絞れて時間の節約になるのですが・・・
もし、まだ検索などはしていないのでしたら、是非やってみてください。ヒットした記事を読んでみた結果、諦めざるを得ないということになるかもしれませんが・・・
- 編集済み SurferOnWww 2015年6月8日 9:41 一部追加
- 回答としてマーク mikupedia 2015年6月11日 10:52
-
SurferOnWww 様
早々のご回答ありがとうございました。
教えていただきましたサイトのキーワード「HTTPStatus:401」をヒントに調べてみたところ
以下のサイトを見つけることができました。ASP.NET で 独自認証処理 を 実装 する 方法
http://garafu.blogspot.jp/2014/01/aspnet.htmlWindows認証とFrom認証は1つのサイトで無理そうなので
Windows認証用のみを行うサイトとフォーム認証を行うメインサイトに分けることで対応することにしました。
Windows認証用サイトでForm認証と同等の認証チケットを発行する方法です。Windows認証用サイトでの401エラーはIISでFrom認証サイトへリダイレクトする設定としました。
佐祐理 様別案のご提示ありがとうございます。
本件については当方ではまだ確認していませんが、下記サイトによると今回のパターンではミスマッチかもしれません。
※From認証の場合、ユーザが別途DBで管理されるため。http://mtgiis.blogspot.jp/2013/02/blog-post_11.html
>そう、結局のところ「基本認証」と「Windows認証」はユーザー管理的な視点からみれば同じものである。
>単に、都度ダイアログ入力を必要とするかシームレスな認証になるかの違いでしかない。
>要は、サーバーにたどり着くまでの道のりが違うだけである。