我是第一次使用identityServer4,我需要一些在我的asp.net核心项目中实现的帮助。我有许多基于asp.net核心的应用程序,它们的用户系统必须由公共服务器管理,因为它们没有相同的来源(http://ip:prot1和http://ip:port2)。到目前为止,我可以实现一个idetntyServer4来进行客户端加密身份验证。现在我不知道将用户数据返回到我的应用程序的正确流程是什么。
从网站A单击登录-->登录(应该在identityServer4中登录?) -->成功后-->重定向到发送页面(网站A)-登录的用户数据必须发回..它是如何发生的?现在我点击从网站a --> b -->应该发生什么?我如何获取系统知道的用户数据?
另一个问题是,为什么身份服务器需要一个用户存储?是否会保存此数据库中的登录数据?它不只是基于cookie吗?
最后一个问题:我应该把我的数据库中的用户查询api放在哪里?在identityServer4?
文档并不是很有帮助,因为它们没有显示流程。
你知道不是基于mvc的identityServer的快速入门吗(仅仅是剃刀页面)。它可以比他们的mvc快速入门更简单
希望我能在这里找到一些帮助:)
发布于 2021-01-25 11:50:28
QuickStart就是一个保护api的例子。当网站A点击登录时,它应该在identityServer4中发生。登录成功后,会将token发送到网站A,网站A可以使用该token访问api。
关于登录的用户数据和用户存储,您需要在identityserver上配置数据库,并使用identity来处理登录的用户。当用户登录成功后,它可以将用户信息保存在cookie中,您可以从cookie中检索用户信息。
关于用户查询,如果是关于身份验证的,需要放在身份服务器上。否则,请将其放到api上。
发布于 2021-01-26 21:39:36
谢谢你的回答。这对我们帮助很大。那么我想问你,我怎么才能在客户端获得当前的用户信息呢?你说我可以从cookies中获取用户信息,你的意思是在服务器上,对吗?我要把它交给客户。我只需要用代码查询我客户机中的user-id:
var userId = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;
然而,在服务器上定义的声明也无法在客户端获得它们,您知道如何在那里查询它们吗?感谢您的支持
https://stackoverflow.com/questions/65863982
复制相似问题