我的API應該支持「官方」應用程序以及第三方應用程序。對於官方應用程序,我不希望用戶明確授予訪問權限(登錄後)。如果沒有「允許」屏幕,我可以使用access_token重定向嗎?
我是對的,只要我將redirect_uri限制爲http://official.service.tdl之類的東西,我就可以跳過「允許」屏幕?或者這有沒有我想過的安全隱含?
我的API應該支持「官方」應用程序以及第三方應用程序。對於官方應用程序,我不希望用戶明確授予訪問權限(登錄後)。如果沒有「允許」屏幕,我可以使用access_token重定向嗎?
我是對的,只要我將redirect_uri限制爲http://official.service.tdl之類的東西,我就可以跳過「允許」屏幕?或者這有沒有我想過的安全隱含?
對於官方應用程序,假設他們是機密客戶端,則可以使用client credentials grant
。這聽起來像官方的應用程序和您的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。
或者您可以讓用戶授權訪問一次並使用刷新令牌,這樣他們就不需要重新授權訪問權限。
由於重定向URI來自客戶端瀏覽器,因此您不能保證有人不會設置其瀏覽器來更改URI,使其看起來像來自您的官方URI。接下來的問題就是,如果第三方應用繞過顯式訪問,會遇到什麼安全問題。