BangBlogスマートフォン用の表示で見るBangBlogこの広告は、90日以上更新していないブログに表示しています。Echoについて調べてみました。そんなわけで、調べたメモを。(Draftの1枚のみのようです。caseを想定して仕様を見てみると、そんなに難しいものでも無かったです。storage(twitpicなど)に写真を投稿するときなどに使われます。twitpicに写真を投稿するにはtwitterの認証情報が必要になりますが、twitpicは当然そんなモノ持っていません。clientがtwitpicに対して、どのUserが写真を投稿したいのかを伝える必要があります。headerに含むような値を別のヘッダに含めてtwitpicを送ってやります。APIのaccount/verifiy_credentialsにリクエストすることで、リクエスト元のユーザー情報を取得できるようになります。keyなどを使ってtwitpicが代わりにtwitterにリクエストできるということです。ここら辺が"Echo"な感じ...なんだと思いますたぶん。Echoの登場人物はUserConsumerDelegatorSPの4者です。前提として、ConsumerはUserから認可を与えられているものとします。Echoのフローです。ConsumerがDelegatorのendpointにリクエストします。この時、headerに"X-Auth-Service-Provider"と"X-Verify-Credentials-Authorization"を指定します。X-Auth-Service-ProviderにはSPにUserを特定するためのendpointを指定します。(twitterの場合はaccount/verifiy_credentials)X-Verify-Credentials-AuthorizationにはX-Auth-Service-Providerで指定したendpointのAPIをリクエストするのに必要な値を指定します。oauth_version="...")。headerに指定してリクエストします。APIリクエストとして処理します。codeが2xxなら有効なリクエスト、そうでなければ無効なリクエストとして判断されたことになります。リクエストが成功した場合、SPはUserの情報をレスポンスに含めます。DelegatorはUserの情報を取得できたので、さっき一時的に保存したデータをUserと紐付けて保存することができます。"DelegatorがUserの情報を必要とするけど、Consumerが勝手に送ってきたUser情報で保存するわけにいかないし、じゃあどうやってvalidなUser情報を取得するの?"という問題の解決策のようです。リクエストするAPIに付加するsignatureはConsumerが指定しているので、Delegatorに勝手にUser情報を変更されることもありません。ちなみに、"X-Auth-Service-Provider"と"X-Verify-Credentials-Authorization"はheaderでなくてPOSTしてもいいようです。推奨はされていないようですが。Echoよりセキュアなパターンです。このFlowでは先程の1.で指定するheaderに加え、"x_delegator"にDelegatorの名前を指定します。Echoでは、もしDelegatorがリクエストに含まれる"X-Verify-Credentials-Authorization"の値を第三者に渡していたら、第三者がUserの情報を取得できてしまいます)。SPがどのDelegator経由でリクエストが来たのかを把握できるのもポイントなのかもしれません。まとめオープンな仕様にしようとしているみたいですが、twitter以外に採用しているSPあるんでしょうか。twitter向けな感じが否めないですし。twitterみたいにエコシステムが発達していれば使われることもあるんだろうけど...。いった仕様のニーズはあるのかなーとか思ったりします。redirect_uriパラメータの扱い色々この前行われたidconで、OAuth2対応サービスのstateパラメータ...2012-01-30Facebookの認証ダイアログの仕様変更をまとめてみた皆さんFacebook使ってますか?私はどちらかというとTwitterを使...2010-11-03Facebookが採用してるOAuth2.0の仕様を調べてみたFacebook流行って?ますね。使っていないですけど。移行してみました月別アーカイブはてなブログをはじめよう!bang_yyさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。