第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 サーバー管理者権限が必要です。
- コマンドラインインターフェイスの使い方を知っている必要があります。
手順
OAuth クレデンシャルの取得を可能にする Atlassian コマンドラインアプリケーションを取得します。
-
atlassian-oauth-examples
ページに移動します。 - 左側のパネルの下にある Downloads をクリックします。
- Downloads ページの Download repository をクリックします。
- 任意のディレクトリーでファイルを展開します。
-
ダウンロードしたアプリケーションを実行して OAuth クレデンシャルの
config.properties
ファイルを作成します。- ターミナルで、展開した内容が含まれるディレクトリーに移動します。
java
ディレクトリーに移動し、クライアントをビルドします。cd atlassianlabs-atlassian-oauth-examples-dd0264cad043/java mvn clean compile assembly:single
target
ディレクトリーに移動し、config.properties
ファイルを生成します。cd target java -jar OAuthTutorialClient-1.0.jar requestToken
コネクション例外は無視しても構いません。
target
ディレクトリーに、一時キーの一部が含まれるconfig.properties
ファイルが作成されます。Fuse Online が Jira サーバーをアクセスするのに必要な公開鍵と秘密鍵のペアを生成します。これらのコマンドを実行する場所は自由ですが、便宜上の理由で最初に特定のディレクトリーを指示されます。
- ダウンロードしたアプリケーションが含まれるディレクトリーに移動します。
秘密鍵を生成します。
openssl genrsa -out jira_privatekey.pem 1024
公開鍵を取得します。
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"
鍵をエクスポートします。
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
ヘッダー、改行、およびフッターなしで秘密鍵を取得します。
cat jira_privatekey.pcks8 | grep -v 'PRIVATE'|awk '{print}' ORS=''
- 秘密鍵をクリップボードにコピーします。
config.properties
ファイルを編集します。-
config.properties
ファイルが含まれるjava/target
ディレクトリーに移動し、ファイルを開いて編集します。 -
config.properties
ファイルの秘密鍵を、クリップボードにコピーした秘密鍵に置き換えます。 jira_home
の設定を Jira サーバーの URL に変更します。Jira サーバーがhttps
を使用する場合は必ずhttps
を指定してください。また、コロンをエスケープ処理する必要があります。以下に例を示します。jira_home=https\://issues.mycompany.org
consumer_key
設定をFuse Online App
に変更します。以下に例を示します。consumer_key=Fuse Online App
-
config.properties
ファイルを保存して、閉じます。
-
Jira サーバーを設定し、Fuse Online 環境がコンシューマーアプリケーションとして認識されるようにします。管理ユーザーとして Jira サーバーにログインする必要があります。
- Settings ( ) > Products > Application links と選択します。
Create new link 入力フィールドに URL を入力します。たとえば、
https://example.com
を入力します。これにより、受信された応答がないことを示すダイアログが表示されます。1 方向通信のみが必要であるため、問題はありません。
Continue をクリックすると Link applications ダイアログが表示されます。このダイアログで以下を行います。
-
Consumer Key フィールドに
Fuse Online App
を入力します。 - その下で Create incoming link を選択します。
- 他のフィールドにはそれぞれ任意の値を入力します。すべてのフィールドに値が必要です。応答は必要ないため、何を入力しても構いません。
- Continue をクリックすると、別のダイアログが表示されます。
-
Consumer Key フィールドに
Fuse Online App
を入力します。 -
Consumer Name フィールドに
Fuse Online App
を入力します。 -
Public Key フィールドに
jira_publickey.pem
ファイルの公開鍵を貼り付けます。ヘッダーとフッターのない鍵のみを貼り付けるようにしてください。コピーするために鍵を表示するには、jira_publickey.pem
ファイルが含まれるディレクトリーでcat jira_publickey.pem
を実行します。 - Continue をクリックします。
-
Consumer Key フィールドに
Fuse Online が Jira サーバーでデータにアクセスするために必要な Jira アクセストークンを取得します。この手順の最初にリンクした Jira OAuth ドキュメントでは、このステップは The Oauth dance と呼ばれます。これは、Fuse Online、Jira サーバー、および Jira 管理者の間でやり取りがあるためです。
-
この手順の最初のステップでダウンロードしたコマンドラインアプリケーションが含まれるディレクトリーで、
java/target
ディレクトリーに移動します。 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
- ブラウザーの別のタブで、この出力にある URL に移動します。Jira のウェルカムページが表示され、Fuse Online App へのアクセスを許可するよう要求されます。
- Allow をクリックすると、確認コードのある Access Approved ページが表示されます。
- 確認コードをクリックボードにコピーします。簡単に使える場所に貼り付けます。
以下のようなコマンドを実行し、アクセストークンを取得します。以下のコマンドラインの例では、最後の値が確認コードになります。例の確認コードを前のステップでコピーした確認コードに置き換えてからコマンドを実行します。以下に例を示します。
java -jar OAuthTutorialClient-1.0.jar accessToken qTJkPi
このコマンドは、Fuse Online が Jira サーバーにアクセスするのに必要なアクセストークンを出力します。
-
この手順の最初のステップでダウンロードしたコマンドラインアプリケーションが含まれるディレクトリーで、
結果
Jira コマンドラインアプリケーションは config.properties
ファイルを更新し、Fuse Online の Jira コネクションの設定に必要なすべての値が含まれるようにします。
次のステップ
Jira コネクションを作成します。