「Authorization: Bearer 」って何?—API認証のカギとなるトークンの仕組み
APIを使うときに、curlコマンドでよく見かけるこの記述:
-H "Authorization: Bearer <token>"
初めて目にすると、「これって何をしてるんだろう?」と疑問に思うかもしれません。これは、APIへのアクセスを許可してもらうための“合言葉”のようなものです。
この記事では、Bearerトークンの役割と使い方を例え話を交えながらまとめていきます。
Bearer(ベアラー)トークンとは?
「Bearer」という言葉は英語で「持っている人」という意味です。つまり、Bearerトークンとは「持っている人だけが使えるアクセスキー」を指します。
イメージとしては、映画のチケットによく似ています。
映画館では、誰が持っているかは関係なく、チケットを提示すれば入場できます。
Bearerトークンも同様で、そのトークンを持っている人ならAPIにアクセスできる仕組みです。
この仕組みのおかげで、毎回ユーザー名やパスワードを入力する必要はありません。トークン1つで簡単に認証ができるんです。
curlコマンドでのBearerトークンの使い方
たとえば、APIを使ってユーザー情報を取得するときは、以下のように指定します。
curl -H "Authorization: Bearer abc123xyz" https://api.example.com/user
このコマンドは、「abc123xyzというトークンを持っているから、このAPIにアクセスさせてね」というリクエストをサーバーに送っています。
どうしてBearerトークンが使われるの?
(1) シンプルで安全
ユーザー名とパスワードを直接やり取りすると、盗まれたときに大きな被害につながります。でも、Bearerトークンは有効期限付きで発行されるため、たとえ盗まれても被害を抑えやすい仕組みです。
(2) OAuth 2.0との相性がいい
多くのサービスはOAuth 2.0という認証・認可の仕組みを使っています。Bearerトークンはこの仕組みとセットでよく利用されます。
(3) APIアクセスに最適
一度ログイン情報を使ってトークンを取得すれば、あとはそのトークンを使って認証できるので、プログラムからの自動化にも便利です。
使うときの注意点
映画のチケットと同じく、Bearerトークンも「持っている人なら誰でも使える」という性質があります。そのため、取り扱いには注意が必要です。
(1) HTTPSを使う
Bearerトークンは通信時にそのまま送信されるため、暗号化されていないHTTPを使うと盗まれる危険があります。必ずHTTPSで通信しましょう。
(2) トークンの管理を厳重に
トークンは重要な鍵なので、公開リポジトリや共有ドキュメントにうっかり載せてしまわないように注意が必要です。
(3) 期限切れに気をつける
Bearerトークンには有効期限があるため、期限切れになったら新しいトークンを取得する必要があります。これを自動化する仕組みも考えておくと便利です。
エラーが出たときの対処法
Bearerトークンを使ったAPIリクエストでは、うまく動かないこともあります。よくあるエラーの原因を紹介します。
401 Unauthorized: トークンが無効、期限切れ、または記述ミスがある場合。トークンの内容を確認してみましょう。
403 Forbidden: トークンにはアクセス権限がない状態。API設定の権限を確認します。
404 Not Found: URLが間違っている可能性があります。エンドポイントの指定を見直してみましょう。
まとめ
Bearerトークンは、APIへのアクセスに必要な“合言葉”のようなものです。映画のチケットのように提示するだけで入場できる仕組みですが、取り扱いには注意が必要です。
HTTPSを使って安全に送信する
トークンは厳重に管理する
期限切れの更新を自動化する
これらを押さえておけば、APIの活用がもっとスムーズになります。
APIの操作に慣れてくると、自動化や複雑な連携もできるようになりますよ