我正在使用
构建一个Web应用程序截至目前,尚无计划构建移动应用。我正在学习.Net Core并偶然发现IdentityServer4是一种在asp.net核心应用程序中提供身份的推荐方法。我浏览了所有文档,示例并尝试了一些示例应用程序。我想我很清楚身份服务器的配置和工作流程。
我的问题是
我很感激您对此的微小或重大反馈。
答案 0 :(得分:2)
IdentityServer非常适合处理访问许多受保护资源的许多客户端。您似乎有一个客户端(所谓的AngularJS 4+应用程序)和一个资源,Asp.net Core 2.0 Web API。
清楚的一点是,您不需要ASP.NET身份以及Google,LinkedIn等所有中间件。如果您的客户端是真正的Angular javascript应用程序,那么它不需要像ASP这样的服务器端组件.NET Core-它只是一个浏览器应用程序。您可以使用像oidc-client这样的javascript库,并根据自己的需要配置外部身份验证提供程序。您将收到一个id_token和/或access_token,以便存储在浏览器中并完全传递给您的Api资源。
说到您的Api资源,此应用程序可以直接与令牌发行者进行验证,无论是Google还是Facebook或其他任何人。
使用此设置:(a)浏览器应用程序(Angular),(b)服务器WebApi(ASP.NET CORE)和(c)以及身份/访问控制服务(Google,Facebook等)您当然不需要运行ASP.NET Identity或IdentityServer4的任何其他应用程序。似乎没有它们会更容易。
如果你的Angular应用程序实际上是在ASP.NET MVC中,那么同样如此。
如果您的Angular应用程序和WebApi都属于一个ASP.NET项目,那么同样如此,您只需要一个身份提供程序来返回id_token。