アクセストークン(アクセストークン)とは | 意味や読み方など丁寧でわかりやすい用語解説
アクセストークン(アクセストークン)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
アクセストークン (アクセストークン)
英語表記
access token (アクセス トークン)
用語解説
アクセストークンとは、特定のサービスやリソースへのアクセス権限を持つことを証明するための、一時的な資格情報である。一般的には、サーバーによって発行されるランダムな文字列で構成される。Webサービスやアプリケーションにおいて、ユーザー認証後のAPIへのアクセス制御など、認可の仕組みを実現するために重要な役割を担う。従来のように、利用者がIDとパスワードを毎回のリクエストで送信する方法は、通信経路上で盗聴された場合に認証情報が漏洩するリスクが高い。アクセストークンを利用することで、利用者のパスワードのような機密情報を直接やり取りすることなく、安全にリソースへのアクセスを許可する仕組みを構築できる。クライアントアプリケーションは、一度認証を済ませてアクセストークンを取得すれば、その有効期間内はトークンを提示するだけで、保護されたリソースにアクセスできるようになる。
アクセストークンの役割を深く理解するためには、まず「認証」と「認可」の違いを明確にする必要がある。認証(Authentication)とは、利用者が本人であることを確認するプロセスであり、一般的にはIDとパスワードの組み合わせによって行われる。一方、認可(Authorization)とは、認証された利用者に対して、どのリソースへのアクセスや操作を許可するかを決定し、その権限を付与するプロセスである。アクセストークンは、この「認可」のプロセスで中心的な役割を果たす。つまり、トークンは「誰であるか」を証明するものではなく、「何をする権限があるか」を証明する許可証として機能する。
アクセストークンが広く利用される背景には、認可フレームワークであるOAuth 2.0の普及がある。OAuth 2.0は、あるサービス(クライアント)が、ユーザーの同意を得た上で、別のサービス(リソースサーバー)が保持するユーザーデータへアクセスするための標準的なプロトコルである。例えば、ある写真編集アプリが、ユーザーのGoogleフォトに保存されている写真にアクセスしたい場合を考える。このとき、ユーザーは写真編集アプリにGoogleアカウントのパスワードを教える必要はない。代わりにOAuth 2.0のフローに従い、Googleの認可サーバーから写真編集アプリに対して、Googleフォトへのアクセス権限を証明するアクセストークンが発行される。アプリはこのトークンをHTTPリクエストのヘッダーに含めてGoogleフォトのAPIにアクセスし、写真を取得する。
アクセストークンはいくつかの重要な特徴を持つ。第一に、有効期限が設定されている点である。セキュリティ上の観点から、アクセストークンは比較的短い有効期間を持つのが一般的である。万が一トークンが漏洩しても、有効期限が切れれば不正利用されるリスクを限定できる。第二に、スコープという概念があることだ。スコープは、アクセストークンによって許可される操作の範囲を定義する。先の例で言えば、「写真の読み取り専用」や「写真の読み取りと削除」といったように、クライアントに必要最小限の権限のみを付与できる。これにより、過剰な権限を与えることなく、安全性を高めることができる。
アクセストークンの有効期限が短いという特性を補うために、「リフレッシュトークン」という仕組みが併用されることが多い。リフレッシュトークンは、新しいアクセストークンを再発行するためだけに使われる、より有効期限の長いトークンである。アクセストークンの有効期限が切れた際、クライアントはリフレッシュトークンを認可サーバーに提示することで、ユーザーに再度のログインを求めることなく、新しいアクセストークンを取得できる。アクセストークンはAPIリクエストのたびに送信されるため漏洩リスクが比較的高く、リフレッシュトークンはトークン再発行時のみという低頻度で利用される。このように役割を分離することで、利便性を損なわずにセキュリティを向上させている。
アクセストークンの具体的なフォーマットとして、JSON Web Token(JWT)が広く採用されている。JWTは、ヘッダー、ペイロード、署名の三つの部分から構成されるJSONベースのオープンスタンダードである。ペイロード部分には、ユーザーID、権限スコープ、有効期限といった情報(クレームと呼ばれる)を格納できる。JWTは電子署名によって改ざんを検知できるため、高いセキュリティを持つ。また、トークン自体が必要な情報を含んでいる自己完結型であるため、リソースサーバーはトークンを受け取るたびに認可サーバーへ問い合わせを行う必要がなく、システムのパフォーマンス向上にも寄与する。このように、アクセストークンは現代のWebサービスにおけるセキュアで柔軟な認可システムを支える基盤技術となっている。