第14章 Jira への接続

インテグレーションでは、Jira サーバーに接続して課題を取得、作成、および更新できます。Jira はソフトウェア開発プロジェクトを計画、追跡、および管理するためのツールです。各 Jira 環境では、ワークフローをカスタマイズでき、これはインテグレーションで Jira に接続するための詳細に影響します。Jira 管理者に相談して詳細を明確にしてください。

Jira サーバーへ接続するインテグレーションを作成するための情報および手順は、以下を参照してください。

14.1. OAuth を使用する Jira サーバーで Fuse Online を登録

インテグレーションは、アクセスの認証に OAuth プロトコルを使用する Jira サーバーに接続できます。これを有効にするには、Fuse Online 環境を Jira クライアントアプリケーションとして登録します。Jira クライアントアプリケーションは、Jira コンシューマーとも呼ばれます。つまり、Fuse Online 環境は Jira コンシューマーになります。

注記

Jira サーバーが Basic 認証のみを使用する場合、登録は必要ありません。

ここで説明する手順にしたがって、Jira への Fuse Online コネクションを作成するために必要な Jira OAuth クレデンシャルを取得します。サンプルサーバーで手順を説明するチュートリアルなど、Jira コンシューマーの登録に関する詳細は、Jira ドキュメントの OAuth for REST APIs を参照してください。

Jira サーバーで Fuse Onoine を登録した後、Fuse Online を使用してその Jira サーバーへのコネクションを作成します。任意の数のインテグレーションが同じ Jira コネクションを使用できます。しかし、別の Jira コネクションを作成する場合は、ここで説明する登録手順を再度行い、別の OAuth クレデンシャルのセットを取得する必要があります。

主なステップの概要

登録手順の主なステップは次のとおりです。

  • OAuth クレデンシャルの取得を可能にする Atlassian コマンドラインアプリケーションを取得します。
  • ダウンロードしたアプリケーションを実行して config.properties ファイルを作成します。
  • Fuse Online が Jira サーバーへのアクセスに使用する公開鍵と秘密鍵のペアを作成します。
  • config.properties ファイルを編集し、値の一部を更新します。
  • Jira サーバーを設定し、Fuse Online 環境がコンシューマーアプリケーションとして認識されるようにします。
  • Fuse Online が Jira サーバーでデータにアクセスするために必要な Jira アクセストークンを取得します。

これらの各ステップには複数のサブステップが含まれ、以下の手順で詳細を提供します。

前提条件

  • Jira サーバー管理者権限が必要です。
  • コマンドラインインターフェイスの使い方を知っている必要があります。

