2017-06-01 102 views
1

看來,谷歌一直在現代化的本機應用程序的OAuth交互爲宣佈開始在這裏 https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html谷歌的OAuth 2.0安裝的應用程序和客戶端祕密不是祕密

,並就證明了他們目前的文檔頁面 https://developers.google.com/identity/protocols/OAuth2InstalledApp

我已經能夠成功地在引用的github倉庫中運行示例控制檯應用程序。

此流程使用客戶端密鑰和其他參數交換訪問令牌的授權代碼。然而,衆所周知(正如在參考文章中所述),客戶機密不能安全地存儲在已安裝的應用程序中。同一文章通過以下方式說明了這一事實:

該過程會生成客戶端ID,並且在某些情況下會生成客戶端密鑰,並將其嵌入應用程序的源代碼中。 (在這種情況下,客戶端機密顯然不是當作一個祕密。)

所以,如果這個流程是已安裝的應用程序推薦的流程,應該我們只是不擔心保護client_secret並嵌入它的權利在應用程序?如果是這樣,那麼這個流程如何呢?

另外,如示例所示,本地生成了一個隨機http重定向網址,該網址未在Google Developer Console的憑據頁面的任何位置註冊。這與Azure AD不同,您必須在註冊本機應用程序時明確重定向URI。

回答

2

Google授權服務器的行爲是根據您註冊的客戶端的類型進行門控的。

桌面和電視客戶端需要「客戶端機密」,但不支持iOS和Android,但對於所有4種本機應用程序類型,服務器都將客戶端視爲非機密,而「客戶端機密「價值實際上是客戶端ID的擴展。這與Web客戶端形成對比,在客戶端,假定客戶端祕密機密性得到維護,因此對於諸如增量式身份驗證之類的操作,可以對其進行不同處理。

關於重定向URI的註冊,這也在客戶端類型上進行了選通。對於某些類型的Web,需要手動註冊。對於其他類型的桌面,重定向URI是預先註冊的(在桌面上,http://127.0.0.1:*/*)。

相關問題