# チャネルアクセストークン
チャネルアクセストークンは、チャネルを使用しようとするアプリケーションが、チャネルを使用する権限を持っているかどうかを確認する際に用いる文字列です。チャネルアクセストークンを用いることで、Messaging APIといったLINEプラットフォームが提供する機能を利用できるようになります。
このページでは、チャネルアクセストークンの概要や種類といった基本的なことを学びます。このページを読むことで、LINEプラットフォームの機能を用いた開発がよりスムーズにできるようになります。
# チャネルとは
まず、チャネルについて簡単に説明します。チャネルとは、LINEプラットフォームが提供する機能を利用するための通信路のことをいいます。例えば、以下のようなチャネルがあります。
- Messaging APIチャネル
- LINEログインチャネル
- LINEミニアプリチャネル
チャネルアクセストークンは、例えばアプリケーションがMessaging APIチャネルを使用するときに、チャネルを使用する権限を持っているかどうかを確認する際に用います。
# なぜチャネルアクセストークンを用いるのか
そもそも、なぜチャネルアクセストークンを用いるのでしょうか。あるシステムにおいて、使用者が権限を持っているかどうかを確認するのによく用いられる方法として、IDとパスワードによる確認があります。IDとパスワードによる方法の場合、アプリケーションは、チャネルを使用する際にIDとパスワードを入力することになります。
ただ、一般的にはサービスの提供を通して何度もチャネルを使用することになります。アプリケーションがチャネルを使用するたびに、チャネルの利用者がIDとパスワードを入力するのは現実的ではないため、代わりにチャネルアクセストークンを用います。チャネルアクセストークンを用いることで、チャネルの使用者はIDとパスワードを入力することなく、チャネルを使用できるようになります。
チャネルアクセストークンは、チャネルを使用する権限があるかどうかを確認する際に用いられます。つまり、チャネルアクセストークンが漏洩すると、意図しない第三者にチャネルを使用される可能性があります。このため、チャネルアクセストークンが漏洩した疑いがある場合は取り消してください。詳しくは、「漏洩が疑われるチャネルアクセストークンは取り消してください」を参照してください。
# チャネルアクセストークンの種類
チャネルアクセストークンの種類は、以下の4つです。これらのチャネルアクセストークンは、有効期間やチャネルごとに発行できる数などが異なります。
種類 | 有効期間 | チャネルごとに発行できる数 |
---|---|---|
任意の有効期間を指定できるチャネルアクセストークン | 最大30日 | 30 |
ステートレスチャネルアクセストークン | 15分 | 無制限 |
短期のチャネルアクセストークン | 30日 | 30 |
長期のチャネルアクセストークン | 無期限 | 1 |
チャネルアクセストークンの発行数は、チャネルアクセストークンの種類ごとにカウントされます。そのため、任意の有効期間を指定できるチャネルアクセストークンを30件発行しても、短期のチャネルアクセストークンを30件発行できます。なお、有効期限が切れたチャネルアクセストークンは、発行数としてカウントされません。
チャネルアクセストークンの有効期間内は、同じチャネルアクセストークンを繰り返し使用できます。詳しくは、「有効期間内は繰り返し使用できます」を参照してください。
また、各プロダクトや機能によって、使用できるチャネルアクセストークンの種類が異なります。例えば、長期のチャネルアクセストークンは、Messaging APIチャネルでのみ利用できます。各プロダクトでどのチャネルアクセストークンが使えるかは、各プロダクトのドキュメントを参照してください。
次に、それぞれのチャネルアクセストークンについて説明します。
# 任意の有効期間を指定できるチャネルアクセストークン(チャネルアクセストークンv2.1)
チャネルアクセストークンv2.1は、有効期間を最大30日間として開発者が任意に指定できます。また、チャネルアクセストークンの生成にJSON Web Token(JWT)を用いることで、セキュリティを強化することができます。
チャネルアクセストークンv2.1は、チャネルごとに30件まで発行できます。発行できる数を超えて発行しようとした場合は、発行のリクエストが拒否されます。チャネルアクセストークンv2.1について詳しくは、『Messaging APIドキュメント』の「チャネルアクセストークンv2.1を発行する」を参照してください。
# ステートレスチャネルアクセストークン
ステートレスチャネルアクセストークンは、15分間だけ有効なチャネルアクセストークンです。発行できる数に制限はありません。ステートレスチャネルアクセストークンを発行すると、取り消すことはできません。
ステートレスアクセストークンを発行する方法について詳しくは、『Messaging APIリファレンス』の「ステートレスチャネルアクセストークンを発行する」を参照してください。
# 短期のチャネルアクセストークン
短期のチャネルアクセストークンは、30日間有効なチャネルアクセストークンです。チャネルごとに30件まで発行できます。発行できる数を超えて発行した場合は、最も古いチャネルアクセストークンが取り消されます。
短期のチャネルアクセストークンを発行する方法について詳しくは、『Messaging APIリファレンス』の「短期のチャネルアクセストークンを発行する」を参照してください。
# 長期のチャネルアクセストークン
長期のチャネルアクセストークンは、有効期限がないチャネルアクセストークンです。Messaging APIチャネルでのみ発行できます。LINE DevelopersコンソールのMessaging APIチャネルにある[Messaging API設定]タブより、いつでも発行できます。なお、トークンはいつでも取り消すことができます。
長期のチャネルアクセストークンを再発行すると、現在有効な長期のチャネルアクセストークンは無効になります。再発行時に、現在有効な長期のチャネルアクセストークンの有効期間を、最大24時間まで延長することもできます。
# チャネルアクセストークンの運用例
チャネルアクセストークンは、開発チームや利用者のグループごとに発行することを想定しています。例えば開発チームAと開発チームBで、それぞれ別のチャネルアクセストークンを発行します。これにより、開発チームAのチャネルアクセストークンが漏洩した疑いがあるとき、あるいは開発チームAの都合でチャネルアクセストークンを再発行する必要が出たときでも、開発チームBに影響を及ぼしません。
また、以下の図のように開発チームや利用者のグループごとに最大2つのチャネルアクセストークンを発行することで、サービスを途切れさせることなく提供することができます。
# 確認事項
チャネルアクセストークンを使用するにあたって、以下の点を確認してください。
# 有効期間内は繰り返し使用できます
チャネルアクセストークンは、有効期間内であれば同じものを繰り返し使用できます。このことをふまえて、チャネルアクセストークンv2.1と短期のチャネルアクセストークンについては、チャネルを使用するたびにチャネルアクセストークンを再発行しないでください。短時間に大量のチャネルアクセストークンを発行し、LINEプラットフォームの動作に影響を与えると判断された場合、発行を一時的に制限する場合があります。なお、ステートレスチャネルアクセストークンについては、チャネルを使用するたびに発行することを想定して設計されています。
また、有効期間が過ぎたチャネルアクセストークンを使用すると、チャネルの権限の確認に失敗するため、チャネルを使用できなくなります。有効期間が過ぎる前に、自動的に新しいチャネルアクセストークンを発行するシステムを構築することを推奨します。
# 漏洩が疑われるチャネルアクセストークンは取り消してください
チャネルアクセストークンは、チャネルの権限を確認する際に用いられます。つまり、チャネルアクセストークンが漏洩すると、意図しない第三者にチャネルを使用される可能性があります。
例えばMessaging APIの場合、ブロードキャストメッセージという「LINE公式アカウントと友だちになっているすべてのユーザーに、同じメッセージを送る機能」があります。チャネルアクセストークンが漏洩すると、第三者がブロードキャストメッセージを送信でき、結果として悪意のあるメッセージがすべての友だちに送信されてしまいます。
このため、取り消しが可能な種類のチャネルアクセストークンが漏洩した疑いがある場合は取り消してください。チャネルアクセストークンの取り消しについて詳しくは、以下のリファレンスを参照してください。