Rustで開発された個人用プライベートサーバー向けTOTPリバースプロキシ
(github.com/KBluePurple)公共の場所からアクセスする必要があるときや、友人に一時的にアクセス権を与えたいときに使いやすい、TOTPベース認証を適用したリバースプロキシです。
Cloudflare の Pingora を利用しており、Rust 言語で開発されているため非常に軽量で、高速な性能を発揮します。
Rust 言語がとても気に入っていたものの、これといったプロジェクトを作れずに少し触りながら勉強するだけでしたが、ちょうど使いどころに合うプロジェクトのアイデアが浮かび、初めて公開する本格的な Rust プロジェクトになりました。
Google Authenticator やそのほかの TOTP 対応アプリを通じてワンタイム OTP を生成して認証し、アクセスできます。
基本的にセッションは最大30分まで継続し、必要であれば TLS/HTTPS を有効化でき、少し設定を行えばほかの Proxy を経由してきたリクエストも正常に処理できます。
セキュリティのために開発されたプロキシであるため、できる限りセキュリティを最優先にして開発してみました!
まだ自分しか使っていない未熟なプロジェクトなので、フィードバックや Issue、PR などはいつでも歓迎です!
4件のコメント
友人に一時的なアクセス権を付与するシナリオを、どのように実現できるのか気になります。すべてのユーザーが同じ secret 値を使用するものと理解しているので。
友人にシークレットから生成した6桁のパスワードだけを渡せば、一時的にその友人が認証してログインし、利用できるというシナリオです!
非同期的な状況では使いにくいかもしれませんが、私は一時的なサーバー共有の場面のほとんどで便利に使ってきました!
ああ、理解しました。ありがとうございます
おお……