簡體   English   中英

Spring Security 5 OAuth2 客戶端密碼授予類型

[英]Spring Security 5 OAuth2 client password grant type

我有 2 個應用程序:

  1. Spring Application 1 是客戶端和資源服務器。
  2. Spring Application 2 是授權服務器。

用戶將能夠登錄應用程序 1 並訪問其資源。 我想實現以下流程:

用戶在登錄表單中輸入他的憑據 -> 應用程序 1 將使用用戶憑據及其具有密碼授予類型的clientId從應用程序 2 獲取令牌 -> 使用令牌訪問應用程序 1 的資源。

問題是 Spring Security 5 是否支持客戶端的密碼授予類型? 我在 Spring Security 5 實現中找到了所有剩余授權類型,但沒有找到密碼。

Spring Security 5.1.x 不支持,參見Spring Security Reference

6.6 OAuth 2.0 客戶端

OAuth 2.0 客戶端功能支持 OAuth 2.0 授權框架中定義的客戶端角色。

提供以下主要功能:

  • 授權碼授予
  • 客戶憑據授予
  • Servlet 環境的WebClient擴展(用於發出受保護的資源請求)

HttpSecurity.oauth2Client()提供了許多用於自定義 OAuth 2.0 客戶端的配置選項。

但是,您可以使用 Spring Security OAuth2,請參閱OAuth 2 開發人員指南

訪問受保護的資源

作為一般規則,Web 應用程序不應使用密碼授權,因此如果可以支持AuthorizationCodeResourceDetails ,請避免使用ResourceOwnerPasswordResourceDetails 如果您非常需要密碼授權才能從 Java 客戶端工作,那么使用相同的機制來配置您的OAuth2RestTemplate並將憑據添加到 AccessTokenRequest(它是一個 Map 並且是臨時的)而不是ResourceOwnerPasswordResourceDetails (在所有訪問令牌之間共享) .

或者您可以更新到 Spring Security 5.2.x,請參閱Spring Security 參考

11.2 OAuth 2.0 客戶端

OAuth 2.0 客戶端功能支持 OAuth 2.0 授權框架中定義的客戶端角色。

在高層次上,可用的核心功能是:

授權資助支持

  • 授權碼
  • 刷新令牌
  • 客戶憑證
  • 資源所有者密碼憑證

暫無
暫無

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

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