LoginSignup
15
12

More than 1 year has passed since last update.

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

Last updated at Posted at 2019-12-16

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

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

この記事は LINE WORKS API 1.0 に沿った記載です。API 1.0 は 2023 年 4 月 30 日にリタイア予定です。API 2.0 に準じた記事を以下で掲載しています。
https://qiita.com/iwaohig/items/ba41a43a5fc46ba07051

サーバー API のトークン

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

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

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

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

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

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

https://jwt.io/
image.png

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

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

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

PAYLOAD

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

image.png

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

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

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

VERIFY SIGNATURE

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

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

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

トークンの発行

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

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

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

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

15
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
12