簡體   English   中英

使用OAuth2在Spring Security中進行用戶授權

[英]User authorization in spring security using OAuth2

我目前正在調查具有彈簧安全性和彈簧啟動的OAuth2。 盡管該協議的概念對我來說很清楚,但實現細節尚不清楚(spring沒有提供許多示例和教程供您使用)。 因此,我非常感謝您回答以下問題:

  1. “密碼”授予類型的目的是什么? OAuth2規范沒有提及。 僅僅是Spring某種“授權快捷方式”的實現?
  2. 資源服務器如何處理訪問令牌(檢查它是否仍然有效,范圍等)? 我是否需要實現某些東西,或者它是Spring Security和ResourceServerConfig提供的?
  3. RS如何知道哪個用戶(而非客戶端)已請求資源? 特定的用戶資源與ID,唯一的用戶名等綁定,令牌是否具有此類信息? 我如何檢索它以便在資源控制器中使用?
  4. 授權服務器(如果我錯了,請更正我)可以檢查客戶端應用程序是否有權訪問所請求的資源。 據我了解,它不應該知道用戶(資源所有者)。 在我通過Google,Facebook或其他服務進行身份驗證的情況下,用戶身份驗證就是這種情況。 OAuth2和Resources Server是一個應用程序(我目前正在為測試目的而開發這種應用程序)的應用程序又該放置UserDetailsS​​ervice呢? 以及如何組合它以便首先授權客戶端(在這種情況下是從應用程序生成的js),然后再授權用戶(資源所有者)並生成令牌? 目前,我已經實現了ClientDetailService並注入了配置。 我應該在哪里注入UserDetailService?

     @Configuration @EnableAuthorizationServer public class OAuth2Config extends AuthorizationServerConfigurerAdapter { @Autowired private AuthenticationManager authenticationManager; @Autowired private MongoClientDetailsService cds; @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { endpoints.authenticationManager(authenticationManager); } @Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception { clients.withClientDetails(cds); } } 
  5. 是否有一些JS庫有助於自定義應用程序(如hello.js)的授權流程,該程序支持(據我所知)眾所周知的服務?

任何幫助,將不勝感激:)

有很多問題; 讓我首先回答3:

  1. 帶有password值的grant_type是“資源所有者密碼憑據”授予類型的官方保留值,如此處的規范所示: https : grant_type ,因此它不是Spring具體或自定義

  2. 如果令牌是自包含的和結構化的(例如,JWT),則RS可以驗證令牌本身,否則它將需要回調到授權服務器以對其進行驗證

  3. 步驟2的驗證結果。其中可能包含有關授予客戶端訪問權限的用戶(或:資源所有者)的信息

暫無
暫無

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

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