「単純な」認証 (Hadoop JobTracker UI) を使用するファイアウォールの背後に Web UI があります。これは、URL にユーザーの名前がパラメーターとして含まれていることを意味し、Web サーバーはブラウザーがその名前を信頼していることを意味します。非標準ポート (50030) でリッスンし、"アプリケーション" 識別子はありません (そのため、URI 部分は事実上ランダムです)。したがって、ターゲット URL は次のようになります。https://actual_web_server:50030/jobqueue_details.jsp?queueName=default&User.Name=foo
物事を複雑にするには:
- Apache をリバース プロキシとして使用して、ファイアウォールの穴の数を減らしたいと考えています。
- Apache にユーザーを認証させたい (つまり、LDAP に対して)。
- 私が持っているいくつかの異なる Hadoop クラスターを区別するために、エンド ユーザーに適切な URL を提供したいと考えています。
- 暗号化を採用する必要があります。
したがって、上記の URL がブラウザに次のように表示されることを望んでいます。
https://JobTracker.Cluster1.MySite.com/jobqueue_details.jsp?queueName=default
Apache を次のように構成できることを願っています。
1) mod_authnz_ldap を使用して LDAP に対して着信接続を認証します (こちらのように)。これは多くの例で比較的簡単に見えますが、このビットを処理できると思います!
2) DNS エントリ (JobTracker.Cluster1.MySite.com) と Apache の仮想ホスト エントリを使用して、よりきれいな URL を有効にします。繰り返しますが、本当の課題ではありませんが、構成が複雑になります。
3) mod_rewrite を使用して:
3a) ユーザーが提供した値を信頼できないため、ユーザーが提供した場合は「User.Name=foo」パラメーターを削除します。
3b) パラメータ「User.Name={Authenticated LDAP Username}」を URL に追加します。
3c) きれいなホスト名とポート (JobTracker.Cluster1.MySite.com) をターゲットのホスト名とポート (actual_web_server:50030) に置き換えます。
3d) この新しい URL を使用して、ターゲット Web サーバーへのリクエストをプロキシします。
3e) ブラウザ (およびページ上のすべてのリンク) に表示される URL も、正しい「きれいな」ホスト名を使用するように変更されます。
3f) 理想的には、ブラウザに表示される URL には「User.Name=foo」パラメータが表示されていません。上映されても大したドラマじゃないけど、やめたほうがいい。
ブラウザから「actual_web_server」に直接接続できないため、単純にリダイレクトできないことに注意してください。また、この 1 つの Apache インストールは、これと同じように構成された複数の Web UI (それぞれのカスタム DNS エントリ) を提供します。
誰かが「そこにいて、それを行った」ことを願って、これがどのように、または可能であるかを知るのに十分です.....