OAuth

Rubyで2Legged OAuthリクエストを行う

TwitterのAPIを叩くサンプルは見つかったけど、純粋な2Legged OAuthのやり方が見つからなかった。 だからメモ。 リクエストボディを指定して、リクエストを送る前にoauth!メソッドを呼ぶだけ。 #!/usr/bin/ruby require 'rubygems' require 'net/http' requi…

Objective-Cで2Legged OAuthリクエストを行う

TwitterのAPIを叩くサンプルは見つかったけど、純粋な2Legged OAuthのやり方が見つからなかった。 だからメモ。 2Legged OAuthリクエスト OAuthConsumerライブラリを使う。 OAMutableURLRequestは、NSMutableURLRequestを継承したクラス。 OAConsumerは、コ…

Pearにパッケージ提案のドラフトを作成してみた

Openpearで登録してあったHTTP_OAuthProviderをPearにパッケージの提案をしてみようかと。 今回は、とりあえずドラフトの作成まで。 HTTP_OAuthProvider - Openpear http://openpear.org/package/HTTP_OAuthProvider アカウント発行 待たされた。 Your accou…

HTTP_OAuthProviderにSAP用のSignature検証機能を追加してみた

コンシューマのライブラリに追加した方が自然なのかなと思ったけど、機能的にはプロバイダだから、HTTP_OAuthProviderに追加。 mixiではSAPという呼び方をしてるけど、この用語はOpenSocial共通の言葉なんだろうか…? Social Application Providerの略らしい…

HTTP_OAuthProviderのトークン保持にMemcachedとMemcacheを追加した

HTTP_OAuthProviderのトークン保持は今までCache_Liteしか使えなかった。 流石にそれだけじゃあ寂しかったので追加。 Pecl::MemcachedとPecl::Memcacheを追加。 世の中の流れとしては、Pecl::Memcached推奨らしい…。 トークンの保持するクラスは、ストアドラ…

HTTP_OAuthConsumerに3Legged系のメソッドを追加した

以下メソッドを追加した。 ・getRequestToken ・getAuthorizeURL ・getAccessToken メソッド名は、HTTP_OAuth_Consumerと同じにした。 ただ、引数はちょっと違う。 example 前回と同じく、以下ソースを修正。 HTTP_OAuthを利用してTwitterのOAuth認証を行う …

OpenpearでHTTP_OAuthProviderを公開してみた

公開した。 Openpearでパッケージを公開するとメールアドレスも公開されるという事をさっき知った。 もういいやと思って、文中のPear準拠のコメント部分で本名も晒した。 プログラムは去年書いたものをベースにしたんだけど、結構書き方も変わった。 なかな…

OpenpearでHTTP_OAuthConsumerを公開してみた

公開した。 HTTP_OAuthConsumer - Openpear http://openpear.org/package/HTTP_OAuthConsumer Revision 1978: /HTTP_OAuthConsumer/trunk http://svn.openpear.org/HTTP_OAuthConsumer/trunk/ 機能 HTTP_OAuthとの主な違いは、シグネチャ方式に、HMAC-SHA1だ…

HTTP上で暗号化・改ざんチェックが出来るOAuth「OAuth Encryption」を考案してみた

本気出して考えた。 サンプル実装もした。 クライアントプログラムはPHPで作ったものを公開。 サーバ側はPython。 ↓これ。 OAuth Encryption http://oauth-encryption.appspot.com/ OAuth Encryptionとは 2-Legged OAuth認証(RSA-SHA1方式)に暗号化と改ざ…

Pearでインストールできるサーバ側のOAuth認証ライブラリを作ってみる

ここ数週間、合間を見てちまちま作ってた。 大体出来た。 パッケージ名は、HTTP_OAuthServer。(暫定) 機能 ・2legged OAuth認証。 ・リクエストトークン発行。(3legged OAuth) ・ユーザ認可。(3legged OAuth) ・アクセストークン交換。(3legged OAuth) ・保…

OpenSocialのサービスプロバイダっぽいのを作ってみる 7.3legged OAuthでperson_idを保持しておくのを忘れてた

それじゃあ誰の権限を持ってるか解らない。 今回の変更点。 consumer_keyを内部で持ってるSerialに置き換えた。 person_idもデータベースに入れる。(Authorizeの時) もう少しだけ親切なAuthorizeページ作成。 どうやら今週は土曜も日曜も仕事のようです。 残…

OpenSocialのサービスプロバイダっぽいのを作ってみる 6.OAuth Core 1.0a(3legged OAuth)を実装してみた

実装してみた。 仕様は前回の記事参照。 作っているうちにどんどん混乱してくるから、先にまとめておいてよかった。 今回の内容は、オフィシャルドキュメントの内容ではなく、個人的にこうやった、というまとめ。 今週の月曜日、mixiアプリが正式コンテンツ…

OpenSocialのサービスプロバイダっぽいのを作ってみる 5.OAuth Core 1.0a(3legged OAuth)の仕様

2legged OAuthは出来て、今度は3legged OAuth。 サービスプロバイダとして3legged OAuthは必須。 「OAuth Core 1.0」はセキュリティに問題があるらしく、その問題点を解決した「OAuth Core 1.0a」(OAuth Core 1.0 Revision A)を使う。 他人様の日本語訳とか…

OpenSocialのサービスプロバイダっぽいのを作ってみる 2.データベース設計を考える

まずはpersonだけ。 適当翻訳。 おそらくサービスプロバイダに用意されているであろう標準的なフィールド。 id ユニークな識別子。必須。 displayName エンドユーザ向けの表示に適した名前。必須。 name 名前。 formatted 表示用のフルネーム。 familyName …

AuthServerっていうクラスを作ってみた

サーバ側の認証処理をするクラス。 長いから全部は書かないけど。 header = apache_request_headers(); $this->input = file_get_contents('php://input'); $this->http_method = isset($this->header['HTTP_X_HTTP_METHOD_OVERRIDE']) ? $this->header['HTT…