Jira アプリケーションを IIS と統合する
このページの内容は、Jira でサポートされていないプラットフォームに関連しています。したがって、アトラシアンは、そのためのサポートの提供を保証できません 。この資料は情報提供のみを目的としているため、お客様自身の責任でご使用ください。
Apache Tomcat の “Ghostcat” 脆弱性について
このガイドに従うと、ご利用の Jira インスタンスが Apache Tomcat で最近見つかったリスクの高い脆弱性にさらされる可能性があります。
このページでは、ユーザーからのリクエストをマイクロソフトの IIS ウェブサーバーが Jira に引き渡し、またそれに対する応答を IIS がユーザーに返すように、IIS および Jira を設定する方法について説明します。この説明は、お客様において既にウェブページ (例えば、http://mycompany.com) を提供する IIS が稼働中であり、かつ Jira を少しだけ異なる URL (例えば、http://mycompany.com/jira) に統合する場合に有用です。
Jira は Java で記述されており、その実行には Java アプリケーションサーバー (サーブレットコンテナー) が必要です。IIS はJava アプリケーションサーバーとしての機能を提供していないため、Jira を IIS に直接デプロイすることはできません。ただし、Jira がデプロイされているアプリケーションサーバーのプロキシとして Jira にリクエストを引き渡すように IIS を設定することは可能です。従って、お客様の主ウェブサイトが IIS 上で稼動している場合に Jira をそのウェブサイトと統合することが可能になるのです。
Jira をIIS と統合する際には、IIS との統合機能を提供しているJava アプリケーションサーバー (例えば Apache Tomcat) に Jira をデプロイする必要があります。
Jira がApache Tomcat 以外のアプリケーションサーバー上で稼動している場合、アプリケーションサーバーの IIS への統合の可否 (ならびにその方法) についてはそのアプリケーションサーバーの説明書を参照してください。
Jira を IIS に統合する手順は以下の通りです :
1. Jira を構成する
- 「Jira インストール ガイド」 に従って Jira をインストール、設定します。なお、Jira を IIS と同一のマシーンにインストールすることができますが、このことは必須ではありません。
Jira Web アプリケーションのコンテキスト パスを変更します。
Jira へのリクエストを IIS でプロキシするには、Tomcat のコンテキスト パス (例: http://localhost:8080/jira における /jira の部分 (http://localhost:8080*/jira*)) で Jira の Web アプリケーションをデプロイする必要があります。IIS がリクエストをプロキシする際に使用する URL のパスで、このコンテキスト パスが設定されている必要があります。例えば、IIS 上で稼動しているウェブサイトの URL がwww.example.com
で、Jira にアクセスする URL をwww.example.com/jira
とする場合、Tomcat における Jira のコンテキスト パスを "/jira
" にする必要があります。これを行うには、conf/server.xml
ファイルを編集します。Context
要素のpath
属性を "/jira
" に変更します。- コンテキストパス修正後、Jira を再起動します。 コンテキストパスを含むように
- 'Base URL' を設定します (Configuring Jira Options をご覧ください)。
- Jira の GZip compression オプションをオフに設定します (プロキシが導入済みの場合は GZip 圧縮の利点がないため)。
- ウェブブラウザーにおいて Tomcat を直接ポイントし (例えば http://localhost:8080/jira)、Jira セットアップウィザードを最後まで実行して Jira が正しく動作することを確認するテストを行います。以前にセットアップウィザードを実行済みの場合は、課題の作成や編集を代わりのテストとします。エラーが全く起こらないことを確認してください。
2. プロキシされたリクエストを受け入れるための Tomcat の設定
HTTP/1.1 Connector
HTTP/1.1 Connector を使用している場合、Tomcat の server.xml
に次の属性を追加する必要があります:
proxyName="mycompany.com" proxyPort="80"
参考として Integrating Jira with Apache をご覧ください。
Tomcat の AJP/1.3 コネクターの有効化: Tomcat が Jira に対するリクエストを IIS から受け取ることができるようにするためには、
conf/server.xml
ファイルを編集して AJP/1.3 Connector を有効にする (コメント アウトを解除する) 必要があります。Jira で AJP/1.3 Connector を有効にするには、conf/server.xml
ファイルの次のセクションでコメント記号を削除します。<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
上の例では、プロキシされた IIS リクエストをポート
8009
でリッスンするように Tomcat を設定しています。Jira が実行されているマシンでこのポート番号を使用中の場合、別のポートを指定する必要があります。- Tomcat を再起動し、使用したポートに関連するエラーがログにもコンソールの表示にも現れないことを確認してください。
- AJP Connector が指定したポート (デフォルトでは 8009) でリッスンしていることを確認します。これを行う方法の 1 つとして、コマンド ウィンドウで "
netstat -na
" コマンドを使用して、ポート 8009 が出力の一覧に表示されるかどうかを確認できます:
3. Jira にリクエストを送るための IIS の設定
IIS がデプロイされているマシーンにおいて、次の手順を実行します :
Apache のサイトから ISAPI Redirect DLL をダウンロードします。ダウンロードの際には、IIS が実行されている Windows のバージョン (Win32 または Win64) を選択し、次に利用可能な jk の中の最新バージョンを選択します。
ダウンロードするファイルの名称は isapi_redirect_X.X.X.dll となっており、ここで 'X.X.X' はバージョン番号です。このバージョン番号は DLL ファイル名から除去する必要があります (即ち、ファイル名を isapi_redirect.dll としなければなりません)。
- DLL および関連プロパティ ファイルをインストール ディレクトリに配置します。本ドキュメントでは、このディレクトリを
C:\tomcat_iis_connector
とします。このディレクトリに isapi_redirect.dll を配置します。次に、isapi_redirect.properties ファイルをダウンロードし、isapi_redirect.dllファイルと同じディレクトリに配置します。 - "conf" という名前のディレクトリをインストール ディレクトリ (
C:\tomcat_iis_connector\conf
) に作成します。uriworkermap.properties と workers.properties.minimal ファイルをダウンロードし、C:\tomcat_iis_connector\conf
ディレクトリに配置します。 - "logs" という名前のディレクトリを作成します (
C:\tomcat_iis_connector\logs
)。このディレクトリに、isapi_redirect.dllの実行に伴うログが保存されます。 - "
C:\tomcat_iis_connector
" ディレクトリではisapi_redirect.properties
ファイルを変更する必要がある場合があります。このisapi_redirect.properties
ファイルはコネクターに対し、その設定ファイルの保存場所の情報と IIS サーバーに関係する DLL の保存場所の情報を伝えます。このファイルには次の 5 つのプロパティが記述されています。- extension_uri — isapi_redirect.dll が保存されている仮想ディレクトリのパスです
- log_file — ログファイルに書き込みを行うときのパスです
- log_level — ログを生成する際のログレベルです
- worker_file — 現在のインストレーションにおける
workers.properties.minimal
ファイルのパス - worker_mount_file — 現在のインストレーションにおける
uriworkermap.propertiesl
ファイルのパス
コネクターをC:\tomcat_iis_connector
にインストールし、isapi_redirect.dllの仮想ディレクトリを以降の説明に従ってセットアップしている場合、このファイルのプロパティ情報を書き換える必要はありません。
"
C:\tomcat_iis_connector\conf
" ディレクトリではuriworkermap.properties
およびworkers.properties.minimal
ファイルを変更する必要がある場合があります。これらのファイルは、ここで説明した設定変更内容を記録しており、このドキュメントに従って最後まで作業した場合はそのままで正しく動作します。このドキュメントとは異なる作業を行った場合、以下の手順でこれらのファイルを書き換える必要が生じます。
workers.properties.minimal
ファイルは、Tomcat が実行されている場所 (IP アドレスとポート番号) を IIS に伝えます。uriworkermap.properties
ファイルは、IIS に対し、どのリクエストを Tomcat に対してプロキシするかを伝えます。
これらのファイルは以下の手順で編集します。uriworkermap.properties
を編集し、Jira への次のようなマッピングが含まれていることを確認します。これ以外のマッピングは不要です。/jira/*=worker1
ここでのマッピング (例:
/jira/
) は、このドキュメントの「Jira の設定」セクションで説明したとおり、Tomcat で Jira がデプロイされているコンテキスト パスと同一である必要があります。workers.properties.minimal
ファイルを編集し、必要に応じてworker.ajp13w.host
プロパティを修正します。このプロパティは、Tomcat (および Jira) が実行されているマシンのホスト名または IP アドレスに設定する必要があります。IIS と同一のマシン上で Tomcat を実行している場合、このプロパティをlocalhost
のままにします。このプロパティの値としてホスト名を指定した場合は、IIS を実行しているマシンがそれを IP アドレスに適切に変換できることを確認します。AJP Connector のポートを変更している場合は、
worker.ajp13w.port
プロパティの修正も必要です。以下に、Tomcat が IIS と同一のマシン上で実行されていて、AJP について既定のポート (8009) を使用している場合の、このファイルの例を示します。worker.list=worker1 # # Defining a worker named worker1 and of type ajp13. # Note that the name and the type do not have to match. # worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009
- Control Panel、続いて Administrative Tools を開き、さらに Internet Information Services. を開きます。
- IIS 7.0 の場合のみ : IIS 7.0 を使用している場合は、次の手順で必要なサービスロールである ISAPI Extensions および ISAPI Filtersをインストールしなければなりません :
- Start Menu > All Programs > Administration Tools > Service Manager と移動します。
- Server Manager > Roles から 'Web Server (IIS)' を選択します。
- 'Add Role Services' をクリックし、以降はウィザードに従って操作します。
- 以下の手順で IIS に ISAPI Filter を追加します :
- IIS 6.0 以前の場合 :
- Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、Properties をクリックします。
- ISAPI Filters タブをクリックします。
isapi_redirect.dll
ファイルをポイントするフィルターが存在すること、およびそれが適切な場所にあることを確認します。存在しない場合は、[Add] をクリックしてそれを作成します。フィルター名として「tomcat
」と入力し、実行ファイルとしてisapi_redirect.dll
の場所を指定します。- Apply、続いて OK をクリックします。
- IIS 7.0 の場合 :
- Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、ISAPI Filters をクリックします。
- ISAPI Filters のアイコンをクリックします。
isapi_redirect.dll
ファイルをポイントするフィルターが存在すること、およびそれが適切な場所にあることを確認します。存在しない場合は、[Add] をクリックしてそれを作成します。フィルター名として「tomcat
」と入力し、isapi_redirect.dll
ファイルの場所を入力します。- [OK] をクリックします。
- IIS 6.0 以前の場合 :
- IIS における Jira の仮想ディレクトリを作成します。
- Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、New を選択、続いて Virtual Directory を選択します。
- 作成ウィザードに従って操作します。
alias
の値として、このドキュメントの「Jira の設定」セクション (前述) で設定したコンテキスト パス (スラッシュを除いたもの) を指定します。本ドキュメントの例ではjira
です。 - この仮想ディレクトリは任意のディレクトリをポイントすることが可能です。
ウィザードを完了します。
仮想ディレクトリを作成する理由は、URL の末尾にスラッシュのないリクエストを受け取った時にも正しく動作させることにあります。例えば、Jira を
http://www.example.com/jira/
配下にデプロイしていて、仮想ディレクトリを持たない場合、http://www.example.com/jira
へのリクエストは正しく処理されません。
- 次の手順に従って、IIS 内の isapi_redirect.dll にアクセスするための仮想ディレクトリを作成します :
- IIS 6.0 以前の場合 :
- Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、New を選択、続いて Virtual Directory を選択します。
- 作成ウィザードに従って操作します。
alias
はjakarta
に設定します。 - これは isapi_redirect.dll がインストールされているディレクトリをポイントしている必要があります。本ドキュメントの例では
C:\tomcat_iis_connector
です。 - 'Execute' チェックボックスにチェックが入っていて Virtual Directory に対して 'Execute' パーミッションが付与されていることを確認してからウィザードを完了します。
- IIS 7.0 の場合 :
- Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、Add Virtual Directory を選択します。
alias
をjakarta
に設定します。- Physical Path は isapi_redirect.dll がインストールされているディレクトリをポイントしている必要があります。本ドキュメントの例では
C:\tomcat_iis_connector
です。 - 'jakarta' 仮想ディレクトリをクリックし、'Handler Mappings' をダブルクリックします。
- 右側の Action パネルにある 'Edit Feature Permissions' をクリックします。
'Execute' パーミッションチェックボックスにチェックを入れます。
この仮想ディレクトリはコネクターを動作させるために必要です。ディレクトリに設定したエイリアスは、
isapi_redirect.properties
ファイルのextension_uri
プロパティに記述されているパスと同一である必要があります。本ドキュメントの例では/jakarta/isapi_redirect.dll
です。
- IIS 6.0 以前の場合 :
- IIS 6.0 または 7.0 を利用している場合、以下の手順に従って Web Service Extension として DLL を追加する必要があります。
- IIS 6.0 の場合 :
- Web Service Extensions 上で右クリックし、Add a new Web Service Extension... を選択します。
- [Extension Name] に「
tomcat
」と入力し、必要な指定ファイルにisapi_redirect.dll
ファイルを追加します。 - 拡張状況を許可に設定チェックボックスを選択して、OK ボタンをクリックします。
- IIS 7.0 の場合 :
- サーバー群の中から該当のサーバーをハイライトします。
- 'ISAPI and CGI Restrictions' に移動します。
- isapi_redirect.dll 拡張を追加し、有効化します。
- IIS 6.0 の場合 :
- ここで IIS Service を再起動する必要があります。これを行うには、Control Panel を開き、Administrative Tools をクリックし、さらに Services をクリックし、IIS Admin Service を探して restart をクリックします。
- 以上で完了です。設定のテストを行うには、ウェブ ブラウザで IIS にアクセスし、URL に Jira のコンテキスト パスを追記します。例えば、ウェブサイトが
http://www.example.com
のアドレスで実行されていて、Jira をデプロイしたコンテキスト パスがjira
である場合、ブラウザでhttp://www.example.com/jira
をポイントします。
トラブルシューティング
- ブラウザーで Jira にアクセスするたびにログイン パネルが表示されます。正しいユーザー名とパスワードを入力してもパネルが表示されます。IIS の
jira
仮想ディレクトリに匿名アクセスが設定されていることを確認します。上述の手順に従って操作した場合、この設定が有効化されています。これは次の手順で確認することができます。- "Internet Information Services" 内の
jira
仮想ディレクトリを右クリックし、[プロパティ] を選択します。 - 'Directory Security' タブをクリックします。
- 'Anonymous access and authentication control' セクションの 'Edit...' ボタンをクリックします。
- 'Anonymous access' のチェックボックスがチェックされていることを確認し、さらに 'Authenticated access' セクションのその他の項目が有効になっていないことを確認します。'Basic authentication'. を選択してはいけません。また、'Integrated Windows authentication' を選択してもいけません。
- "Internet Information Services" 内の
- Internet Explorer を使用して Jira にアクセスするたびにログインパネルが現れます。正しいユーザー名とパスワードを入力するのですが、それでもパネルが必ず現れます。ただし、 Firefox や Safari なと、別のブラウザーを使用するとこの現象は起きません。これらのブラウザーを使用した場合、Jira に正常にログインすることができます。Internet Explorer の ユーザー認証が匿名でログオンするに設定されていることを確認してください。これは次の手順で確認することができます :
- Internet Explorer の 「ツール」メニューをクリックし、「インターネットオプション」を選択します。
- 「セキュリティ」タブをクリックします。
- Jira サーバーが該当するセキュリティゾーンを選択します。
- 「レベルのカスタマイス...」ボタンをクリックします。
- 右側のバーをスクロールして一番下の「ユーザー認証」セクションを表示します。
- 「匿名でログオンする」を選択します (選択されていない場合)。
- この画面と次の画面の 'OK' ボタンをクリックします。
- Internet Explorer を再起動します。
- ブラウザで http://localhost/jira と入力して Jira インスタンスに移動しようとしても、意味不明の情報と共にファイルのダウンロードを促す画面が表示され、Jira インスタンスが表示されません。IIS で Jira の仮想ディレクトリに対して「Execute」権限が付与されていることを確認してください。詳細については、本ドキュメントの「3. IIS を設定して、Jira にリクエストを送信する」セクションのステップ 11 をご参照ください。
既知の問題
- 64 bit IIS:OS が 64 bit の場合は、Tomcat IIS コネクターの 64 bit バージョンを使用してください。
- お客様からのソリューション情報: 32 bit のIIS コネクタのみ利用可能な場合、
Application Pools > Advanced Settings > Allow 32bit applications
をクリックして利用できます。 - お客様からのソリューション情報 : ウェブサイトの ISAPI 拡張を設定する必要があります。