2017-10-04 16 views
0

OAuth 2.0を使用してサードパーティのサービスと通信するWebアプリケーションがあります。私は、サーバーと私のWebアプリケーションの両方が、ユーザーに代わって許可されたサービスと話をしたいと思っています。私は、リダイレクト、認証コードの取得、アクセストークンの交換、すべてのジャズなどの通常の承認手順を実行します。完了すると、私のサーバーはアクセストークンを持っており、サービスと話すことができます。しかし、私はウェブアプリケーションをサービスにも話してもらいたいので、私は自分のサーバーを通してすべてをルーティングする必要はありません。OAuthアクセストークンは機密情報ですか?

アクセストークンをWebアプリケーションに送信して、これを実現できますか?または、アクセストークンは、私のサービスとサービスの間で秘密にされているはずですが、クライアントの秘密と同じように、ユーザーには決して公開されませんか?

私は仕様書やさまざまなブログの投稿でこれに対する回答を見つけようとしましたが、いずれの方法でも決定的な回答は見つかりませんでした。私は、サーバー側のコンポーネントをまったく含まないクライアント側のアプリケーションのための暗黙のauthメソッドがあることを知っています。そのため私の最初の推測は私がクライアントにトークンを送ることができるということです。私はこれを確認したいと思います。

答えて

2

トークンは、サービスへのアクセスを許可するため、非常に機密情報とみなされます。このトークンを持っていれば、誰でもリクエストを発行できます。

トークンが認証ヘッダーに渡されるのは、このため、ヘッダーと本文の情報を保護するため、httpsですべての呼び出しを行うことを強くお勧めします。これはまた、トークンの寿命が短く、実際に侵害された場合には長続きしないように推奨されています。

はい、トークンの受信者に発信者のIPアドレスも格納されていない場合や、他のチェックメカニズムがある場合は、自分のアプリケーション間でこのトークンを共有できます。

ただし、アクセスが必要な各アプリケーションに対して異なるClientIDとClient Secretのセットを発行するのが理想的です。

これは、アプリケーションが受信側に自分自身を識別する方法であり、レポートと分析の目的で重要である可能性があることを忘れないでください。

関連する問題