2017-10-04 140 views
0

我有一個使用OAuth 2.0與第三方服務交流的Web應用程序。我希望我的服務器和我的網絡應用程序代表用戶與授權服務通話。我會按照正常的授權步驟進行重定向,獲取授權碼,並將其交換爲訪問令牌以及所有爵士樂。完成後,我的服務器具有訪問令牌並可以與服務通話。不過,我希望網絡應用程序也可以與服務通話,所以我不必通過我的服務器路由所有內容。OAuth訪問令牌是否保密?

我可以將訪問令牌發送到Web應用程序,以便我可以實現此目的嗎?或者,訪問令牌是否應該在我的服務和服務之間保密,絕不會向用戶披露,就像客戶端的祕密一樣?

我試着在規範和各種博客文章中找到這個答案,但沒有找到明確的答案。我知道對於客戶端應用程序隱含的auth方法根本不涉及服務器端組件。因此,我最初的猜測是我可以將令牌發送給客戶端。我想驗證這一點,但。

回答

2

令牌被認爲是非常敏感的信息,因爲它允許訪問服務。任何人如果擁有此令牌都可以發出請求。

這就是令牌傳遞到Authorization Header中的原因,這就是爲什麼強烈建議您通過https進行所有調用,以保護標頭和正文信息。這也是爲什麼建議代幣短壽命的原因,以至於如果確實有人妥協了,代價不會持續太久。

是的,你可以在你自己的應用程序之間共享這個令牌,它應該可以工作,只要令牌的接收者不存儲調用者的IP地址或者具有其他一些檢查機制。

然而理想的情況是您需要爲需要訪問的每個應用程序發佈一組不同的ClientID和Client Secret。

不要忘記,這是應用程序向接收方標識自己的方式,它對於報告和分析目的可能很重要。