繁体   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