TOP
トークンベース認証
トークンベース認証
トークンベース認証とは、ユーザーの認証情報を「トークン」と呼ばれる一時的な鍵に置き換えてやり取りするしくみです。ログインのたびにパスワードを送るのではなく、最初の認証時に発行されたトークンを使ってアクセスを続けます。
イメージしやすいのは、イベント会場の入場パスです。最初に本人確認をしてパスを受け取れば、その後はパスを見せるだけで出入りできます。毎回名前や住所を伝える必要はありませんね。トークンも同じで、サーバー側は「このトークンは有効か?」を確認するだけで、利用者を特定できます。
トークンには有効期限があります。期限を過ぎれば自動的に使えなくなり、再びログインが必要になります。これにより、長期間使い回されることを防ぎます。また、盗まれた場合も被害を最小限に抑えられます。
トークンベース認証は、スマートフォンアプリやシングルサインオン(SSO)にも広く利用されています。特にWeb APIとのやり取りでは、パスワードを何度も送信するよりも安全で効率的です。代表的な形式として「JWT(JSON Web Token)」があり、トークンの中にユーザー情報や有効期限が含まれており、改ざん検知のために署名されています。
標準的なJWTは暗号化されておらず、署名されているだけのため、トークンは安全に保管しなければなりません。攻撃者に盗まれると、本人になりすましてアクセスされる危険があります。通信は暗号化し、ブラウザの保存方法や失効処理も慎重に設計することが欠かせません。
便利さと安全性を両立させるのがトークンベース認証のポイントです。うまく活用すれば、ユーザー体験を損なわずにセキュリティを高められます。まさに、今のWebサービスに欠かせない認証方法の一つといえるでしょう。
用語解説の監修:増井 敏克