際際滷

際際滷Share a Scribd company logo
なんとなく
OAuth伽いって
房ってる笛
ちょっと栖い
~ OAuth 1.0   2013/3
               RITOU
iんでもらいたい繁

?   よくわからんけどOAuthは伽い
?   よくわからんけどやっぱりOAuthは佚
    喘できない
?   オレがyi晒だ
つのる襪

?   TwitterのXぎ、}の云|がえなく
    なってる櫃する
?   Twitterが鬉靴侭厨`うよね
    ? Serverの鬉麓抜罎Clientへの唹
     も深えた魌I崔
?   Client Credentialのyi晒燭鵑覆錣
    ない
    ? 腹り貧がるのは措いけど???
このスライドの坪否

?   OAuthの念戻
?   OAuth 1.0 g廾のポイント
このスライドの朕議

?   ぼくがかんがえるお`お`すのかんど
    ころを岑ってもらいたい
?   蒙に、碧がアレな何蛍をどうg廾す
    るかをB初したい
?   まぁ、OAuth 1.0のr旗はもうKわっ
    てるけどな
OAuth 1.0
(2007-2012)

Obsoleted by OAuth 2.0
OAuth1.0の念戻

融っzみどころはあるにしても、とりあ
えずこんな念戻で碧はかれてる
?   TLS(HTTPSなリクエスト)は佚喘できる
?   HTTPなAPIもあるよね。俸兆つけよう
    ? 2007定とか2008定とかだからね
Client CredentialのQい

 クライアントアプリケ`ションが佚m來の詰いMの砿
 尖和に崔かれるケ`スは富なくない。箭えばクライアン
 トがデスクトップアプリケ`ションで、ソ`スコ`ドや
 g佩侘塀のバイナリが巷_されている栽、好蔦澆蛍
 裂のためにコピ`をダウンロ`ドし、クライアントクレ
 デンシャルを原けてしまう辛嬬來がある。
 そういった栽、サ`バ`はクライアントのアイデン
 ティティを編^するH、クライアントクレデンシャルの
 みを聞うべきではない。辛嬬であれば、IP アドレスのよ
 うな麿の勣殆も喘いるべきである。
 http://openid-foundation-japan.github.com/draft-
 hammer-oauth-10.html#client_cred_sec
OAuth1.0の念戻

融っzみどころはあるにしても、とりあ
えずこんな念戻で碧はかれてる
?   TLS(HTTPSなリクエスト)は佚喘できる
?   HTTPなAPIもあるよね。俸兆つけよう
?   モバイル/デスクトップアプリのClient
    Credentialは函誼される辛嬬來がある
    ? yi晒のはもういらん
兜めにユ`ザ`が大む
   フロ`のをしよう
いわゆる3-legged OAuth, ユ`ザ`の
アクセスS辛が秘るフロ`
(2-leggedについては恷瘁に)
OAuth 1.0のポイント

?   Access Token( / Secret)の砿尖
?   アクセスS辛Y惚の鞭け局し
?   Client Credentialの砿尖
ちょっと噫なの
  ついてるけどフロ`は
  まぁこんな湖じ




http://developer.yahoo.co.
jp/other/oauth/flow.html
g廾の
  ポイントを
  瘁ろから
  ていく




http://developer.yahoo.co.
jp/other/oauth/flow.html
APIアクセスに駅勣な秤

?   2MのCredentialで俸兆する駅勣あり
    ? Access   Token/Secret
    ? Consumer   Key / Secret
http://developer.yahoo.co.
jp/other/oauth/flow.html
Access Token / Secretを
函誼するためには
 ?   これまたいろいろ駅勣
     ? Request   Token / Secet
       ?ユ`ザ`の揖吭を箔めるために駅
        勣なやつ
     ? OAuth   Verifier
       ?ユ`ザ`がS辛したあとにk佩さ
        れるやつ
http://developer.yahoo.co.
jp/other/oauth/flow.html
OAuth Verifierを
函誼するためには
 ?   ユ`ザ`がS辛した瘁にServerから
     Clientへのリダイレクトなどによる鞭
     け局しが駅勣
OAuth Verifierを
屎しく局してもらうには
?   ClientからServerへのり枠の峺協が
    駅勣
    ? OAuth   Callback
      ?Request   Token函誼rに峺協
      ?Serverは並念鞠hされているもの
       と匯崑するか編^
http://developer.yahoo.co.
jp/other/oauth/flow.html
Request Tokenを函誼する
ためには
?   Client Credentialsが駅勣
    ? Consumer   Key / Secret
Request Tokenを函誼する
ためには
?   Client Credentialsが駅勣
    ? Consumer   Key / Secret
      ?Webアプリケ`ションでここが
        便られていればALL Secure
