簡體   English   中英

使用Thinktecture IdentityServer3進行身份驗證/授權的本地Android應用程序的正確方法是什么

[英]What is the correct approach for authentication/authorization Native Android App using Thinktecture IdentityServer3

我開發了一個本地android應用程序,該應用程序完成了身份驗證,授權,並使用WebApi后端獲取資源。

在討論了什么是使用.NET技術實現身份驗證和授權的最佳和安全方式的許多討論之后,我們決定使用Thinktecture的IdentityServer3

在我按照本系列文章使用Asp.NET身份系統實現基於令牌的身份驗證之前,一切都很好,但是經過調查,我決定取消身份驗證服務器的耦合並使用Thinktecture的身份服務器。

因此,現在我在Azure上托管了一個單獨的Web應用程序,一個用於獲取資源,另一個用於使用IdentityServer3和一個本機Android客戶端進行身份驗證。

我的Android客戶端應用程序具有使用Facebook / Google的身份驗證,並且我之前已經在Android上使用Parse或基於Facebook Android SDK和Google服務分別實現了此功能

還具有角色的用戶。

現在我想知道從身份驗證服務器的角度以及客戶端android應用程序的角度來看是否有正確的方法,因為關於身份服務器3與本機應用程序的配置的許多討論也應該在android中使用webview活動來處理連接與身份驗證服務器配合使用,或將本機Java代碼與HTTP庫配合使用(例如翻新)來發送請求和獲取響應。

同樣在Facebook上,我已經直接使用Facebook Android SDK從android應用程序實現了身份驗證,我可以獲得AuthToken,我認為的方法類似於此問題所示

  1. 從Android應用程序向Facebook驗證用戶身份。
  2. 將FB身份驗證令牌獲取到android應用。
  3. 將身份驗證令牌和Facebook UID從Android轉發到Web服務器。
  4. 在Web服務器上,使用提交的令牌進行Facebook API調用。

如果來自網絡服務器的Facebook API調用返回了有效的身份驗證,並且用戶ID等於Android應用程序提交的用戶ID,則您的服務器可以信任該ID(並且您可以確定Android身份驗證是真實的)

還是我應該僅依靠后端身份服務器來處理Facebook身份驗證?

您可以使用混合流(如果需要訪問令牌和刷新令牌),也可以使用隱式流

看看這個話題

關於如何執行此操作,可以通過組合使用Web視圖和混合/隱式流來執行,也可以將重定向樣式設置為IdSvr登錄頁面。 使用資源所有者密碼流

暫無
暫無

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

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