IdentityServer 4:如何在机密验证之前绕过 ClientSecrets 数据库?

问题描述 投票:0回答:1

我们正在使用已弃用的 IdentityServer4。我们有一个客户端和一个身份服务器。当客户端进行身份验证时,客户端将其 Secret 发送到 IdentityServer。身份服务器从它自己的数据库加载秘密(表:ClientSecrets,列:值),并将它们与来自客户端的秘密进行比较以进行身份验证。我们如何绕过数据库,以便 IdentityServer 使用代码中定义的 Secret,而不是在身份验证过程中从数据库查询 ClientSecrets.Value?也许有可用的钩子吗?

c# asp.net asp.net-core identityserver4
1个回答
0
投票

我以前用过它。如果我没记错的话,Identityserver4 会获取 clientsecret(又名密码)并在身份验证步骤中生成令牌。然后,用户获取该令牌(默认有效期为 60 分钟)并将其作为标头请求的一部分发送。 Identityserver 获取此令牌,对其进行解密并验证该秘密并将其与数据库中的现有值进行比较。

根据您的问题,我假设您为 Identityserver4 设置了单独的数据库。但是,在我们的设置中,我们根据 Identity 希望我们如何命名、种子和设计它们,在现有数据库之上添加了 Identityserver 特定表。这样,身份就可以与数据库上的现有用户一起使用。希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.