定义的api资源与我们在资源服务器开发的api的对应关系

Correspondence between defined api resources and apis that we develop in a resource server

定义的API资源与我们在资源服务器中开发的API资源有什么对应关系? 我的资源服务器应用程序中有一些 API。如果我理解正确的话,这些 API 是在 IdentityServer4 中定义的。

使用 IdentityServer4.AccessTokenValidation 使用以下代码设置客户端应用程序以安全地使用 apis:

app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
  Authority = "http://localhost:5000",
  RequireHttpsMetadata = false,                
  ApiName = "api1"
});

问题是我必须为上述 MW 中的 ApiName = "api1" 提供哪个 API?任何客户端应用只能使用一个 api?

感谢您的澄清。

您将在受 Identityserver4 保护的 API 中使用 IdentityServer4.AccessTokenValidation。 ApiName 应该是 IdentityServer 中定义的 ApiResource 的名称。客户端只需让客户端从 IdentityServer 请求更多范围,就可以访问多个 Api。

您可以在启动时添加 ApiResource,例如: services.AddIdentityServer().AddInMemoryApiResources(new[] { new ApiResource("Api1", "Api1") });