×
情報セキュリティ
OAuth(一般には最新バージョンのOAuth 2.0を指します)は、リソース所有者(ユーザー)、クライアント(サードパーティアプリ)、認可サーバー、リソースサーバーの4つの役割の間で処理が進められます。ユーザーがクライアントアプリに対してデータ(リソース)へのアクセスを許可すると、認可サーバーはクライアントに対してパスワードの代わりとなる「アクセストークン」を発行します。クライアントはこのトークンをリソースサーバーに提示することで、スコープ(許可された権限の範囲。例:読み取り専用、メールアドレスのみ等)と有効期限の範囲内でのみリソースにアクセスできます。これにより、もしクライアント側からトークンが漏洩したとしても、本物のパスワードが漏れるわけではなく、トークンの失効処理によって迅速に被害を抑えることができます。OAuthはあくまで「認可(Authorization)」のためのプロトコルであり、ユーザーが誰であるかを特定する「認証(Authentication)」のためのプロトコルではありません。しかし、多くのWebサイトでOAuthが認証の用途で誤用され、セキュリティホール(身元引受人攻撃など)が生まれたため、OAuth 2.0をベースに認証機能を拡張した「OpenID Connect(OIDC)」というプロトコルが標準化され、現代のソーシャルログインではこのOIDCが主に用いられています。