2017-04-10 40 views
1

我想建立一個基於RESTful API的應用程序,我想提供一個方法來認證JWT和0auth(用於用戶訪問的JWT和用於應用程序訪問的0auth)。
總之我想要做的:如何一起使用智威湯遜和0auth

User Access (Web App, Mobile App - JWT) 
------------------------>/
          -----------------------> /api/login 
          -----------------------> /api/logout 

Client's app (API KEY - 0auth) 
------------------------> /services/getInfo 
          /services/getProducts 

用戶可以使用Web應用程序,可能希望其應用程序的某些功能與我的服務進行整合,如Facebook,Github上等..
我不確定這種方法,因爲這是我第一次設計一個大的應用程序。
的問題如下:

  1. 我應該也應用程序中使用JWT進行身份驗證?
  2. 使用JWT,我可以跟蹤應用程序執行多少請求嗎?
  3. 我可以撤銷JWT令牌嗎?
  4. 0auth協議是否比JWT更好地通過應用進行身份驗證?

回答

0

Oauth 2.0是一個授權協議,它不應該用於認證。考慮爲您的方案使用Openid Connect。它在oauth之上工作,所以流程將與一些即興認證相同。

在這種情況下,您可以註冊您的應用程序,以便爲最終用戶以及應用程序內的呼叫使用相同的協議。

請探討客戶端憑證流程以進行應用程序訪問以及Web App的隱式/混合流程。

Openid連接使用jwt令牌進行身份驗證和授權。

身份驗證服務器3是經過認證的Openid連接實施。他們的文檔很好,他們有一個積極的支持論壇來幫助你查詢。

請參見:

https://www.safaribooksonline.com/library/view/identity-and-data/9781491937006/ch04.html

https://leastprivilege.com/2016/01/17/which-openid-connectoauth-2-o-flow-is-the-right-one/

https://github.com/IdentityServer/IdentityServer3

https://github.com/IdentityServer/IdentityServer3.Samples