2015-08-19 164 views
13

我使用Spring Security OAuth2並且當前實現了client_credentials和密碼授權類型。我注意到客戶有範圍和權限。有人能解釋一下有什麼不同嗎?更具體地說,我使用JDBCTokenStore,數據庫模式有一個oauth_client_details表。Spring oauth2範圍vs權限(角色)

此外,

在oauth_client_details表,我不知道下面的字段用於 :

web_server_redirect_url,access_token_validity,refresh_token_validity

一些澄清將是非常有益和讚賞。

+0

我有同樣的問題。 [發現斯普林斯幻燈片上的演示文稿](http://www.slideshare.net/SpringCentral/syer-oauth-model),其中說它們區分範圍和權限:用戶令牌使用範圍,客戶令牌 - 權限。但我找不到任何理由去做。你終於找到答案了嗎? – pls

+0

我發現的是它沒有被定義 - 這真的取決於你,實施OAuth2服務器的人。下面的帖子很好地說明了可以使用什麼範圍。 – m1s4mike

+3

[UAA範圍和權限之間的區別](https://stackoverflow.com/questions/35691051/difference-between-scope-and-authority-in-uaa) – EagleRainbow

回答

9

我注意到一個客戶既有範圍和當局

客戶端只有範圍,但我們可以考慮/使用它作爲一個主管部門(角色)。這是因爲OAuth規範沒有解釋範圍的具體用法。

考慮到這一點,用戶授權twitter將用戶的tweet發佈到facebook。在這種情況下,twitter將具有作用域write_facebook_status。雖然用戶有權更改用戶的個人資料,但這並不意味着Twitter也可以更改用戶的個人資料。換句話說,範圍是客戶機構/角色,而不是用戶權限/角色。

web_server_redirect_url

這將由授權服務器用於將請求重定向到成功授權之後其原始地址或回調(授權許可)。

access_token_validity

這是以秒token_access到期時間。設爲-1或0表示無限。如果您將其設置爲60,則1分鐘後您的token_access將會失效。您必須通過執行授權過程或使用refresh_token來請求新令牌。

refresh_token_validity

這refresh_token到期時間。

+0

的可能重複「,因爲OAuth規範沒有解釋具體範圍的使用「。請解釋你爲什麼這麼認爲。也許有些鏈接可以進一步解釋它? –

+0

@ AlikElzin-kilaka你可以在這裏找到它https://tools.ietf.org/html/rfc6749#section-3.3 – MangEngkus