【发布时间】:2018-09-17 00:10:22
【问题描述】:
我一直在阅读和观看有关 Identity Server 4 的大量内容,但我仍然对此感到有些困惑,因为它似乎有很多活动部件。
我现在知道它是一个单独的项目,它负责对用户进行身份验证。我仍然不明白用户如何注册它?谁存储用户名/密码?
我打算进行此设置
Reactjs front end
Asp.net Web Api Core 2
Identity Server
那么它会起作用吗?到目前为止,我看到的所有视频都在谈论如何在内存用户中进行测试,但他们从未谈论过注册它。
我看过一些视频,他们有一个现有的数据库,然后将其连接到 Identity Server 4 并检查该数据库。然而,当你注册新人时,他们不会谈论你是否从头开始,甚至在他们的场景中。
编辑
Camilo Terevinto 提出了使用“ASP.NET Core Identity”的观点,我一直在研究它并有一些问题。
我现在对这个的理解是这样的
- 一个用户来到我的 reactjs 站点并想要登录
- 被发送到 Identity Server 4 (IS4) 并输入凭据
- IS4 查看包含 ASP.NET Core 标识表的数据库并验证用户
- 如果一切正常,它会转到 IS4 表并添加所需的任何内容。
- 发回用户和令牌。
- 现在 Reactjs 可以访问我的 web api 并从中获取其他数据。
我的问题是如果用户正在注册会发生什么。
-
一个用户来到我的 reactjs 网站并想要注册
-
用户查看我的 html/reactjs 表单并填写
-
信息被发送到 webapi 并存储在 ASP.NET Core 身份表中
-
现在,我必须将用户发送到我现在必须登录的 IS4 吗?这似乎很糟糕。
同样在这种情况下,什么会阻止某人通过注册向我的 api 发送垃圾邮件,因为它是一个开放的端点。
【问题讨论】:
-
你是对的,IdentityServer 一开始可能有点压倒性。请记住,重要的是提供分离,这样您的应用程序就不必依赖任何特定的身份验证机制。同时,您将采用一些标准,让您的应用程序与不同的提供商(联合身份)一起工作。 IdentityServer 具有高度可扩展性,提供本地身份验证机制(在其自己的密码数据库中 - 内存中或持久化)和外部身份验证机制(在另一个身份提供者处 - 如 Google 或 ADFS)。你的技术栈对我来说似乎很明智
-
最好阅读官方文档而不是观看视频。例如,这里是描述如何使用 Entity Framework 配置它的快速入门(它可以与许多不同的数据库一起使用):docs.identityserver.io/en/dev/quickstarts/…
-
@Evk 是的,这就是我现在正在研究的内容,将它们作为我的下一步,但不知道为什么,但我得到了我的 Identity Server 项目和一个 web api 项目,但每次我放一个授权标签打开,页面是404而不是401,没有它的标签。
-
页面是 404 而不是 401 - 检查获取 404 时应用程序尝试调用的 url 是什么。通常这是因为当身份验证失败时 ASP.NET 尝试重定向到不退出的默认 url - 这就是为什么你得到 404
标签: c# asp.net-core identityserver4