ローカルネットワークの内部と外部の両方で、組織のネットワークインフラストラクチャの制限内で機能する認証システムを作成しようとしています。
ローカルネットワーク内にいるときは、Windowsログインを使用してログインしなくても、このASP.NETWebフォームアプリケーションにアクセスできるようにしたいと思います。
外部的には、カスタムログインフォームからログインする必要があります。
その理由は、ローカルインフラストラクチャが原因で、Windows認証がローカルネットワークの外部では機能しないためです。
そこで、そのフォルダーに対してのみ匿名認証を無効にしてパスワードで保護されたフォルダーを作成し、ページ要求ごとに、ユーザーにログインのフラグが付けられているかどうか(これを行う方法の詳細は重要ではありません)、そうでないかどうかを確認します。パスワードで保護されたフォルダー内にあるWebサービスにAJAX要求を行うページにリダイレクトして、ローカルネットワークにログインしているかどうかを確認します。そうでない場合は、カスタムログインフォームページにリダイレクトされます。
当時、これはすべて良い考えのように聞こえましたが、実際には望ましくないことをします...外部ユーザーがアクセスを試みてAJAXリクエストが行われると、ブラウザのユーザー名とパスワードのプロンプトが表示されますが、続行するにはキャンセルする必要があります。
このタイプの認証はHTTPの一部であり、AJAXを使用してもバイパスできない可能性がありますが、ユーザー名/パスワードのプロンプトや、ローカルネットワークまたは外部アクセスかどうかを確認する別の方法なしでこれを機能させる方法についてのアイデアはありますか? ?
IPアドレスを確認できることは知っていますが、これは偽造される可能性があることを理解しています(ただし、これを行おうとしているユーザーにのみ問題が発生します)。
また、内部または外部に異なるエントリポイントを設定できることも知っていますが、これは避けたかったのです。
自分がやりたいことの解決策が見つからなかったので、ユーザーのIPアドレスを確認して、ユーザーがローカルネットワークに接続しているかどうかを確認することにしました。
これはHTTPヘッダーを介して送信され、偽造される可能性がありますが、Windows認証を介してユーザーにユーザー名とパスワードの入力を求められるだけです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加