セキュリティ Oauth 2.0 101

Oauth 2.0 101

目次:

Anonim

多くの高級車には、バレットキーが付属しています。 これは、駐車係員に与える特別なキーであり、通常のキーとは異なり、トランクと車内の携帯電話へのアクセスをブロックしながら、車を短距離だけ運転することができます。 バレットキーが課す制限に関係なく、このアイデアは非常に巧妙です。 他のすべてのロックを解除するために別のキーを使用しながら、誰かが特別なキーであなたの車へのアクセスを制限します。 -OAuth 1.0の公式ガイド


OAuth 2.0はまったく新しいプロトコルですが、OAuthは引き続きユーザーにサードパーティアクセス(および制限付きアクセス)を付与する方法です。パスワードを共有せずにリソース。


インターネットに定期的にアクセスしている場合、OAuthを使用するサイトに出会った可能性があります。 結局のところ、Facebook、Google、MySpace、Twitter、Photobcuket、Yahoo、Evernote、Vimeoなどの世界最大のWebサイトは、この認証標準を使用しています。 この標準の詳細と、次世代のOAuth 2.0がまだ比較的実験的に使用されている理由をお読みください。

OAuth 2.0とは何ですか?

まず、プロトコルとしてのOAuthが何を行うかを知る必要があります。これにより、2つのWebアプリまたはデスクトップアプリ間でアプリケーションプログラミングインターフェイスの承認が可能になります。 その結果、Webサイトは保護されたリソースを他のWebサイトやサービスと共有できます。


たとえば、iPadで友達とScrambleをプレイする場合、Facebookの資格情報を入力すると、ゲームで友達リストを調べて、誰がゲームをプレイしているかを確認できます。 または、Twitterであなたをフォローしているユーザーに基づいて、Google +で友達とつながることができます。 これらのタイプのアプリケーションはユーザーにとって便利ですが、1つのサイトまたはプログラムに別のサイトのユーザーに関する情報へのアクセスを許可する必要があります。


OAuth 2.0は、OAuthの最初の化身のように機能しますが、まったく新しい標準です。 これは、OAuth 1.0との後方互換性がないことを意味します。 バージョン2.0では、元のOAuthの問題の多くがクリーンアップされ、改善されました。


基本的に最初のバージョンのアーキテクチャを保持しながら、2.0は次の点を改善しました。

  • 認証と署名。 OAuth 2.0により、クライアント側の誰かがプロトコルを簡単に実装できるようになりました。
  • ユーザーエクスペリエンスとトークンを発行する代替方法
  • 特に大規模なWebサイトおよびサービスでのパフォーマンス
OAuth 2.0の新機能に関するより包括的な説明は、OAuthワーキンググループのメンバーであったEran Hammerによって提供されています。 ここからアクセスできます。 ただし、Hammerはこの標準を実装する際のセキュリティ上の問題に関連して、2012年7月にワーキンググループを脱退したことに注意してください。 その結果、OAuthは2010年末までに完成する予定でしたが、FacebookのGraph APIの一部ではありますが、(執筆時点で)提案された標準のままです。 GoogleとMicrosoftも、APIでOAuth 2.0のサポートを試行しています。

OAuth 2.0を使用する利点

OAuthを使用する最も良い理由の1つは、共有が非常に簡単になることです。 私たちはすでに写真をInstagramにアップロードし、TwitterやFacebookに自動的に投稿させることに慣れています。 実際、この種の使いやすさとクロスオーバーが、ソーシャルメディアの魅力を高め続けています。


しかし、それだけではありません。 エンドユーザーの場合、OAuthは別のプロファイルを作成する必要がないことを意味します。 たとえば、記事にコメントを残したい場合は、特定のWebサイトでアカウントにサインアップする代わりに、FacebookまたはTwitterの資格情報を使用してそうすることができます。 これは、通常はアクティブではないサイトや、信頼できない可能性のあるサイトに最適です。 また、ユーザーがFacebook上でIDを持つことを保証することで、サイトに利益をもたらし、コメントスパムをより少なくします。


OAuthは、覚えておく必要のあるパスワードが少ないことも意味します。 ウェブサイトサービスごとに異なるパスワードを使用することをお勧めします。 したがって、の別のパスワードを記憶する代わりに、Facebookのパスワードを使用してサービスにアクセスするだけです。 ところで、パスワードは表示されません。


OAuthを介してアクセスするリソースを制限することもできます。 たとえば、Facebookでゲームをプレイするとき、ゲームを自分に代わってウォールに投稿するかどうかを指定できます。


開発者向けに、OAuth 2.0は認証、ソーシャルインタラクション表示、ユーザープロファイル表示用に既に開発されたコードを提供します。 これは、APIがすでにデバッグ、テスト、および実証されているため、開発者が対処するバグが少なくなり、リスクが低くなることを意味します。 最後に、自分のサーバーに保存するデータが少ないというメリットもあります。

OAuth 2.0の登場

OAuthがセキュアコンピューティングとさまざまなWebサービスの使いやすさを求める声に応えていることは明らかです。 一方、OAuth 2.0は、OAuthの複雑さを軽減する必要性から生じました。 しかし、両方のアイデア全体は、実際にはOpenIDから来ました。


OpenIDは、ユーザーが別のWebサイトのログイン資格情報を使用してさまざまなサービスにログインできるようにするサービスです。 しかし、OpenIDは非常に限られていたため、自分のサイトのさまざまな承認プロトコルに取り組んでいるグループが集まりました。 最初のOAuth実装は2007年に行われ、最初の改訂は2年後に行われました。


OAuth 2.0は2010年に登場しました。その目的は、クライアントと開発者のシンプルさに焦点を当て、ユーザーエクスペリエンスを向上させながら、より簡単にスケーラブルにすることでした。

今後の課題?

Google、Klout、その他の有名企業はOAuth 2.0を実装していますが、このプロトコルにはまだ道のりがあります。 プロトコルのセキュリティに関する懸念を含む、OAuth 2.0コミュニティ内からの批判があります(OAuth 1.0よりも安全性が低いと多くの人が信じています)。


Hammerによると、Webセキュリティに精通した有能なプログラマーが使用すると、OAuth 2.0は機能します。 残念ながら、この法案に適合する開発者はごく少数です。


また、OAuth 2.0コードは再利用できません。 たとえば、Facebookで使用されるOAuth 2.0プロトコルは、他のサイトではすぐに使用できません。 さらに、新しいプロトコルは実際には元のプロトコルよりもはるかに複雑です。


しかし、多くの人にとって本当のキッカーは、OAuth 2.0が1.0に対して実際の利点や改善を提供していないように見えることです。 Hammerは、1.0を正常に実装している場合、2.0にアップグレードする理由はないと書いています。


ただし、OAuth 2.0はまだ非常に有効です。 提起されている批判や問題に対処する場合でも、非常に強力なプロトコルとしての場所を見つけることができます。 ただし、執筆時点では、バージョン1.0はまだ、OAuthの公式で安定したテスト済みバージョンと見なされています。 それでも、オンラインの世界で有名人と仕事をすることを目指す開発者にとって、このプロトコルを安全に実装することは、それほど遠くない将来の重要なスキルセットになるかもしれません。

Oauth 2.0 101