Gab*_*yer 7 asp.net asp.net-mvc asp.net-web-api asp.net-core-mvc asp.net-core
目前,我有两个客户端使用相同的API,一个Xamarin Forms应用程序和一个ASP.NET Core MVC项目。我们决定不必在MVC项目中使用Entity并必须重写API中已经编写的大部分内容,而是决定对两者都使用相同的API(在过程中隔离数据库)。
但是,我一直难以尝试使Identity适应这种情况。基本上,我们需要在此MVC客户端中请求登录信息,然后使用单独的API来访问服务器并验证此信息。
似乎有几种不同的方法可以解决此问题,尽管由于涉及该特定场景的文档不足,因此我还无法决定一项/一项工作。
理想情况下,我们希望能够在此客户端MVC项目中使用Identity的[Authorize]和其他有用的标签,但是还没有找到在此过程中引入我们自己的API的方法。有任何想法吗?
身份的核心是用户管理框架。身份验证/授权功能仅与切向相关。当您开始谈论需要授权许多不同的应用程序,尤其是不同类型的应用程序(例如移动应用程序和网站)时,那么您需要开始寻找集中式身份提供商。如果您想自己动手制作游戏,IdentityServer就是镇上唯一的游戏。对于托管解决方案,您可以考虑使用Auth0或Azure Active Directory之类的方法。
无论您选择哪种方式,都需要针对不同情况利用各种流程。移动应用通常会使用OAuth流进行以用户为中心的操作,而通用的非用户特定请求可能会使用客户端凭据。对于网站,您将使用Cookie身份验证和OIDC流。如果您需要通过AJAX之类的方法来支持客户端身份验证的请求,则您的API将利用客户端凭据或混合身份验证流。
简而言之,在这里进行研究是无可替代的。您需要深入研究,弄清楚需要支持什么以及如何支持它。但是,无论使用哪种流程,都需要一个集中的身份提供程序将其全部实现。
就是说,ASP.NET Core中的身份验证和授权中间件不与任何特定提供程序绑定。根据最终的用途,您可能会或可能不会继续使用ASP.NET Identity(IdentityServer可以与之集成,但是诸如Auth0之类的东西将拥有它自己的用户管理)。但是,这完全与您继续使用Authorize属性等功能无关。
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |