Nic*_*las 5 c# api visual-studio asp.net-core identityserver4
也许我要问的问题非常明显和简单,但是作为IdentityServer4的初学者,或者总体上或多或少的oAuth2,OpenID和API的初学者,我觉得很难理解。
我们公司的目标是使用身份验证和授权转向更安全的应用程序构建方式(Visual Studio 2017,C#、. NET Core 2)。经过几天的研究,我最终使用了IdentityServer4(也是因为文档确实很棒)。
遵循IdentityServer文档(https://media.readthedocs.org/pdf/identityserver4/release/identityserver4.pdf)直到第7章,我还剩下一本。
我正在尝试使用API后端构建MVC应用程序(网络)以检索/插入数据,以便以后可以将API用于SPA / Xamarin应用程序等其他应用程序。对于IdentityServer主机,我选择了具有asp.net身份的IdentityServer。我运行了它,一切都很好,但是仍然存在以下问题:
托管我想与IdentityServer主机一起处理数据库操作的API的缺点是什么?对我来说,有这么多不同的项目似乎不合逻辑,而(据我所知)这两个项目(API和IdentityServer主机)可以完美地结合在一起。
在(几乎)IdentityServer4的所有示例中,IdentityServer主机和API都是单独的项目,将两者作为单独的项目进行托管有什么好处。
我会说单一责任。
像这样对待它-Identity Server是一个框架,可为您提供针对客户端/ API的身份验证。而已!(当然,这都是根据您的规则,政策等完成的)。
Identity Server的目的不是从数据库中添加/编辑/删除用户。Identity Server的目的不是为此用户赋予角色。最重要的是-授权该用户不是Identity Server的目的。
所有这些都必须在您的客户端/ api中完成。
在您的情况下-您需要一个单独的API,该API将照顾用户(以及所需的其他数据),但是我想您希望此API受Identity Server保护。
这是分离的结果,应予以保留-Identity Server不应针对自己认证自己的API。
所有示例,文章等都包含单独的项目是有原因的。
PS:当然,有一些实现这一目标的例子(达米恩博德的那个很好)。
| 归档时间: |
|
| 查看次数: |
1434 次 |
| 最近记录: |