OAuth(オーオース)は、パスワードを直接渡さずに、あるサービスへのアクセス権限だけを、別のサービスに委譲する 仕組みです。「Googleでログイン」「Xでログイン」のボタンが、その代表例です。
たとえば新しいアプリに「Googleの連絡先を使わせたい」とき、Googleのパスワードをそのアプリに教えるのは危険です。OAuthなら、パスワードを教えずに「連絡先の閲覧だけ許可」できます。
sequenceDiagram participant U as 利用者 participant A as アプリ participant G as Google U->>A: 「Googleでログイン」 A->>G: 権限をお願い G->>U: 「このアプリに連絡先を許可?」 U->>G: 許可する G-->>A: アクセストークンを発行 A->>G: トークンで連絡先を取得
ポイントは、許可の証として トークン が発行されることです。アプリはパスワードを一切知らず、トークンで「許された範囲だけ」を使えます。トークンは後から取り消せるため、安全性も高まります。
なお、OAuthは本来「認可(権限の委譲)」の仕組みで、これを「ログイン(認証)」に応用したのが OpenID Connect です。多くの「◯◯でログイン」は、この組み合わせで実現されています。