簡體   English   中英

在yii2-oauth2-server中需要client_id和client_secret的資源所有者授權類型

[英]Resource Owner grant type requiring client_id and client_secret in yii2-oauth2-server

為什么密碼grant_type必須提供客戶端憑據(在此實現中)??? oauth2資源所有者規范只需要

{
    "grant_type" : "password",
    "username" : "some_user_name",
    "password" : "some_password"
}

此實現還要求client_idclient_secret與此請求一起發送以成功。

我只是想知道我是否遺漏了什么

請參閱http://andyfiedler.com/2014/09/how-secure-is-the-oauth2-resource-owner-password-credential-flow-for-single-page-apps

我想授予從SPA到受保護資源的訪問權限。 在瀏覽器源代碼中公開客戶端憑據具有潛在的危險性。

此外, https://bshaffer.github.io/oauth2-server-php-docs/overview/grant-types/上的原始庫不會強制資源所有者授予類型中的客戶端憑據

更新1 13-12-2016

在原始圖書館閱讀時,我發現他們有“公共客戶”概念(即沒有client_secret的客戶端)。

使用公共客戶端,我可以從請求中省略client_secret。 無論如何,我再次閱讀資源所有者規范,並沒有提到它。

這樣,必須以這種方式執行資源所有者令牌請求(非標准)

{
    "grant_type" : "password",
    "username" : "some_user_name",
    "password" : "some_password"
    "cliend_id" : "some_client_id"
}

再見

謝謝

出於參考目的,OAuth2規范確實滿足了這樣的情況:即使客戶端身份驗證無法完成,沒有機密的客戶端仍然可以在請求正文中傳遞client_id參數。 在2.3.1節中,您有:

(...)授權服務器可以使用以下參數支持在請求體中包含客戶端憑證:

CLIENT_ID
需要。 在第2.2節描述的注冊過程中發給客戶端的客戶端標識符。

client_secret
需要。 客戶的秘密。 如果客戶端密鑰是空字符串,則客戶端可以省略該參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM