認証中級
OAuth
oauth
一言で言うと
他のサービス(Google, GitHub等)を使ってログインする仕組み。
もう少し詳しく
一言で言うと
他のサービス(Google, GitHub等)を使ってログインする仕組み。パスワードを直接共有せずにアクセス権を委譲する。
もう少し詳しく
OAuthには4つのロールが登場する。リソースオーナー(データの所有者、通常はユーザー)、クライアント(データにアクセスしたいアプリ)、認可サーバー(アクセストークンを発行するサーバー)、リソースサーバー(保護されたリソースを提供するサーバー)。
最も広く使われる認可コードフローでは、クライアントがユーザーを認可サーバーへリダイレクトし、ユーザーの同意後に認可コードを取得、それをアクセストークンと交換してリソースサーバーに提示する。アクセストークンには有効期限があり、リフレッシュトークンで再取得できる。
なお、OAuthは認可(Authorization)のみを担い、ユーザーが誰であるかを確認する認証(Authentication)にはOpenID Connect(OIDC)を組み合わせて使うのが標準的。
セキュアなアプリ運用には欠かせない概念です。誤った実装は情報漏洩につながるため、セッション管理・トークン発行・パスワードの保存方法といった周辺技術と合わせて押さえておきましょう。