Jira アプリケーションを IIS と統合する

Jira アプリケーションを Web サーバーに統合する

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

このページの内容は、Jira でサポートされていないプラットフォームに関連しています。したがって、アトラシアンは、そのためのサポートの提供を保証できません 。この資料は情報提供のみを目的としているため、お客様自身の責任でご使用ください。

Apache Tomcat の “Ghostcat” 脆弱性について

このガイドに従うと、ご利用の Jira インスタンスが Apache Tomcat で最近見つかったリスクの高い脆弱性にさらされる可能性があります。

詳細を読む...

この問題を修正したバージョンの Tomcat が Jira にバンドルされるまで、お待ちいただくことをおすすめします。このバージョンがリリースされたらこの注意書きを更新します。この脆弱性について詳しくは、以下をご覧ください。

それまでの間に AJP コネクタを使用する必要がある場合、この問題を緩和するために実施できる手順があります。詳細については、こちらの記事をご参照ください。

このページでは、ユーザーからのリクエストをマイクロソフトの 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 の設定と動作テスト
  2. IIS からのプロキシを介したリクエストを受け入れるための Tomcat の設定
  3. Jira リクエストを Tomcat に転送するための IIS の設定

1. Jira を構成する

  1. Jira インストール ガイド」 に従って Jira をインストール、設定します。なお、Jira を IIS と同一のマシーンにインストールすることができますが、このことは必須ではありません。
  2. 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" に変更します。

  3. コンテキストパス修正後、Jira を再起動します。 コンテキストパスを含むように
  4. 'Base URL' を設定します (Configuring Jira Options をご覧ください)。
  5. Jira の GZip compression オプションをオフに設定します (プロキシが導入済みの場合は GZip 圧縮の利点がないため)。
  6. ウェブブラウザーにおいて 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 をご覧ください。

  1. 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 が実行されているマシンでこのポート番号を使用中の場合、別のポートを指定する必要があります。

  2. Tomcat を再起動し、使用したポートに関連するエラーがログにもコンソールの表示にも現れないことを確認してください。
  3. AJP Connector が指定したポート (デフォルトでは 8009) でリッスンしていることを確認します。これを行う方法の 1 つとして、コマンド ウィンドウで "netstat -na" コマンドを使用して、ポート 8009 が出力の一覧に表示されるかどうかを確認できます:

3. Jira にリクエストを送るための IIS の設定

