2016-08-30 6 views
-1

私はASP.netで作成されたAzureでホストされているWebアプリケーションを持っています。これには、ユーザーログインページと別の管理ログインページがあります。使用されているデータベースはMySQLです。最近では、管理者のログインページは、どのマシンからでもアクセスできるユーザーログインページとは異なり、クライアントによって割り当てられる単一のマシンでのみアクセスできるようにするという新しい要件がクライアントによって追加されました。単一のマシンでAzure Webサイトにアクセスする

解決策の1つは、クライアントマシンのMACアドレスを取得してデータベースエントリと比較することでしたが、多くの検索を行った後、クライアントマシンのMACアドレスを取得する方法がないことがわかりました。クライアントとサーバーが同じサブネット上にある場合しかし、それは私の場合ではない、なぜならウェブアプリケーションは青空でホストされているからであり、クライアントマシンは世界のどこにでもある可能性があるからだ。

管理者クライアントマシンが動的IPアドレスを使用しているため、IPアドレスを使用して管理ポータルへのアクセスを制限することはできません。また、ユーザーログインのために他のユーザーマシンの使用を制限するため、SSL証明書も使用できません。

ワークフローは次のようになります。管理者はマシン上のブラウザでページを開き、ログイン情報を入力した後、そのページにアクセスしているマシンが管理ポータルにアクセスする権限を持っているかどうかを確認します。ですから、これを達成する方法はありますか?1台のマシンで管理者ログインを許可する方法はありますか?

+0

クライアントマシンを識別する方法は複数あります。たとえば、クライアント証明書またはそのIPアドレスを使用できます。 [ask]を読んで研究を共有してください。 – CodeCaster

+0

ありがとう、私はこれに関する更なる情報を更新しました。また、IPアドレスを使用して管理ポータルへのアクセスを制限することはできません。これは、管理クライアントマシンが動的IPアドレス上にあり、それが変更される可能性があるためです。また、ユーザーログインのために他のユーザーマシンの使用を制限するため、SSL証明書も使用できません。 –

答えて

0

解決策は管理者のDBエントリである可能性があります。管理者が管理ポータルにログインすると、管理者用のエントリが「ログイン済み」として更新されます。管理者が既にログインしている場合は、ログインごとにチェックすることができます。

+0

これを実装しても、管理者は、初めての場合でも、そのWebアドレスとログイン情報を使用するだけで、どのマシンからでもログインすることができます。私の問題は、管理者ログインを1台のマシンでのみ実行するように制限することです。 –

+0

あなたのアーキテクチャをどのように設定するかによって、管理者としてログインした人が既にログインしているためログインフォームに成功しなかったことをログインフォームに伝える必要があります。 – wuerzelchen

+0

はい、これは管理者が一度ログインできるように制限されており、そのセッションの進行中に管理者は再度ログインすることはできませんが、問題があっても管理者を1台のマシンからログインするよう制限していました複数回または複数のブラウザ。 –

関連する問題