今回は、エンジニアとして現場で経験した中で、API認証について理解したことを書く。
基本認証(Basic Authentication)
最初に直面するのが基本認証。シンプルで直接的、ユーザー名とパスワードをBase64でエンコードして送信。簡単だが、安全性には注意が必要。
APIキー
次に来るのがAPIキー。単純明快、特定の文字列をリクエストに添えて認証する。外部サービスとの連携にはこれがスタンダード。
OAuth
複雑さとセキュリティの完璧なバランス、それがOAuth。トークンを用いて認証を行うこの方法は、大手サービスのAPIで主流。理解しにくいかもしれないが、重要なので覚えよう。
JWT(JSON Web Tokens)
ここで登場するのがJWT。エレガントなトークンベースの認証で、JSONを使って情報を包み込む。特にシングルページアプリケーションで効果を発揮する。
ベアラートークン(Bearer Token)
「持つ者が権力を持つ」、これがベアラートークンの精神。OAuthで得たトークンを使っての認証は、RESTful APIでは不可欠。
クッキーベースの認証
直感的かつ実践的、ウェブアプリケーションではクッキーベースの認証が標準。ブラウザを通じてシームレスに動作する。
デジタル署名
最後に紹介するのがデジタル署名。最高レベルのセキュリティを求める場面でのみ使用される。少し複雑だが、知識としては持っておこう。