IIS がデプロイされているマシーンにおいて、次の手順を実行します :

  1. Apache のサイトから ISAPI Redirect DLL をダウンロードします。ダウンロードの際には、IIS が実行されている Windows のバージョン (Win32 または Win64) を選択し、次に利用可能な jk の中の最新バージョンを選択します

    ダウンロードするファイルの名称は isapi_redirect_X.X.X.dll となっており、ここで 'X.X.X' はバージョン番号です。このバージョン番号は DLL ファイル名から除去する必要があります (即ち、ファイル名を isapi_redirect.dll としなければなりません)。

  2. DLL および関連プロパティ ファイルをインストール ディレクトリに配置します。本ドキュメントでは、このディレクトリを C:\tomcat_iis_connector とします。このディレクトリに isapi_redirect.dll を配置します。次に、isapi_redirect.properties ファイルをダウンロードし、isapi_redirect.dllファイルと同じディレクトリに配置します。
  3. "conf" という名前のディレクトリをインストール ディレクトリ (C:\tomcat_iis_connector\conf) に作成します。uriworkermap.properties と workers.properties.minimal  ファイルをダウンロードし、C:\tomcat_iis_connector\conf ディレクトリに配置します。
  4. "logs" という名前のディレクトリを作成します (C:\tomcat_iis_connector\logs)。このディレクトリに、isapi_redirect.dllの実行に伴うログが保存されます。
  5. "C:\tomcat_iis_connector" ディレクトリでは isapi_redirect.properties ファイルを変更する必要がある場合があります。この isapi_redirect.properties ファイルはコネクターに対し、その設定ファイルの保存場所の情報と IIS サーバーに関係する DLL の保存場所の情報を伝えます。このファイルには次の 5 つのプロパティが記述されています。
    1. extension_uri — isapi_redirect.dll が保存されている仮想ディレクトリのパスです
    2. log_file — ログファイルに書き込みを行うときのパスです
    3. log_level — ログを生成する際のログレベルです
    4. worker_file — 現在のインストレーションにおける workers.properties.minimal ファイルのパス
    5. worker_mount_file — 現在のインストレーションにおける uriworkermap.propertiesl ファイルのパス
      コネクターを C:\tomcat_iis_connector にインストールし、isapi_redirect.dllの仮想ディレクトリを以降の説明に従ってセットアップしている場合、このファイルのプロパティ情報を書き換える必要はありません。
  6. "C:\tomcat_iis_connector\conf" ディレクトリでは uriworkermap.properties および workers.properties.minimal ファイルを変更する必要がある場合があります。

    これらのファイルは、ここで説明した設定変更内容を記録しており、このドキュメントに従って最後まで作業した場合はそのままで正しく動作します。このドキュメントとは異なる作業を行った場合、以下の手順でこれらのファイルを書き換える必要が生じます。

    workers.properties.minimal ファイルは、Tomcat が実行されている場所 (IP アドレスとポート番号) を IIS に伝えます。uriworkermap.properties ファイルは、IIS に対し、どのリクエストを Tomcat に対してプロキシするかを伝えます。
    これらのファイルは以下の手順で編集します。

    1. uriworkermap.properties を編集し、Jira への次のようなマッピングが含まれていることを確認します。これ以外のマッピングは不要です。

      /jira/*=worker1             

      ここでのマッピング (例: /jira/) は、このドキュメントの「Jira の設定」セクションで説明したとおり、Tomcat で Jira がデプロイされているコンテキスト パスと同一である必要があります

    2. workers.properties.minimal ファイルを編集し、必要に応じて worker.ajp13w.host プロパティを修正します。このプロパティは、Tomcat (および Jira) が実行されているマシンのホスト名または IP アドレスに設定する必要があります。IIS と同一のマシン上で Tomcat を実行している場合、このプロパティを localhost のままにします。このプロパティの値としてホスト名を指定した場合は、IIS を実行しているマシンがそれを IP アドレスに適切に変換できることを確認します。
    3. 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
      
  7. Control Panel、続いて Administrative Tools を開き、さらに Internet Information Services. を開きます。
  8. IIS 7.0 の場合のみ : IIS 7.0 を使用している場合は、次の手順で必要なサービスロールである ISAPI Extensions および ISAPI Filtersをインストールしなければなりません :
    1. Start Menu > All Programs > Administration Tools > Service Manager と移動します。
    2. Server Manager > Roles から 'Web Server (IIS)' を選択します。
    3. 'Add Role Services' をクリックし、以降はウィザードに従って操作します。
  9. 以下の手順で IIS に ISAPI Filter を追加します :
    • IIS 6.0 以前の場合 :
      1. Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、Properties をクリックします。
      2. ISAPI Filters タブをクリックします。
      3. isapi_redirect.dll ファイルをポイントするフィルターが存在すること、およびそれが適切な場所にあることを確認します。存在しない場合は、[Add] をクリックしてそれを作成します。フィルター名として「tomcat」と入力し、実行ファイルとして isapi_redirect.dll の場所を指定します。
      4. Apply、続いて OK をクリックします。
    • IIS 7.0 の場合 :
      1. Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、ISAPI Filters をクリックします。
      2. ISAPI Filters のアイコンをクリックします。
      3. isapi_redirect.dll ファイルをポイントするフィルターが存在すること、およびそれが適切な場所にあることを確認します。存在しない場合は、[Add] をクリックしてそれを作成します。フィルター名として「tomcat」と入力し、isapi_redirect.dll ファイルの場所を入力します。
      4. [OK] をクリックします。
  10. IIS における Jira の仮想ディレクトリを作成します。
    1. Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、New を選択、続いて Virtual Directory を選択します。
    2. 作成ウィザードに従って操作します。alias の値として、このドキュメントの「Jira の設定」セクション (前述) で設定したコンテキスト パス (スラッシュを除いたもの) を指定します。本ドキュメントの例では jira です。
    3. この仮想ディレクトリは任意のディレクトリをポイントすることが可能です。
    4. ウィザードを完了します。

      仮想ディレクトリを作成する理由は、URL の末尾にスラッシュのないリクエストを受け取った時にも正しく動作させることにあります。例えば、Jira を http://www.example.com/jira/ 配下にデプロイしていて、仮想ディレクトリを持たない場合、http://www.example.com/jira へのリクエストは正しく処理されません。

  11. 次の手順に従って、IIS 内の isapi_redirect.dll にアクセスするための仮想ディレクトリを作成します :
    • IIS 6.0 以前の場合 :
      1. Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、New を選択、続いて Virtual Directory を選択します。
      2. 作成ウィザードに従って操作します。aliasjakarta に設定します。
      3. これは isapi_redirect.dll がインストールされているディレクトリをポイントしている必要があります。本ドキュメントの例では C:\tomcat_iis_connector です。
      4. 'Execute' チェックボックスにチェックが入っていて Virtual Directory に対して 'Execute' パーミッションが付与されていることを確認してからウィザードを完了します。
    • IIS 7.0 の場合 :
      1. Default Web Site (または Jira へのリクエストに対してプロキシの役割を持たせるウェブサイト) 上で右クリックし、Add Virtual Directory を選択します。
      2. aliasjakarta に設定します。
      3. Physical Pathisapi_redirect.dll がインストールされているディレクトリをポイントしている必要があります。本ドキュメントの例では C:\tomcat_iis_connector です。
      4. 'jakarta' 仮想ディレクトリをクリックし、'Handler Mappings' をダブルクリックします。
      5. 右側の Action パネルにある 'Edit Feature Permissions' をクリックします。
      6. 'Execute' パーミッションチェックボックスにチェックを入れます。

        この仮想ディレクトリはコネクターを動作させるために必要です。ディレクトリに設定したエイリアスは、isapi_redirect.properties ファイルの extension_uri プロパティに記述されているパスと同一である必要があります。本ドキュメントの例では /jakarta/isapi_redirect.dll です。

  12. IIS 6.0 または 7.0 を利用している場合、以下の手順に従って Web Service Extension として DLL を追加する必要があります。
    • IIS 6.0 の場合 :
      1. Web Service Extensions 上で右クリックし、Add a new Web Service Extension... を選択します。
      2. [Extension Name] に「tomcat」と入力し、必要な指定ファイルに isapi_redirect.dll ファイルを追加します。
      3. 拡張状況を許可に設定チェックボックスを選択して、OK ボタンをクリックします。
    • IIS 7.0 の場合 :
      1. サーバー群の中から該当のサーバーをハイライトします。
      2. 'ISAPI and CGI Restrictions' に移動します。
      3. isapi_redirect.dll 拡張を追加し、有効化します。
  13. ここで IIS Service を再起動する必要があります。これを行うには、Control Panel を開き、Administrative Tools をクリックし、さらに Services をクリックし、IIS Admin Service を探して restart をクリックします。
  14. 以上で完了です。設定のテストを行うには、ウェブ ブラウザで IIS にアクセスし、URL に Jira のコンテキスト パスを追記します。例えば、ウェブサイトが http://www.example.com のアドレスで実行されていて、Jira をデプロイしたコンテキスト パスが jira である場合、ブラウザで http://www.example.com/jira をポイントします。

トラブルシューティング

  • ブラウザーで Jira にアクセスするたびにログイン パネルが表示されます。正しいユーザー名とパスワードを入力してもパネルが表示されます。IIS の jira  仮想ディレクトリに匿名アクセスが設定されていることを確認します。上述の手順に従って操作した場合、この設定が有効化されています。これは次の手順で確認することができます。
    1. "Internet Information Services" 内の jira 仮想ディレクトリを右クリックし、[プロパティ] を選択します。
    2. 'Directory Security' タブをクリックします。
    3. 'Anonymous access and authentication control' セクションの 'Edit...' ボタンをクリックします。
    4. 'Anonymous access' のチェックボックスがチェックされていることを確認し、さらに 'Authenticated access' セクションのその他の項目が有効になっていないことを確認します。'Basic authentication'. を選択してはいけません。また、'Integrated Windows authentication' を選択してもいけません。
  • Internet Explorer を使用して Jira にアクセスするたびにログインパネルが現れます。正しいユーザー名とパスワードを入力するのですが、それでもパネルが必ず現れます。ただし、 Firefox や Safari なと、別のブラウザーを使用するとこの現象は起きません。これらのブラウザーを使用した場合、Jira に正常にログインすることができます。Internet Explorer の ユーザー認証匿名でログオンするに設定されていることを確認してください。これは次の手順で確認することができます :
    1. Internet Explorer の 「ツール」メニューをクリックし、「インターネットオプション」を選択します。
    2. 「セキュリティ」タブをクリックします。
    3. Jira サーバーが該当するセキュリティゾーンを選択します。
    4. 「レベルのカスタマイス...」ボタンをクリックします。
    5. 右側のバーをスクロールして一番下の「ユーザー認証」セクションを表示します。
    6. 「匿名でログオンする」を選択します (選択されていない場合)。
    7. この画面と次の画面の 'OK' ボタンをクリックします。
    8. 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 拡張を設定する必要があります。
Last modified on Mar 4, 2020

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.