ASP.. NET Core Web API + Angular 2授权和认证



我有一个Angular 2应用程序,它与Web API对话,并做一些基本的CRUD操作。我有几个问题:

  1. 是我可以在Angular 2中使用ASP创建登录/注册页面的任何方式。净身份?
  2. 我如何操作的数据只涉及到登录的用户?(基于令牌的认证?它是如何工作的?在哪里可以读到?)
  3. 如何在实际的Angular 2应用中实现登录/注册过程而不重定向到身份服务器?

我看了IdentityServer4, OAuth2和OpenID的例子,它有点太复杂了,无法理解。我在快速启动中经历了每一步,它可以工作,但我不明白它是如何和做什么的。

谁能给我一些资源,我可以从哪里开始?博客、网站、书籍、分步指南

你是正确的,在这一点上,在严重依赖HTTP的系统中,最全面的身份验证和授权解决方案是基于OAuth 2.0和OpenID Connect的。这当然包括SPA调用Web API后端的特定场景。想要进一步了解这个通用案例,你可以查看Auth0 SPA + API架构场景,或者看看你选择的技术的快速入门:

  • Angular2快速入门
  • ASP。. NET Core Web API快速入门

注意: Auth0支持OAuth 2.0/OpenID连接,所以即使文档可能有特定于提供商的额外功能,如果您确实决定走OAuth 2.0/OpenID连接路线,您可能会发现它们很有用。这是依赖标准的优点之一,它更容易在实现/提供者之间切换。

然而,你也应该考虑你是否真的需要完整的OAuth 2.0/OpenID Connect,因为它们旨在解决许多不同的用例,因此也带来了显著的复杂性。如果你走这条路,建议你利用现有的库,如IdentityServer或云提供商,如Auth0,因为做你自己的实现有很大的风险,需要大量的努力。

为了满足你在自己的Angular2前端提供集成登录的要求,你可能需要查看OAuth2指定的资源所有者密码凭证授予。

另一种选择是做你自己的定制解决方案,这通常是不赞成的,因为它很容易出错,但理论上是:

  1. 处理用户认证和注册(可能使用asp.net Identity)
  2. 在登录时用一些令牌交换用户凭证,您可以稍后使用这些令牌调用API

令牌可以只是一个随机的(不可猜测的)值,用作对某些服务器端存储的引用,该存储将包含有关关联用户的信息。

相关内容

  • 没有找到相关文章

最新更新