OAuth
OAuth 2.0は、ユーザーの同意の下で、パスワードを共有せずにトークンを使ってサードパーティアプリケーションがユーザーのリソースへアクセスできるようにする認可フレームワークである。
目的
委任された認可を実現する。アプリケーションはパスワードを見ることなく、別サービス上のユーザーリソースにアクセスできる。
メカニズム
フロー:クライアントが認可サーバーに認可を要求する → ユーザーが承認する → クライアントが認可コードを受け取る → それをaccess_tokenと交換する → トークンを使ってリソースサーバーにアクセスする。グラントタイプ:authorization_code、implicit、password、client_credentials、refresh_token。
ユースケース
- サードパーティログイン(Google)
- 認可されたAPIアクセス
- クロスサービスのSSO
- モバイルでの認可
例
- 入力
authorization code → access_tokenOutputCall the API with the tokenThe authorization code flow
よくあるエラー
- The implicit flow exposes the token to the browser
- Use authorization_code with PKCE
関連用語
OpenID Connect
OpenID Connect(OIDC)は、OAuth 2.0の上に構築されたアイデンティティレイヤーである。ユーザー認証と本人情報を提供し、SSOの事実上の標準となっている。 用語集
JWT
JWT(JSON Web Token)は、クレームを JSON オブジェクトとして安全に伝えるコンパクトで自己完結型のトークンである。ステートレス認証と情報交換に広く使われる。 用語集
Bearer Token
Bearer トークンは純粋に所持だけで機能するトークンである。Authorization: Bearer <token> ヘッダーで送られ、追加のクレデンシャルなしに、持っている者なら誰でも使える。 用語集
Cookie
Cookie とは、サーバーが設定しブラウザが保存するキーバリューペアであり、同一オリジンへのリクエストに自動的に付送されてセッションと状態の管理に使われる。 用語集