SSO OAuth2Authentication会话和服务器端http请求



我有兴趣的机会,使服务器端http请求web服务器实现相同的SSO认证。

因此,假设我有:hello.orghey.com,它们指向同一个SSO服务器。在我登录hello.org后,我得到:
OAuth2Authentication authenticationObject = (OAuth2Authentication) principal; 

现在我想从hello.org服务器向hey.com

发送http请求
Request.Get("hey.com/get_data").execute().returnContent().asString(); 

但是我碰到认证错误码401。

我如何从OAuth对象中检索所有所需的令牌并使我的请求经过身份验证?

站点hello.org不应该使用提供给调用hello.org的客户端的令牌来调用hey.com。该令牌将被视为经过身份验证的用户和hello.org之间的契约。

hello.org服务器需要它自己的被授权访问hey.com的客户端。

所以解决这个问题的一个常见方法是创建一个"hello.org to hey.com"客户端,使用针对sso提供程序的密钥或证书身份验证,然后使用那里提供的令牌调用hey.com,然后将信息中继回hello.org的用户。

现在,如果你想通过hello.org调用hey.com,而用户不知道hey.com曾经参与过信息提供。

另一方面,如果您想让用户通过hello.org登录来访问hello.org和hey.com,您应该检查OpenId或SAML,因为简单的Oauth并不是真正为SSO或资源共享而设计的。

最新更新