富士ソフト株式会社 IT事業本部 テクニカルC&C部 小川直人 Oauth勉強会 富士ソフト株式会社 IT事業本部 テクニカルC&C部 小川直人 当資料は勉強会用です。勉強会の目的に沿った利用をお願いします。
Oauthとは Webサイトやアプリケーションが、ユーザがWebサービスの認証情報をWebサイトやアプリケーションに開示することなく、APIを通じてWebサービスから保護されたリソースにアクセスするためのプロトコル(抄訳)
Oauthが解決したいこと Web Service Web Site User 前提:UserとWebServiceは認証の設定あり UserID Password
Oauthが解決したいこと WebServiceを利用するWebサイトを使う User Web Service Web Site
Oauthが解決したいこと Web Service Web Site User WebServiceの認証情報をWebSiteに曝したくない UserID Password UserID Password
Oauthの解決策 Web Service Web Site User リソースのあるサービスにて認証 WebサイトとWebServiceにて一時Tokenを共有できるようにする User Web Service Web Site UserID Password リダイレクト Token
Access Token Web Service Web Site User UserID/Passwordではなく、Web Serviceにて生成されたTokenを使って、 Web Siteが保護されたリソースにアクセスする User Web Service Web Site Token
Request Token Web Service Web Site User Access Tokenを取得するために、Request Tokenを取得するステップを踏む User Web Service Web Site Token
用語 Service Provider User : サイト利用者(Webサービスのアカウントを持っ) Consumer User Consumer : Webサイト(Mashupサイト等) Service Provider : Webサービス提供者 User Service Provider Consumer User=[U] Consumer=[C] Service Provider=[S] と表す
URL Service Provider Consumer Request Token URL User User Authorization URL [C]のために、[U]の認証をするURL Access Token URL Request TokenからAccess Tokenを取るためのURL User Service Provider Consumer
プロトコル(0) Service Provider Consumer User [S]は[C]用のKeyとSecretを用意し渡す 方法はOauth範囲外 User Service Provider Consumer
プロトコル(1) [C]は[S]にRequest Tokenを要求する User Service Provider Consumer
プロトコル(2) [S]は[C]に承認前のRequest Tokenを発行する User Service Provider Consumer
プロトコル(3) Service Provider Consumer User [C]は[U]を[S]の認証サイトに誘導する 前ステップで発行したRequest Tokenを承認する User Service Provider Consumer
プロトコル(4) Service Provider Consumer User [S]は[U]を認証する
プロトコル(5) Service Provider Consumer User [C]は[U]を[S]の認証サイトに誘導する 前ステップで発行したRequest Tokenを承認する User Service Provider Consumer
プロトコル(6) [C]は[S]にAccess Tokenを要求する User Service Provider Consumer
プロトコル(7) [S]は[C]にAccess Tokenを発行する User Service Provider Consumer
プロトコル(8) Service Provider Consumer User 制御+業務パラメータを連結し、Digest Valueを計算し、データをリクエストを送る User Service Provider Consumer
まとめ ユーザID/Passwordを第3者を経由しないで認証を行うプロトコル 認証自体は本来のサービスにて行う OpenID等とは発想が異なる