web-dev-qa-db-ja.com

HAProxyのngx_http_auth_request_moduleと同等

HAProxyまたはApache用にnginxのngx_http_auth_request_moduleと同等のモジュールが存在しますか?このモジュールを使用すると、HTTPを介したカスタム認証をサポートできます。私は引用します:

ngx_http_auth_request_moduleモジュール(1.5.4+)は、サブリクエストの結果に基づいてクライアント認証を実装します。サブリクエストが2xx応答コードを返す場合、アクセスは許可されます。 401または403が返される場合、アクセスは対応するエラーコードで拒否されます。サブリクエストによって返されるその他の応答コードは、エラーと見なされます。

5
Klaus

少なくともApache(1.xと2.xの両方)では、試してみることができます https://github.com/kitech/mod_authnz_external 。外部スクリプトを実行して、ユーザーの資格情報を処理します。このスクリプトは、HTTP [s]を介して外部サービスにクエリを実行する場合があります。この場合、ngx_http_auth_request_moduleと同様に機能します(パフォーマンスの問題は考慮しません)。

2
ffeast

この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 }

著者はまた、ニース ブログ投稿 を作成し、内部の仕組みを詳細に説明しました。

2