title: “OAuth 2.0” aliases:
- “OAuth 2” status: researched tags:
- “wikidig” sources:
- “https://oauth.net/2/”
- “https://wikidig.oqzl.net/”
アプリケーションが利用者のパスワードを受け取らずに、別サービス上のリソースへの限定的なアクセス権を得るための、業界標準の認可プロトコル。
概要
OAuth 2.0は認可(authorization)のためのプロトコルであり、認証そのものを目的とするものではない。Web、デスクトップ、モバイル、入力・表示が限られたデバイスなどに向けた認可フローを定める。
仕組み
利用者は認可サーバーで、クライアント(アプリ)に許可する権限を承認する。クライアントは得たアクセストークンをリソースサーバーへ提示して、許可された範囲のAPIを利用する。scopeで権限範囲を絞り、必要に応じてリフレッシュトークンでアクセストークンを更新する。
代表的なフロー
ユーザーが操作するアプリでは、認可コードフローが使われる。公開クライアントではPKCEを組み合わせる。ユーザー操作なしのサービス間連携にはクライアントクレデンシャルフロー、ブラウザーやキーボードを使えない機器にはデバイス認可グラントがある。
WikiDigでの文脈
WikiDigのGitHub連携による保守フローでは、OAuth 2.0を用いてGitHub上の操作に必要な認可を扱う。アプリケーションへ与える権限は用途に必要な最小限にする。
Related concepts
- アクセストークン — OAuth 2.0でAPIアクセスに用いるトークン
- PKCE — 認可コードフローを補強する仕組み
- OpenID Connect — OAuth 2.0を基盤として認証情報を扱うプロトコル
- GitHub — WikiDigの保守フローで認可先となるサービス