Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用标识(cookie/令牌、服务器体系结构)了解Identityserver4_C#_Asp.net Core_Asp.net Identity_Identityserver4 - Fatal编程技术网

C# 使用标识(cookie/令牌、服务器体系结构)了解Identityserver4

C# 使用标识(cookie/令牌、服务器体系结构)了解Identityserver4,c#,asp.net-core,asp.net-identity,identityserver4,C#,Asp.net Core,Asp.net Identity,Identityserver4,我在了解整体情况时遇到了一些问题,即如何理解所有情况。对于初学者来说,这是一个大话题 当Identity的Cookie和所有默认模板/页面与IdentityServer结合使用时,当Identity发布令牌时,它们有什么意义 为什么即使在使用SPA客户端时,这些页面也包含在所有示例中?这不是通过API授权/认证/注册的全部要点吗 我看到很多人建议在自己的项目中应该有IdentityServer,然后在本地网络上单独设置用户数据库,这怎么可能呢?我还没有找到一个这样的样品 为什么需要将userda

我在了解整体情况时遇到了一些问题,即如何理解所有情况。对于初学者来说,这是一个大话题

当Identity的Cookie和所有默认模板/页面与IdentityServer结合使用时,当Identity发布令牌时,它们有什么意义

为什么即使在使用SPA客户端时,这些页面也包含在所有示例中?这不是通过API授权/认证/注册的全部要点吗

我看到很多人建议在自己的项目中应该有IdentityServer,然后在本地网络上单独设置用户数据库,这怎么可能呢?我还没有找到一个这样的样品

为什么需要将userdatabase从资源API中分离出来,而组合的IdentityServer4和Identity不是它自己的API吗


感谢您的时间和帮助。

Identity Server应该始终是一个单独的项目,并且应该是唯一可以直接访问用户数据库的项目。是Identity Server上的一个不错的视频,也是一个更新的视频,是一个很棒的github repo,我使用的项目已经基本完成。希望能有所帮助。

想象一个组织有几个网站,每个网站都为用户提供服务。通过使用OAuth/OpenID Connect,该组织将从以下几个方面受益:

  • 它获得单点登录,这意味着用户只需要创建一个帐户 他们将能够使用本组织的所有服务
  • 它可以为其他网站和服务提供对其资源的访问 (机器对机器)具有订阅和限制(客户端) 凭证)。例如,该组织可能有一个天气API 可由其他应用程序使用的
  • 它可以代表用户提供对其资源的访问。例如,它可能有一个流行的相册创建网站,而其他人有一个流行的照片编辑器和效果网站。如果此照片编辑器网站可以从该网站的相册中导入用户的照片(当然要征得他们的同意),那就太好了
架构和流程(我将跳过技术内容和OAuth流程):

我们有一个专门的IdentityServer4网站,负责创建和记录用户帐户。其他任何人都不能访问用户数据库

现在,该组织的一个网站(我们称之为相册)想要登录用户,情况如下:

  • 首先,它将用户重定向到IS4网站
  • 用户登录时,IS4网站集在浏览器上为其自己的网站设置了一个cookie(因此,用户下次登录时,他/她将登录),并使用令牌或代码将用户重定向回相册
  • 相册在幕后做了很多事情(例如,它可能用一个令牌交换代码),最后它有一个带有用户信息的令牌。此时,Photo Album还将此信息存储在cookie中,以便用户下次访问时登录
现在,该组织的另一个网站(我们称之为Online Drive)想要登录用户:

  • 首先,它将用户重定向到IS4网站
  • IS4网站识别用户(通过之前设置的cookie),并使用令牌或代码将用户重定向回在线驱动器
  • Online Drive在幕后也做了很多事情,它还将用户的信息存储在cookie中,以便用户下次来到这里时登录
现在,第三方网站(我们称之为照片编辑器)希望访问相册中用户的照片:

  • 首先,它将用户重定向到IS4网站(并指定要访问的内容)
  • IS4网站会识别用户(通过之前设置的cookie),并向用户显示一个同意页面,询问用户是否可以让照片编辑器访问其指定的资源(例如相册)
  • 如果用户接受,IS4将使用令牌或代码将用户重定向回Photo Editor,此时Photo Editor可以调用相册的API并访问用户的资源

我希望我能提供帮助,我建议您阅读《保护外围设备手册》和IdentityServer文档。

嘿,谢谢您的简要解释,但您已经完全排除了netcore的身份。我也在尝试寻找有关全局的资源,我同时使用identity server和.net identity。你能帮我找到正确的源代码吗?我认为你应该在深入研究代码之前了解全局,以避免混淆。对于大局,我推荐书籍(一个例子是“保护外围环境”),对于OAuth/OIDC的ASP.NET核心实现,我推荐。