Blazor 服务器应用程序中的身份服务器和客户端机密

Identityserver and client secrets in a blazor server app

我有一个 Identityserver 和一个 Blazor 服务器应用 运行,我正在使用 code 工作流程来获取我的令牌。我的 blazor 应用程序有一个秘密,但刚刚发现,当我省略秘密并在客户端的配置中将 属性 RequireClientSecret 设置为 false 时,我也可以获得我的令牌在身份服务器中。我可以看到,这对于您不想使用 webapp 传输秘密的纯 javascript 应用程序是必需的。这是否也适用于 Blazor 服务器应用程序?我想不会,但我想确定,我不能那样泄露我的秘密。另一个问题是:如果我可以忽略这个秘密,在什么情况下仍然使用它会有用?据我了解,如果没有秘密,我只能通过控制重定向 uris 来防止有人不冒充客户端。例如。没有将本地主机作为产品上的有效重定向 uri。但除此之外,在 Blazor 服务器应用程序中,秘密还能给我什么? (当然,如果秘密不能通过 blazor 泄露的话)。

Blazor 服务器应用程序位于 ASP.NET 核心应用程序的进程中,并使用其 startup.cs 文件。因此它的所有配置只有服务器知道。 Blazor Server 应用程序中负责 websockets 连接的瘦 Javascript 客户端无法获取它。

Link discussing the benefit of Client Secrets in OAuth2