簡體   English   中英

ASP.NET Core Web API + Angular 2授權和身份驗證

[英]ASP.NET Core Web API + Angular 2 Authorization and Authentication

我有Angular 2應用程序,它與Web API對話並執行一些基本的CRUD操作。 我有幾個問題:

  1. 有什么辦法可以使用ASP.NET Identity在Angular 2上創建一個登錄/注冊頁面嗎?
  2. 如何使用數據進行操作僅與登錄用戶相關? (基於令牌的身份驗證?它是如何工作的?在哪里閱讀它?)
  3. 如何在不將我重定向到Identity Server的情況下在實際的Angular 2應用程序上實現登錄/注冊過程?

我查看了IdentityServer4,OAuth2和OpenID示例,理解起來有點過於復雜。 我快速啟動了每一步,它有效,但我不明白它是如何做的。

有人可以給我任何資源,我可以從哪里開始? 博客,網站,書籍,分步指南。

您是正確的,此時在依賴於HTTP的系統中,最全面的身份驗證和授權解決方案基於OAuth 2.0和OpenID Connect。 這當然包括您調用Web API后端的SPA的特定方案。 有關此通用案例的進一步閱讀,您可以查看Auth0 SPA + API架構場景,或查看專注於所選技術的快速入門:

注意 :Auth0支持OAuth 2.0 / OpenID Connect,因此即使文檔可能具有特定於提供程序的其他功能,如果您確實決定使用OAuth 2.0 / OpenID Connect路由,也可能會發現它們很有用。 這是依賴標准的優勢之一,在實現/提供者之間切換更容易。

但是,您還應該考慮是否真的需要使用完整的OAuth 2.0 / OpenID Connect,因為它們旨在解決許多不同的用例,因此也會帶來極大的復雜性。 如果您采用這種方式,建議您利用IdentityServer等現有庫或Auth0等雲提供商,因為執行自己的實施會帶來很大的風險,需要付出巨大的努力。

為了滿足您在自己的Angular2前端提供集成登錄的要求,您可以查看OAuth2指定的資源所有者密碼憑據授權。

另一個選擇是做自己的自定義解決方案,這通常是不贊成的,因為它很容易出錯,但理論是:

  1. 處理用戶身份驗證和注冊(可能使用ASP .NET身份)
  2. 登錄時,用一些令牌交換用戶憑證,您可以在以后用它來調用API

令牌可以是隨機(不可猜測)值,用作對包含關聯用戶信息的某些服務器端存儲的引用。

暫無
暫無

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

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