2017-11-18 211 views
1

如何限制來自未知源的openid連接請求。限制來自未知源的openid-connect userinfo請求

如果我們有訪問令牌,任何人都可以請求我們想要限制的用戶信息(我們正在保存用戶信息和聲明到用戶信息中)。

表示,我們應該允許來自已知客戶端的請求。

注意:我們使用Keycloak作爲身份服務器

請幫忙!!

回答

0

首先,訪問令牌必須與用戶憑證一樣受到保護。 OAuth2.0框架給我們的是能夠用動態生成的令牌替換基於用戶名/密碼的認證/授權。因此這些令牌必須受到保護。這就是爲什麼TLS是令牌傳輸的必要條件。

RFC6749 section 10.3 - 訪問令牌憑據(以及任何 機密的訪問令牌屬性)必須在 運輸和儲存保密,只有授權 服務器之間共享,資源服務器的訪問令牌是有效的,以及發放訪問令牌的客戶端 。訪問令牌 只能使用TLS進行傳輸,如 第1.6節所述,服務器認證由[RFC2818]定義。

因此,如果您擔心訪問令牌被濫用,您必須首先擔心採用基於令牌的通信。您的客戶必須足夠安全,不要誤用令牌。

您還可以做的另一件事是啓用CORS頭來限制對端點的訪問。但是,這只是在保護令牌之後。

p.s或者,網絡配置可以設置爲只允許已知/有效的IP地址與您的後端進行通信。但是這不在OIDC協議中。

+0

謝謝!但是,我沒有得到實際答案,是的,我們正在保護訪問令牌。實際上,如果用戶通過未知來源或郵遞員訪問令牌,任何用戶都可以請求用戶信息。我想限制這一點。並分享細節,如果請求來自我們的客戶(微服務)只。 – Nick

+0

@Nick正如您在示例中給出的那樣,您是不是使用有效訪問令牌發送郵遞員請求?這意味着如果您的訪問令牌受到保護並且沒有其他方可以獲取它們,則它們將無法從userinfo端點獲取信息。該協議的保護僅限於訪問令牌(我的答案解釋了原因)。或者,可以調整網絡以將目標受衆以外的IP地址列入黑名單。但是從網絡角度來看。 –