認証と認可
概要
認証 (authentication) とは着信者が誰であるかを示し、認可 (authorization) とは着信者が何を許可されているかを示す。
Table of Contents
認証
認証はユーザが提供したクレデンシャル (身元情報) が正当であることを確認するプロセスである。一般によく知られている方法はユーザ名とパスワードの形でシステムにクレデンシャルを提示するパスワード認証である。その他にも生体情報や証明書などの情報を使用する方法もある。現在ではより安全な多要素認証 (MFA; multi-factor authentication) が一般的になりつつある。
トークンベースの認証
トークンベースの認証はアプリケーションなどのサービスに対して、ユーザ自身がクレデンシャルを提示する代わりに使用される認証方法である。まずユーザがパスワード認証などの方法で認証し、システムからトークンの発行を受ける。ユーザはこのトークンをアプリケーションに設定し、例えば Authentication Bearer ヘッダに設定して REST リクエストで送信される。トークンは機密情報であるため HTTPS で送信しなければならない。サーバ側では、送られてきたトークンが誰に発行されたものであるかを検証し、発行先の権限でリクエストを実行する。
トークンの有効期限は限定されているべきである。トークンの有効期限が切れると、ユーザはシステムに対して再度認証を行い、発行された新しいトークンで置き換える必要がある。トークンベースの認証は、パスワードのような長期的なクレデンシャル情報がネットワーク上を頻繁に移動させなくて済むという利点がある。
OAuth2
OAuth2 は 2012 年から存在しているトークンベースの認可フレームワークである。これはサードパーティのアプリケーションがユーザに代わってユーザのデータにアクセすることをユーザが同意することを可能にする。