簡體   English   中英

Web API、Web 應用程序和移動應用程序之間的身份驗證

[英]Authentication Between Web API, Web App and Mobile App

我有三個應用程序 Web API,MVC 應用程序(Web 應用程序),Java 本地應用程序(移動應用程序)。 我需要從 web api 驗證我的 web 應用程序和移動應用程序。 那么哪種身份驗證最適合這種情況?

請幫助我,我有開發 MVC 應用程序的經驗,但是使用 Web API 對我來說是新的,對於同樣的 android 來說,這對我來說也是新的?

我建議閱讀以下內容: https : //docs.microsoft.com/en-us/dotnet/architecture/microservices/secure-net-microservices-web-applications/

它將為您提供不同的身份驗證和授權選項。 您可以選擇使用 Google 或 Facebook 等社交身份服務器,或者使用您自己的身份提供商。 在這兩種情況下,您需要了解的協議是:

  1. 查看 openid connect 是什么: https : //openid.net/connect/

OpenID Connect 1.0 是 OAuth 2.0 協議之上的一個簡單的身份層。 它允許客戶端根據授權服務器執行的身份驗證來驗證最終用戶的身份,並以可互操作和類似 REST 的方式獲取有關最終​​用戶的基本配置文件信息。

  1. 查看什么是 oauth 2.0: https : //oauth.net/2/

OAuth 2.0 是用於授權的行業標准協議。 OAuth 2.0 專注於客戶端開發人員的簡單性,同時為 Web 應用程序、桌面應用程序、移動電話和客廳設備提供特定的授權流程。

對於 Web 應用程序 SPA 使用隱式授權

對於本機應用程序,請在此處閱讀: https : //www.oauth.com/oauth2-servers/oauth-native-apps/

當前行業最佳實踐是在省略客戶端密鑰的同時使用授權流程,並使用外部用戶代理來完成流程。

最后但並非最不重要的是,如果您想創建自己的身份提供者,您可以將開源身份服務器用於 openid connect 和 oauth2: https : //docs.microsoft.com/en-us/dotnet/architecture/cloud-native /身份服務器

我建議您使用 Web 令牌並在您的 Web API 項目中實現它,我鼓勵您觀看這些系列視頻來做到這一點,它描述了如何在 Asp.net Core Web API 項目中實現 JWT:

  1. 使用 JWT(JSON Web 令牌)的 ASP.NET Core 身份驗證
  2. 帶有自定義處理程序的 ASP.NET Core 身份驗證
  3. ASP.Net Core 中基於角色的授權(使用自定義身份驗證處理程序)
  4. ASP.Net Core 中基於策略的授權(使用自定義授權處理程序)
  5. ASP.Net Core 中的 JWT 刷新令牌(深入探討)

該系列將幫助您在您的 Web API 中構建 JWT,如果您想實現 OAuth 2.0 和 OpenID,您可以閱讀該協議的指南,您將自行實現,它不是默認實現的。

[編輯] 看過那個系列后,你可以使用Microsoft.AspNetCore.Authentication.OpenIdConnect for OpenID,這篇文章會很有幫助.NET Core 2.x native OpenID Connect example

暫無
暫無

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

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