簡體   English   中英

OAuth2資源服務器在與授權服務器通信時是否應使用Basic或Bearer token auth?

[英]Should OAuth2 resource servers use Basic or Bearer token auth when communicating with the authorization server?

給定單獨的spring-security-oauth2授權和資源服務器:

我希望授權服務器的/oauth/check_token端點在Authorization標頭中接受來自資源服務器的Bearer令牌,但它只接受Basic auth。 注意:我指的是請求身份驗證令牌,而不是要檢查的令牌。

我認為OAuth2AuthenticationProcessingFilter負責提取和驗證Authorization: Bearer ... ,但是基於javadoc它似乎只被資源服務器用來驗證來自用戶或其他客戶端的請求。

資源服務器在與授權服務器通信時是否始終提供Basic身份驗證? 什么是最佳做法? 如果Bearer令牌是可接受的,是否需要通過@EnableResourceServer將授權服務器配置為資源服務器才能獲得此功能?

來自Javadoc for CheckTokenEndpoint

控制器為無法執行此操作的客戶端(或使用不透明令牌值的客戶端)解碼訪問令牌。

由於客戶端使用Basic auth授權訪問授權服務器進行身份驗證,因此/oauth/check_token端點也需要Basic身份驗證。

通常,資源服務器接收的令牌是自編碼的(或由令牌存儲支持),因此無需通過直接與授權服務器通信來檢查令牌。 資源服務器和授權服務器之間的通信不是必需的

如果確實需要與授權服務器進行交互,則可能是在使用JWT時獲取其公鑰。 但是在保護此端點方面沒有實際用途,因為它有一個公共密鑰。 同樣,這將在資源服務器啟動時發生,當然不會發生在它接收的每個令牌上。

暫無
暫無

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

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