0

我的 API 应该支持“官方”应用程序以及第三方应用程序。对于官方应用程序,我不希望用户明确授予访问权限(登录后)。

我是对的,只要我将 redirect_uri 限制为http://official.service.tdl之类的东西,我就可以跳过“允许”屏幕?或者这是否有我没有想到的安全隐患?

4

2 回答 2

0

由于重定向 URI 来自客户端浏览器,因此您不能保证有人不会设置他们的浏览器来更改 URI 以使其看起来像是来自您的官方 URI。那么问题就变成了,如果第三方应用程序绕过显式访问,您会遇到什么安全问题。

于 2012-12-06T19:46:57.400 回答
0

对于官方应用,假设它们是机密客户端,您可以使用client credentials grant. 听起来官方app和你的API会有预先建立的关系,而且你的组织也控制着访问服务器。在client credentials grant客户端中,客户端可以直接与访问服务器对话并获得一个令牌以与您的 API 一起使用。

如果您想在重定向 uri 来自您的公司时绕过用户授权,那么您应该查看Authorization Code Redirection URI Manipulation,特别是

In order to prevent such an attack, the authorization server MUST
ensure that the redirection URI used to obtain the authorization code
is identical to the redirection URI provided when exchanging the
authorization code for an access token.  The authorization server
MUST require public clients and SHOULD require confidential clients
to register their redirection URIs.  If a redirection URI is provided
in the request, the authorization server MUST validate it against the
registered value.

并且您需要确保没有任何与您的重定向 URI 匹配的开放重定向。

或者您可以只让用户授权访问一次并使用刷新令牌,这样他们就不需要重新授权访问。

于 2012-12-06T22:31:06.027 回答