[英]How to save OAuth2 access token in Client / Browser when calling Resource APIs with Bearer token as Authorization Header
[英]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.