HAProxyまたはApache用にnginxのngx_http_auth_request_module
と同等のモジュールが存在しますか?このモジュールを使用すると、HTTPを介したカスタム認証をサポートできます。私は引用します:
ngx_http_auth_request_module
モジュール(1.5.4+)は、サブリクエストの結果に基づいてクライアント認証を実装します。サブリクエストが2xx応答コードを返す場合、アクセスは許可されます。 401または403が返される場合、アクセスは対応するエラーコードで拒否されます。サブリクエストによって返されるその他の応答コードは、エラーと見なされます。
少なくともApache(1.xと2.xの両方)では、試してみることができます https://github.com/kitech/mod_authnz_external 。外部スクリプトを実行して、ユーザーの資格情報を処理します。このスクリプトは、HTTP [s]を介して外部サービスにクエリを実行する場合があります。この場合、ngx_http_auth_request_moduleと同様に機能します(パフォーマンスの問題は考慮しません)。
このLuaベースの ソリューションを試すことができます。 ngx_http_auth_request_module
に触発されています。
global
セクションにluaスクリプトをロードします。
global
lua-load /usr/share/haproxy/auth-request.lua
認証バックエンドを定義する
backend auth_request
mode http
server auth_request 127.0.0.1:8080 check
フロントエンドでLuaチェックを呼び出し、失敗した場合はリクエストを拒否します。
frontend http
http-request lua.auth-request auth_request /is-allowed
http-request deny if ! { var(txn.auth_response_successful) -m bool }
著者はまた、ニース ブログ投稿 を作成し、内部の仕組みを詳細に説明しました。