2016-10-21 11 views
2

私は、同じSSO認証を実装するWebサーバーにサーバー側のHTTP要求を行う機会に興味があります。SSO OAuth2Authenticationセッションとサーバー側HTTP要求

だから私は持っていると仮定します。hello.orghey.com同じSSOサーバをポイントします。私は私が得hello.orgにログインした後 は:

OAuth2Authentication authenticationObject = (OAuth2Authentication) principal; 

今、私はhello.orgサーバーからのHTTPリクエストを発射したいhey.com

Request.Get("hey.com/get_data").execute().returnContent().asString(); 

しかし、私ヒット認証エラーコード401

OAuthオブジェクトからすべての必要なトークンを取得し、私の要求をau Thenticated?

答えて

1

サイトhello.orgは、hello.orgを呼び出すクライアントに提供されたトークンを使用してhey.comを呼び出すはずではありません。このトークンは、認証されたユーザーとhello.orgの間の契約とみなされます。

hello.orgサーバには、hey.comへのアクセスが許可されたクライアントが必要です。

これを解決する一般的な方法の1つは、「hello.org to hey.com」クライアントを作成して、ssoプロバイダに対して鍵または証明書の認証を行い、そこで提供されたトークンを使用してhey.comを呼び出し、情報をhello.orgのユーザーに送り返します。

これは、hello.orgでhey.comに電話をかけたい場合で、hey.comが情報提供に関わったことをユーザーが気づかない場合です。

一方hello.orgとhey.comの両方にアクセスできるようにするには、hello.orgでサインインする必要があります.Outhは実際にSSO用に設計されていないため、OpenIdまたはSAMLをチェックアウトする必要がありますまたはリソース共有。

関連する問題