2016-02-25 23 views

答えて

11

ユーザーエージェントは、ユーザー(リソース所有者)が認可サーバーと通信するためのブラウザまたはモバイルアプリケーションです。 クライアントは、リソースサーバー上のユーザーのリソースにアクセスするアプリケーションコードです。

クライアントはサーバー(ウェブアプリケーションのような)やデバイス(モバイルアプリ)やブラウザ(JavaScriptアプリ)に居ることができます。 クライアントがサーバー上に存在する場合、秘密のクライアントとみなされます(秘密を保持することができます)。デバイス上またはブラウザ内に存在する場合、それは一般のクライアントです。

あなたが持っているクライアントのタイプは、OAuth grantsを使用するかどうかを決定します。パブリック・クライアントでは、クライアント自体が許可サーバーで認証されることはできません(ユーザーのみが認証されます)。したがって、認証サーバーからリフレッシュ・トークンを取得することはできません。

8

ユーザエージェントはブラウザです。

クライアントはエンドユーザー側で実行されているコードで、ブラウザで実行されている場合と実行されていない場合があります。クライアントはブラウザ(ユーザエージェント)を使用してログインします。ここでのアイデアは、ユーザーがブラウザの信用証明書を信頼する必要がありますが、ネイティブのクライアントコードを信用すべきではありません。最後の例。

リソース所有者とは、アプリケーションが自分のアカウントからリソース(データ)にアクセスすることを許可するユーザーです。

例:Flickrの写真にアクセスしたいあなたのipadにスライドショーアプリ(クライアント)があるとします。このスライドショーアプリは、MysteriousAppDeveloper Inc.によって開発されました。そのアプリがあなたの写真にアクセスできるようにFlickrの資格情報を提供するように頼んだ場合(セキュリティオーナーの場合)そのアプリがあなたの信任状で何をするか考えてください。幸いにも、あなたの資格情報を求めるのではなく、信頼するipadブラウザ(あなたのユーザエージェント)をFlickrにログインさせます。あなたはあなたのブラウザ経由でflickrにログインし、次にスライドショーipadアプリはあなたのFlickr写真へのアクセスを要求します。アクセスを許可すると、そのアプリはパスワードにアクセスすることなく、画像のスライドショー(アクセス制限付きの画像を含む)を表示できます。あなたは、スライドショーアプリがあなたの信任状を取っておらず、いたずらなことをしていることを知って、夜はよく眠ります。

Oauthの仕様は、私の意見ではうまく動機付けられていません。プロトコルの要点は、ユーザーが任意のアプリケーションを信用度で信頼してはならないことです。代わりに、皆さんがとにかく依存するブラウザのようなアプリケーションへの信頼を制限する必要があります。このプロトコルは、ユーザが効果的であることを理解することを要求する。

関連する問題