【发布时间】:2019-06-03 19:07:36
【问题描述】:
我正在使用 Aspnet Core 构建一系列微服务。移动应用程序、桌面应用程序和 Web 应用程序将通过 Http REST API 使用服务。
对于用户身份验证,我使用的是 Aspnet Core Identity 平台,但我通过 REST API 公开了用户帐户的创建。客户端使用凭据信息进行 REST 调用,我的 API 使用 Microsoft 身份 API 来配置用户。用户将被授权通过使用 IdentityServer4 的身份验证服务器访问各个资源服务器。
我有两个问题无法从安全角度找到明确的指导。使用 Microsoft Identity 进行用户创建的 Aspnet Core 项目是否应该位于通过 IdentityServer4 处理身份验证的项目的独立 Aspnet Core 项目中?将两者分开是否有我需要考虑的缺点?
Microsoft Identity API 具有模板和 Razor 视图,可用于从服务器端的角度处理身份验证,包括帐户创建或登录时的重定向等。如果我通过 SPA 或客户端进行所有操作原生应用,只提供一个接受用户信息的 POST API,通过UserManager<T> 创建帐户并返回UserId,有什么问题吗?
我想提供一个专用的登录页面,类似于 FB/Google/Twitter 等,以便在任何想要授权用户使用我的服务的应用程序中进行身份验证。不过,我通常不会将帐户创建视为 OAuth 流程的一部分。您是否通常允许重定向到帐户创建页面,在成功创建帐户后重定向回客户端,或者该过程通常仅用于通过 OAuth 流程进行身份验证?
【问题讨论】:
-
您正在考虑的方法没有任何问题,您可以将 IDS4 作为单独的项目或与用户管理相同的项目。所有这一切都取决于您,这就是为什么您没有找到太多关于此的信息的原因,因为它的问题过于宽泛和固执己见。
标签: c# asp.net-core oauth-2.0 asp.net-identity identityserver4