谁为 Identity Server 4 提供客户端 ID 和客户端密码?

Posted

技术标签:

【中文标题】谁为 Identity Server 4 提供客户端 ID 和客户端密码?【英文标题】:Who provides client id and client secret with Identity Server 4? 【发布时间】:2021-08-07 20:06:28 【问题描述】:

我正在学习 oAuth2.0 以及如何在应用程序中使用 Identity Server 4,我对此有一个疑问。

当我们使用 Identity Server 4 创建我们的应用并在本地运行它(它还没有部署到任何地方)时,我们定义了我们的客户端 ID 和客户端密码。

当我们在某处部署应用程序时会发生什么?

我们是否从我们部署到的服务中获取客户端 ID 和客户端密码,并将其放在配置中的某个位置?

或者我们将我们定义的客户端 ID 和客户端密码放入我们部署应用程序的服务中? 我不确定这是如何工作的

【问题讨论】:

【参考方案1】:

IdentityServer(IS4) 的主要工作是管理用户的身份。它负责身份验证和授权(如果其中配置了声明)。 this thread是对它的非常详细的解释。

说实话,当我遇到 IS4 时,我自己发现它非常混乱。我是 C# 的新手,突然我的雇主让我处理它。然而,随着时间的推移,我意识到它的美丽和普遍的灵活性。您应该查看this series 以了解更多信息(以及一般 C# 中的身份管理)。

要回答您的问题,您不仅要部署 IS4,还要部署您的客户端(API 或 MVC 应用程序)。您的客户端将依靠身份服务器进行身份验证。此客户端将由您配置到 IS4 中。如果您同时开发两者,则必须配置将使用令牌和 IS4 的客户端。如果您只在客户端上工作,那么您只需将客户端 ID 和密码提供给 IS4 开发人员,该人员将进行配置。如果你两者都做,那么你必须将你的客户建立为 IS4 中的允许客户。这些配置通常存储在用于开发目的的 C# 类中,并移动到一个表中(IS4 附带的迁移),在那里可以很容易地添加或删除它们。

最后一个提示,请记住,您无法像学习其他堆栈那样快速地学习它。这是非常灵活的东西,因此有太多的配置要求。如果你花时间去理解它是可以的。诚实地尝试一下。

【讨论】:

以上是关于谁为 Identity Server 4 提供客户端 ID 和客户端密码?的主要内容,如果未能解决你的问题,请参考以下文章

Identity Server 4 - 如何解决客户端注销后访问令牌仍然有效?

使用Identity Server 4建立Authorization Server - js(angular5) 客户端

Identity Server 4 - 检查 iframe 会话问题 - oidc 客户端

令牌服务器上自定义端点的 Identity Server 4 客户端凭据

Identity Server 4 原理和实战(完结)_单点登录实例(添加Flask客户端,Express.js的API)

Identity Server 4 Admin 开源项目