web-dev-qa-db-ja.com

ローカルDjango開発サーバーから制限付きパブリックテストサーバーに移行するにはどうすればよいですか?

私は一般に公開されるべきではないウェブサイトに取り組んでいます。現在、manage.pyとrunserverを使用してローカルコンピューターで開発しています。

ただし、一部の人だけがサイトにアクセスできるようにしたいと思います。これらの人々は開発者ではないため、コードにアクセスする必要はありません。また、開発者ではないため、ある程度ユーザーフレンドリーなソリューションになるはずです。彼らは私の現在の変更を24時間表示するためにアクセスする必要があります。

ALLOWED_HOSTSで何かをしようと考えましたが、これらの人々は外出先でさまざまなIPからログインしており、そのうちのいくつかは動的であると確信しています。

ランディングページをログインとして設定することを検討しましたが、Webサイトにはすでに複数のユーザータイプを持つ複雑なログインシステムがあり、これらのユーザーはさまざまなWebサイト機能を表示およびテストするために複数のアカウントを作成する必要があります。 Webサイト全体にアクセスするためだけに個別のログインを作成し、それでもログインして他のアカウントをテストできるようにすることは、オーバーヘッドが大きすぎてユーザーフレンドリーではないように思われました。もっと良い解決策があるに違いないと思いました。

それで、ランダムな公衆がアクセスできないようにしながら、開発中に限られた非開発者の聴衆にDjango Webサイトを共有するための最良の方法は何ですか?これを行うパッケージまたはサービスはありますか? ?

ありがとう。

2
Lucas

考えられるアイデアの1つは、テスターに​​クライアント側のX509証明書を与えることです。

  • 証明書と秘密鍵をブラウザに入力します。私のFirefoxでは、[設定]-> [プライバシー]->一番下までスクロール-> [証明書の表示]-> [証明書]タブ-> [インポート]にあります
  • SSL/TLS接続(nginxリバースプロキシ、haproxy、Apacheなど)の終わりは、パブリック443ポートでリッスンしますが、通常のサーバー側証明書を提供するだけでなく、-の検証を成功させる必要があるように構成されています。 クライアント側証明書(明らかにテスターの証明書のみを受け入れるように構成します)。
  • これらはお客様側の高度なSSL/TLSオプションであるため、たとえば、httpsのAWSALB実装では不十分です。
  • この方法で許可できるのはhttpsの使用のみであり、プレーンテキストのhttpは許可されません。
  • これはhttpGET/POST/cookieの内容にはまったく影響しないため、これらのレベルの認証スキームには影響しません。
  • 許可されていないブラウザはSSL/TLSエラーを表示します-GET/POSTを渡すことはできません。
2
kubanczyk