手順

  1. OAuth クレデンシャルの取得を可能にする Atlassian コマンドラインアプリケーションを取得します。

    1. atlassian-oauth-examples ページに移動します
    2. 左側のパネルの下にある Downloads をクリックします。
    3. Downloads ページの Download repository をクリックします。
    4. 任意のディレクトリーでファイルを展開します。
  2. ダウンロードしたアプリケーションを実行して OAuth クレデンシャルの config.properties ファイルを作成します。

    1. ターミナルで、展開した内容が含まれるディレクトリーに移動します。
    2. java ディレクトリーに移動し、クライアントをビルドします。

      cd atlassianlabs-atlassian-oauth-examples-dd0264cad043/java
      mvn clean compile assembly:single
    3. target ディレクトリーに移動し、config.properties ファイルを生成します。

      cd target
      java -jar OAuthTutorialClient-1.0.jar requestToken

    コネクション例外は無視しても構いません。target ディレクトリーに、一時キーの一部が含まれる config.properties ファイルが作成されます。

  3. Fuse Online が Jira サーバーをアクセスするのに必要な公開鍵と秘密鍵のペアを生成します。これらのコマンドを実行する場所は自由ですが、便宜上の理由で最初に特定のディレクトリーを指示されます。

    1. ダウンロードしたアプリケーションが含まれるディレクトリーに移動します。
    2. 秘密鍵を生成します。

      openssl genrsa -out jira_privatekey.pem 1024
    3. 公開鍵を取得します。

      openssl req -newkey rsa:1024 -x509 -key jira_privatekey.pem -out jira_publickey.cer -days 365

      このコマンドでは、Fuse Online 環境に関する情報を入力するよう要求されます。プロンプトの応答を省略するには、このコマンドに -subj オプションを追加します。たとえば、上記のコマンドラインの最後に、以下を追加します。

      -subj "/C=US/ST=New York/L=New York/O=MyCompany Ltd./OU=IT/CN=mysubdomain.mydomain.com"
    4. 鍵をエクスポートします。

      openssl pkcs8 -topk8 -nocrypt -in jira_privatekey.pem -out jira_privatekey.pcks8
      openssl x509 -pubkey -noout -in jira_publickey.cer  > jira_publickey.pem

      4 つのファイルが存在します。

      jira_privatekey.pcks8
      jira_privatekey.pem
      jira_publickey.cer
      jira_publickey.pem

    5. ヘッダー、改行、およびフッターなしで秘密鍵を取得します。

      cat jira_privatekey.pcks8 | grep -v 'PRIVATE'|awk '{print}' ORS=''
    6. 秘密鍵をクリップボードにコピーします。
  4. config.properties ファイルを編集します。

    1. config.properties ファイルが含まれる java/target ディレクトリーに移動し、ファイルを開いて編集します。
    2. config.properties ファイルの秘密鍵を、クリップボードにコピーした秘密鍵に置き換えます。
    3. jira_home の設定を Jira サーバーの URL に変更します。Jira サーバーが https を使用する場合は必ず https を指定してください。また、コロンをエスケープ処理する必要があります。以下に例を示します。

      jira_home=https\://issues.mycompany.org
    4. consumer_key 設定を Fuse Online App に変更します。以下に例を示します。

      consumer_key=Fuse Online App
    5. config.properties ファイルを保存して、閉じます。
  5. Jira サーバーを設定し、Fuse Online 環境がコンシューマーアプリケーションとして認識されるようにします。管理ユーザーとして Jira サーバーにログインする必要があります。

    1. Settings ( cog ) > Products > Application links と選択します。
    2. Create new link 入力フィールドに URL を入力します。たとえば、https://example.com を入力します。

      これにより、受信された応答がないことを示すダイアログが表示されます。1 方向通信のみが必要であるため、問題はありません。

    3. Continue をクリックすると Link applications ダイアログが表示されます。このダイアログで以下を行います。

      1. Consumer Key フィールドに Fuse Online App を入力します。
      2. その下で Create incoming link を選択します。
      3. 他のフィールドにはそれぞれ任意の値を入力します。すべてのフィールドに値が必要です。応答は必要ないため、何を入力しても構いません。
      4. Continue をクリックすると、別のダイアログが表示されます。
      5. Consumer Key フィールドに Fuse Online App を入力します。
      6. Consumer Name フィールドに Fuse Online App を入力します。
      7. Public Key フィールドに jira_publickey.pem ファイルの公開鍵を貼り付けます。ヘッダーとフッターのない鍵のみを貼り付けるようにしてください。コピーするために鍵を表示するには、jira_publickey.pem ファイルが含まれるディレクトリーで cat jira_publickey.pem を実行します。
      8. Continue をクリックします。
  6. Fuse Online が Jira サーバーでデータにアクセスするために必要な Jira アクセストークンを取得します。この手順の最初にリンクした Jira OAuth ドキュメントでは、このステップは The Oauth dance と呼ばれます。これは、Fuse Online、Jira サーバー、および Jira 管理者の間でやり取りがあるためです。

    1. この手順の最初のステップでダウンロードしたコマンドラインアプリケーションが含まれるディレクトリーで、java/target ディレクトリーに移動します。
    2. Jira サーバーからリクエストトークンを取得します。

      java -jar OAuthTutorialClient-1.0.jar requestToken

      以下のような出力が表示されます。

      Token:          ec3dj4byySM5ek3XW7gl7f4oc99obAlo
      Token Secret:   OhONj0eF7zhXAMKZLbD2Rd3x7Dmxjy0d
      Retrieved request token. go to https://jira101.atlassian.net/plugins/servlet/oauth/authorize?oauth_token=ec3dj4byySM5ek3XW7gl7f4oc99obAlo to authorize it
    3. ブラウザーの別のタブで、この出力にある URL に移動します。Jira のウェルカムページが表示され、Fuse Online App へのアクセスを許可するよう要求されます。
    4. Allow をクリックすると、確認コードのある Access Approved ページが表示されます。
    5. 確認コードをクリックボードにコピーします。簡単に使える場所に貼り付けます。
    6. 以下のようなコマンドを実行し、アクセストークンを取得します。以下のコマンドラインの例では、最後の値が確認コードになります。例の確認コードを前のステップでコピーした確認コードに置き換えてからコマンドを実行します。以下に例を示します。

      java -jar OAuthTutorialClient-1.0.jar accessToken qTJkPi

      このコマンドは、Fuse Online が Jira サーバーにアクセスするのに必要なアクセストークンを出力します。

結果

Jira コマンドラインアプリケーションは config.properties ファイルを更新し、Fuse Online の Jira コネクションの設定に必要なすべての値が含まれるようにします。

次のステップ

Jira コネクションを作成します。