LINE WORKS のトークン取得時に必要な JWT をサクっと生成してみた


LINE WORKS の API を試そうと思ったのに、JWT 生成で悩んでしまったという時、この記事を読んでみてください。

取り急ぎ、Web サービスで JWT を生成して、トークンを発行する方法を説明します。運用環境での JWT 生成やトークン発行および管理については、様々な考慮が必要だと思いますので、とりあえずテスト目的での利用を想定した記事です。ご理解くださいませ。

サーバー API のトークン

LINE WORKS の API のうち、トーク Bot API などの実行にはサーバー API のトークンが必要です。

トークンの発行方法は 2 種類あるのですが、サーバー ID を用いたトークンの発行は、やや面倒です。

JWT (JSON Web Token) 生成ってなんじゃい、、みたいな。

JWT.IO という素敵なサービス

JWT.IO というサービスで、Web ページにパラメータをコピペすることで、サーバー トークン生成に必要な JWT を生成できます。

JWT.IO にアクセスします。

https://jwt.io/

ページ下方にスクロールします。

ALGORITHM のプルダウンで "RS256" を選択

Decoded の PAYLOAD と VERIFY SIGNATURE を書き換えていきます。

PAYLOAD

{
  "iss":"46c4f281f81148c9b846c59262ae5888", <- サーバー ID
  "iat":1492504672, <- JWT 生成日時
  "exp":1492506472  <- JWT 満了日時
}

サーバー ID は Developer Console の "Server List(ID登録タイプ)" で生成された "ID" を用います。

JWT の生成日時と満了日時の間にトークンのリクエストを行う必要があります。UNIX 時間で記述します。最長 60 分有効となるよう指定できます。

UNIX 時間の変換はこのあたりの Web サイトを使いましょう。

VERIFY SIGNATURE

Developer Console の "Server List(ID登録タイプ)" で生成された "認証キー" をダウンロードします。

ダウンロードしたファイルの内容を -----BEGIN RSA PRIVATE KEY----- の方の入力欄に貼り付けます。

ここまでの作業を行うと、左側の Encoded の欄に、JWT が生成されています。

トークンの発行

生成された JWT を使って、LINE WORKS 認証サーバーへの Token リクエストを行います。

こちらのページの下方、[3. LINE WORKS 認証サーバーへの Token リクエスト - RFC-7523] の記載に沿って実行します。
https://developers.worksmobile.com/jp/document/13?lang=ja

Postman での実行例のスクリーンショットは以下です。

正しくリクエストが実行されると Token の値を含むレスポンスが返ります。