🔐
Bearer tokenとは
認証(Authentication)と認可(Authorization)の違い
まず、Bearer tokenについてまとめる前に、認証と認可の違いについてまとめたいと思います。
- 認証 誰であるかを確認するプロセス
- 例:IDとパスワードの入力、指紋認証、など
- 認可 何ができるかを確認するプロセス
- 例:特定のファイルへのアクセス権限など
Bearer Tokenとは?
次に、Bearer tokenについてまとめたいと思います。Bearer tokenとは、Bearer認証という認証方式で利用される、サーバーに対してクライアントのアクセス権限を証明するための文字列です。
Bearer認証のとは?
Bearer認証は、OAuth2.0の認可フローで広く使われる認証方式の一つで、Bearerトークンを使用してリソースへのアクセスを認証する仕組みです。
- "Bearer" とは「持っている者(保持者)」を意味し、Bearer認証では、トークンを持っている者が、そのトークンを使うことでアクセス権を証明 できます。
- HTTPリクエストの Authorization ヘッダーに "Bearer {token}" の形式でアクセストークンを付与することで認証を行います。
OAuth 2.0ってなーに
OAuth 2.0は、外部サービスやアプリケーションがユーザーの認証情報を直接扱わずに、安全に認可を行うためのプロトコルです。NextAuth.jsを利用するとNext.jsでも簡単に実装できます。よくあるgoogle認証でログインできる仕組みのことを難しく言っているだけ
Bearer認証の仕組み
1. クライアントの認証(ログイン)
- ユーザーがログイン(ID/パスワード、Google認証など)。
- 認証サーバー がユーザーを検証する。
- 認証成功後、クライアントに アクセストークン を発行する。
2. トークンの送信
- クライアントは、APIを呼び出す際に リクエストヘッダー に
Authorization: Bearer <アクセストークン>
を含める。
3. サーバー側の検証
- APIサーバー は受け取ったアクセストークンを検証し、正当なものかチェックする。
- トークンが有効ならリクエスト処理を継続する。
4. レスポンスの送信
- 認証に成功した場合、APIはリクエストに対応するデータを返す。
-
トークンが無効・期限切れの場合、
401 Unauthorized
を返す。(だいたい1時間で期限が切れる)
Discussion