コンテンツにスキップ

OAuth

出典: フリー百科事典『ウィキペディア(Wikipedia)』
OAuth2から転送)

OAuth [1] (authorization) 

20162012RFCOAuth 2.0RFC6749RFC6750稿OAuth 2.0

[]


OAuth 2.04[2]

 (resource owner)

 (resource server)

 (client)

 (authorization server)

 [2]

4AABAXABAXBB[ 1]

ABXBBAX

BAABBOAuth

AB

[]


OAuth 2.0 : Access Token[3]

OAuth 2.0 [4] OAuth 2.0 



OAuth 2.0 [5]c.f. JSON Web Token[6]=OAuthc.f. PoP[7]

[]


OAuth 2.0 : Authorization Grant[8]



OAuth 2.0 4
表. 認可グラントタイプの一覧
認可グラントタイプ名 クレデンシャル実体
認可コード: Authorization Code
インプリシット: Implicit 無し[9]
リソースオーナーパスワードクレデンシャル: Resource Owner Password Credentials ユーザ名+パスワード[10]
クライアントクレデンシャル: Client Credentials Grant クライアントの認証情報[11]

プロトコル[編集]

OAuth 2.0のプロトコルフローは以下のとおりである[12]

 
 
クライアント
 
 
 
─(A) Authorization Request →
リソース
オーナー
←(B) Authorization Grant ─
─(C) Authorization Grant →
認可
サーバー
←(D) Access Token ───
─(E) Access Token ──→
リソース
サーバー
←(F) Protected Resource ─
  • (A) まずクライアントがリソースオーナーに認可要求(Authorization Request)を出す。図ではクライアントがリソースオーナーに直接要求を出しているが、認可サーバー経由で間接的に要求することがのぞましい[12]
  • (B) リソースオーナーは認可要求を許諾する旨の返答として認可グラントをクライアントに送る。これも認可サーバー経由で行うことがのぞましい[12]
  • (C) クライアントは認可サーバーに認可グラントを送ることでアクセストークンを要求する。
  • (D) 認可サーバーはクライアントの認証と認可グラントの正当性の検証を行い、問題なければアクセストークンを発行する。
  • (E) クライアントはアクセストークンにより認証を受けることで、保護されたリソースへのアクセスをリクエストする。
  • (F) アクセストークンが正当なら、クライアントのリクエストを受け入れる。

4[13]

: 

: 使

: : +

: 調

[]

[]


WebOpenIDIDWebAWebAWebBWebAWebBWebAPI

OAuth 1.0[]


200611TwitterOpenID Ma.gnolia OpenID使DashboardMa.gnolia OpenID使TwitterMa.gnoliaAPIAPI

OAuth20074OAuthGoogle20077Eran Hammer-Lahav 調2007103OAuth Core 1.0 

20081173IETFOAuthIETFOAuthIETFOAUTH

[]


2009423OAuth 1.0 OAuth Core 1.0 Section 6 OAuth3-legged OAuth[14]OAuth 1.0a 

OAuth 2.0[編集]


OAuth 2.0OAuthOAuth 1.0OAuth 2.0[15]Eran Hammer-LahavIETF OAuth2010[16]20128RFC The OAuth 2.0 Authorization Framework[17]The OAuth 2.0 Authorization Framework: Bearer Token Usage[18]

FacebookGraph APIOAuth 2.0 Draft 10OAuth 2.0[19]2011Google[20][21]OAuth 2.0API

脚注[編集]

注釈[編集]

  1. ^ この写真の例は、RFC日本語訳 1章冒頭に記載されているものを参考にした。

出典[編集]



(一)^ For immediate release: OAuth Core 1.0 Specification released at Internet Identity Workshop. 20118122024115 OAuth (pronounced Oh-Auth)

(二)^ abRFC 6749 1.1

(三)^ "1.4.  Access Token   Access tokens are credentials used to access protected resources.  An access token is a string representing an authorization issued to the client." RFC6749 

(四)^ "Tokens represent specific scopes and durations of access, granted by the resource owner" RFC6749 

(五)^ "Access tokens can have different formats, structures, and methods of utilization (e.g., cryptographic properties) based on the resource server security requirements. Access token attributes and the methods used to access protected resources are beyond the scope of this specification" RFC6749 

(六)^ "The token may denote an identifier used to retrieve the authorization information or may self-contain the authorization information in a verifiable manner (i.e., a token string consisting of some data and a signature)." RFC6749 

(七)^ "Additional authentication credentials, which are beyond the scope of this specification, may be required in order for the client to use a token." RFC6749 

(八)^ "1.3.  Authorization Grant   An authorization grant is a credential representing the resource owner's authorization (to access its protected resources) used by the client to obtain an access token." RFC6749 

(九)^ "The grant type is implicit, as no intermediate credentials (such as an authorization code) are issued" RFC6749 

(十)^ "1.3.3.  Resource Owner Password Credentials   The resource owner password credentials (i.e., username and password) can be used directly as an authorization grant" RFC6749 

(11)^ "The client credentials (or other forms of client authentication) can be used as an authorization grant" RFC6749 

(12)^ abcRFC6749 1.2

(13)^ RFC6749 1.3

(14)^ Oauth (2009423). OAuth Security Advisory: 2009.1. 2009423

(15)^  The OAuth 2.0 Authorization Protocol (2011216). 20111128

(16)^  Eran Hammer-Lahav (2010515). Introducing OAuth 2.0. 2011314

(17)^  Dick Hardt, Ed. "The OAuth 2.0 Authorization Framework". 2016330

(18)^  Michael B. Jones, Dick Hardt, "The OAuth 2.0 Authorization Framework: Bearer Token Usage". 2016330

(19)^  Authentication - Facebook Developers. developers.facebook.com. 20111128

(20)^  Making auth easier: OAuth 2.0 for Google APIs. googlecode.blogspot.com (2011314). 20111128

(21)^  Dare Obasanjo (201154). Announcing Support for OAuth 2.0. windowsteamblog.com. 20111128

関連項目[編集]

外部リンク[編集]