ホームページ » インターネット » OAuth Connectとは何ですか?

    OAuth Connectとは何ですか?

    私たちの多くはWeb上でブラウズするときにOAuthと接触するようになり、そして私たちのほとんどはその存在さえ知らない。 OAuth(Open Authentication)は、サードパーティのWebサイトに、TwitterやFacebookのアカウントなどのユーザーアカウントへの制限付きアクセスを許可するシステムです。それは訪問者が新しいアカウント登録を要求することなく、または第三者にあなたのユーザ名とパスワードを公表することなくサイト内で対話することを可能にします.

    このガイドでは、OAuthの概念と開発者への適用方法を紹介します。あなた自身のOAuthアプリケーションの実装には技術的な詳細がたくさん含まれています。私の例はTwitterライブラリーラッパーを使用してPHPで書かれるでしょう、しかしあなたはPythonからRubyまたはObjective-Cまでほとんどすべての人気のあるプログラミングAPIを使用することができます.

    概念がわかりにくいと感じたとしても、できる限り消化するようにしてください。それはまだ非常に不思議な技術で、2007年に起草されたばかりです。最初の数回のチュートリアルの後でも、OAuth Connectionsを完全に開発する方法はよくわかりませんでした。最初に物事を始めるために、小さな紹介!

    どんな問題が解決できるか?

    インターネットの接続性を考えると、FacebookからTwitter、Tumblr、Foursquare、さらにはPathやInstagramなどのモバイルアプリケーションにさえ、ユーザーが複数のアカウント間で情報を共有したいと考えるのは理にかなっています。私たちが今直面している問題は、これを最も安全で簡単な方法で実現する方法です。 OAuth 1.0は、古いOpenID標準と比較して、これおよび他の多数の問題を解決する試みです。ユーザーはまだOpenIDに接続するためだけに他のサードパーティのWebサイトにユーザー名/パスワードを入力しています。これはユーザーにとってそれが安全になるわけではありません。 OAuth仕様では、ユーザーは個人のアカウントデータをサードパーティのデータベースに保存する必要はありません。.

    (画像出典:マーティンハスマン)

    OAuthでは、メインアカウントプロバイダ(例:Twitter、Facebook)が最初にあなた(ユーザー)を承認ページにリダイレクトします。その後、ユーザーはメインネットワークにログインし、サードパーティのWebサイトへの新しい接続を承認または拒否します。このテクノロジは簡単で、いつでもアカウント設定から接続を承認できます。あなたのパスワードが第三者に与えられることはないので注意してください。.

    プロセスのしくみ

    標準のOAuth呼び出しでは、考慮すべき3つの関係者があります。

    • サービス提供者 - あなたがデータを引き出そうとしているメインネットワーク。ユーザー名、プロフィール写真、WebサイトのURLなどのAPIレスポンスを提供します。.
    • 消費者 - データを受信しようとしているサードパーティ製のアプリ。これは、最初の接続要求を行い、承認後に戻りデータも処理するWebサイトまたはモバイルアプリです。.
    • ユーザー - コンピュータの後ろに座っている人があなたとなるWebサイトと対話する!

    OAuthの目的は、Webサイトが使用するための特定のライブラリを提供することではありません。実際には “規則” オープンプロトコルのAPIを構築するためのものです。したがって、私たち全員がこのテクノロジから恩恵を受けることができますが、実際にこの分野に興味を持つのは開発者です。もっと情報が必要な場合は、2010年4月にリリースされた改訂版v1.0版をチェックしてください。.

    直面しているセキュリティ

    プロセス全体では、最終的にアクセストークンとともに2つの異なるキーが必要になります。キーはアプリケーションを登録した後にルートサービスによって提供されます - これらはあなたのとして知られています クライアント そして 秘密のID. クライアントIDは一般に認証URLに渡されるため、サーバーはアプリを認識できます。.

    シークレットIDはコードで保持されているので、サーバーはアプリのIDを確認できます。同様に、リモートサーバーはあなたのシークレットIDと自分のシークレットIDを一致させるので、あなたが誤ってTwitterのリクエストをFacebookのAPIに送信したり、その逆も同様です。ユーザーが接続を承認し、すべてのキーが一致した場合、それらは乱数と文字の長いコードであなたのウェブサイトに返されます。.

    このコードは新しいコードを生成するために使用されます。 アクセストークン. これらは、ユーザーをWebサイトにログインさせたままにするためにcookieに保存できるセッション変数と同じように動作します。唯一の違いは、多くのサービスがアクセストークンとシークレットアクセストークンを送り返すということです。サーバーからデータを取得するには、これらの両方が必要になるでしょう。たとえば、自分のWebサイトにコピーを保存するようにユーザーのプロフィール写真を要求することができます。.

    Twitter OAuth用のサンプルライブラリ

    開発者は最初からやり直すことはあまりありませんが、以前に構築されたライブラリを調べないのはなぜでしょうか。これは私達に時間を節約するでしょうし、そしてPHPを使って作業するときの頭痛から。 Twitter APIの上に本当に簡単な例を構築することを検討しましょう。.

    GitHubでJaisen MathaiによるTwitter Asyncを強くお勧めします。それは完璧に動作し、我々が見ることができるいくつかの本当に簡単な例のコードさえ提供します。今のところ.zipをダウンロードできますが、コードを調べる前に、登録してTwitterからアプリIDを取得する必要があります。.

    新しいアプリケーションを登録する

    Twitter Dev Centerは、APIを使い始めたばかりの人々にとって素晴らしいリソースです。それは数年の間に何度も書かれそして書き直されました。欲しいページはhttps://dev.twitter.com/apps/newです。それは最初にログインするようにあなたに頼みます、そしてあなたは新しいアプリケーションのためにいくらかの資格情報を入力する必要があります.

    アプリケーション名と説明は、ユーザーがTwitterで認証を受けたときに表示されます。あなたのWeb URLもサードパーティのアドレスを区別するために重要です。テストにlocalhostを使用することはできますが、ライブドメインで作業する方が簡単ですが、この方法は推奨しません。無料のWebホストにサインアップして、そこからスクリプトを実行するのと同じくらい簡単です。.

    コールバックURLは、訪問者が承認を承認または拒否した後の最終宛先として記載されています。 Twitterからの応答を読み、それに応じてメッセージを出力するのは、プログラマーとしての仕事です。 Asyncライブラリでは、すでにいくつかの認証情報が用意されていますが、コールバックURLが外部ブログに指定されているため、これらは機能しません。完全に接続されたOAuth Webアプリを作成することに興味があるなら、私は以下にいくつかの詳細なチュートリアルを含めました.

    コードをチェックする

    リモートWebホストを使用している場合は、Asyncライブラリを解凍して新しいディレクトリにアップロードすることをお勧めします。それ以外の場合は、単にソースコードをチェックアウトすることができます。とにかく新しいコネクションを引っ張ることはできないでしょう。しかし、ソースコードのアップロードと編集に関する実際の経験は、常に学習プロセスです。.

    ルートディレクトリには、という名前のスクリプトがあります。 simpleTest.php. 中にはOAuthライブラリに関連するたくさんのPHPコードが含まれています。私はあなたにそれをすべてまとめることはできないでしょう、しかし私達は重要な細部を正確に指摘するために重要なコードブロックを見るべきです.

     

    トークンと秘密トークンIDとともに、コンシューマキーと秘密IDには4つの非常に重要な変数があります。すべてのAPIサービスがこの4つのセットを必要とするわけではありませんが、それは適切なOAuthプロトコルです。 EpiTwitterクラスはパラメータとして4つすべての値を必要とし、Twitterへの接続URLを生成します。.

    https://api.twitter.com/oauth/authorize?oauth_token=TOKEN_ID_HERE

    この新しい動的URLを使用すると、ユーザー用のログインボタンを作成できます。これは、まずユーザーがあなたの接続を受け入れるか拒否するかのどちらかである安全なTwitter APIページにそれらを向けるでしょう。どちらを選択しても、ユーザーはアプリのコールバックURLにリダイレクトされます。オープンプロトコル全体は、特に実質的にすべての言語で利用可能なライブラリを使用して迅速な開発を可能にする非常にきれいな視点を持っています.

    関連リンク

    • hueniverse oauth 1.0ガイド
    • OAuthへのやさしい紹介
    • OAuth FAQ
    • Facebook認証開発者ガイド
    • 簡単なTwitterのOAuthサインイン
    • Cocoa Objective-CでTwitterでOAuthを使用する
    • RailsでOAuthをインテリジェントに利用する

    結論

    うまくいけば、OAuthへのこの紹介があなたがプロトコル上でアプリケーションを構築することに興味を持つようになったことです。多くの開発者がまさにそのような解決策のために努力してきました、そして、OAuth 2.0は相互接続されたソーシャルネットワークの将来であるかもしれません。私はすでに自分のTwitterアカウントに2ダース以上の接続を使用していて、開発者のドキュメンテーションに本当に感銘を受けました。!

    明らかにこのトピックについて言うべきことがたくさんあります。それはあなたが一度に完全に処理することができるかもしれないものではありません。より多くのOAuthソリューションのためにネットの周りを閲覧して、下のディスカッションエリアであなたの考えを私たちに知らせてください.