簡體   English   中英

Spring-Security-OAuth2中的grant_type

[英]grant_type in Spring-Security-OAuth2

我是OAuth2概念的新手,我必須在我的應用程序中實現它。 該應用程序提供REST API。 我做了一些教程,做了一些研究,並在我的應用程序中以工作狀態實現了它。

但是在進行一些搜索時,我了解了OAuth2中不同類型的grant_type 我試圖了解這一點,但是並沒有實際的區別,應該使用它來保護REST API。 因此,我想知道對於grant_type類型應該使用的“ password”,“ client_credential”等類型,在哪種情況下,或者應該使用哪種類型來保護REST API?

同樣在某些地方,我發現對/oauth/token的請求是不同的。 在某些地方, Authorization標頭被指定為Basic 'some_encoded_string' 在某個地方是Bearer'some_encoded_string'。 這些要求有什么區別?

總結一下,我有2個問題-

  1. 對於grant_type類型的“ password”,“ client_credential”等應在哪種情況下使用,或在保護REST API的情況下應使用?

  2. /oauth/token請求令牌的方式有什么區別?

在實施spring-security-oauth2方面啟發我的知識。

您需要使用的授予取決於您的用例和訪問資源的客戶端應用程序的性質。 通常,沒有授予可應用REST API資源的授權。 您需要提供有關API是什么以及如何與它們交互的更多信息。

如果用戶必須授予其客戶端訪問API的權限,則通常使用“授權代碼”授予。 如果客戶端在沒有最終用戶干預的情況下直接訪問資源,則通常使用“客戶端憑據”授予。

在大多數情況下,應避免使用password授予,因為這意味着用戶必須向客戶端應用程序提供其用戶名和密碼。 如果應用程序可以使用其他授權,例如授權代碼,那么這是更可取的。 用戶可能會在其計算機上安裝的受信任應用程序(例如本機應用程序)可能是使用密碼授予的一種情況。

客戶端通常將使用“基本”身份驗證來訪問令牌端點。 “承載者”身份驗證用於訪問受保護的資源(例如您的API),並傳遞從授權服務器獲得的訪問令牌。

為什么您認為根本需要使用OAuth2? 我很好奇,因為您說您不明白贈款的目的。 在判斷如何使用OAuth2或原因之前,您確實需要了解這一點。

暫無
暫無

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

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