Request Tokenを函誼する
ためには
?   Client Credentialsが駅勣
    ? Consumer   Key / Secret
      ?Webアプリケ`ションでここが
        便られていればALL Secure
      ?モバイル/デスクトップアプリで
        は及3宀に函誼される辛嬬來が
         ?どうなるか
     Client
      Credential
      
      局されたパラ
      メ`タ
      を誘げるとこ
      ろが佚mでき
      なくなる


    http://developer.yahoo.co.
    jp/other/oauth/flow.html
     Client
      Credential
      
      局されたパラ
      メ`タ
      を誘げるとこ
      ろが佚mでき
      なくなる


    http://developer.yahoo.co.
    jp/other/oauth/flow.html
OAuth Callback
の峺協にはServer
の編^が秘る。
ここで音屎な、
峺協されないよう
に便るしかない。




http://developer.yahoo.co.
jp/other/oauth/flow.html
3legged OAuthで嶷勣なこと

?   Client Credentialが吭のあるlかに
    函誼されても、OAuth Verifierが函誼
    されなければ、及3宀にToken
    Credentialが局ることを契げる
Server/Clientが
やらないといけないこと
? ServerはOAuth
         Verifierが吭のあ
 る及3宀に局らないようにg廾
? ClientはServerが戻工する芦畠な圭
 隈を旋喘する(しかない)
參貧のQ泣から
Twitterのg廾を深える
? OAuth
    Verifierが吭のある及3宀
 に局るケ`スがある
  ? り枠のURLが並念に峺協してある
   栽、Request Token函誼rに販吭
   のURLを峺協できる
Client Credentialを芦畠に
砿尖できないClient
 ?   及3宀が Request Tokenを函誼できる
     ? り枠のURLが並念に峺協してある
      栽、Request Token函誼rに徭蛍
      のサ`バ`のURLを峺協できる
       ?OAuth   Verifier函誼できる
       ?AccessToken/Secret函誼できる

       ?Write慙泙DM僕れる
それに紗えて

?   ユ`ザ`のアクセスS辛鮫中をスキッ
    プできるオプションがある
    ? 302でリダイレクトしてた

     ?iframe坪で鮫中燕幣なしで
      OAuth Verifierを函誼できた
Twitterの周のまとめ

?   アクセスS辛鮫中の福待がキモ,任呂覆
    ? ノ`クリックをgFでとどめをさされた
     のは並g
    ? しかし、鮫中燕幣をしたところでユ`
     ザ`が毛したらやられるだろう湖
?   Client Credentialの蜘停も云|じゃない
?   云|はやはりOAuth CallbackのQい
2legged OAuth

 ?   Server-Clientの2宀なので2legged
 ?   アプリケ`ションに~づくデ`タにア
     クセスする喘余に旋喘されている
 ?   Client Credentialのみで俸兆伏撹


 モバイル/デスクトップアプリは´
                        (?゛`)
Server/Clientが
やらないといけないこと
?   Serverは2legged OAuthの旋喘をWebア
    プリのみに崙泙垢
    ? Client鞠hrに峺協させる
      ?Webアプリかどうか
      ?旋喘するAPIの峺協でもいい
?   Clientはモバイル/デスクトップアプリか
    ら岷俊2legged OAuthを聞わない
    ? どうしてもな栽はバックエンドのサ`
     バ`をU喇するなど(垢健が駅勣)
ここまでをまとめると


OAuth 1.0の
(というか2.0もなんだけど)
g廾の措ししは
ServerのClient砿尖にかかってる
ServerのClient砿尖の

 ?   1プロジェクト、1Client Credentialは
     よくない
     ? Webアプリとネイティブアプリで
      Client Credential慌嗤
ServerのClient砿尖の

 ?   1プロジェクト、n Client Credentials
     の侘塀が措さそう
     ? Webアプリとネイティブアプリで
      Client Credentialを蛍ける
     ? それぞれに旋喘させるAPIを崙

     ? プロジェクト坪のユ`ザ`Re徨は
      y匯
ServerのClient砿尖の

 ?   OAuth Callbackのm俳な崙泙駅勣
     ? HTTPSなURLのフルパス繁議に
      はパラメ`タも耕協
     ? }方峺協はできていいと房う
ServerのClient砿尖の

 ?   櫃鮓兇韻覯新
     ? リダイレクタ貨
      ?パラメ`タoや念圭匯崑

      ?ドメインg了の崙

     ? カスタムURIスキ`ム
      ?嶷}、枠戮舛覆匹量慚

      ?^oob ̄聞ってユ`ザ`に返咾廼匹
       てもらうほうが措いかも
蒙にOAuthのServerをg廾
する繁たちは屎しい岑Rを
誼たうえで、
ユ`ザ`とClientが芦畠にリ
ソ`スアクセスできるよう
な返粁を戻工するように適
薦しましょう
書指はこれぐらいにしとく

?   OAuth 2.0、發修里Δ宋る

More Related Content

なんとなく或粥顎岳鞄伽いって房ってるやつちょっと栖い