【问题标题】:Why round trip to introspection point on each call?为什么每次调用都要往返于自省点?
【发布时间】:2019-09-01 13:25:45
【问题描述】:

对于每个受保护的 API 调用,我都看到了对身份服务器自省端点的调用。我可以阻止这种情况发生吗?

我们有一个使用隐式流的 React 应用程序。当应用程序接收到访问令牌时,它会被用来使用访问令牌调用另一个 Web API。我们注意到的是每次调用都会调用自省端点。

我认为每次调用时都不需要针对颁发者验证 JWT 令牌。

我有以下应用设置:

services.AddAuthentication("Bearer")
                .AddIdentityServerAuthentication(options =>
                {
                    options.Authority = identityServiceUri;
                    options.ApiName = "SMAppServices";
                    options.RequireHttpsMetadata = false;
                });

【问题讨论】:

  • 除非您设置内省,否则它们不会。默认情况下未启用。
  • 你会在哪里设置?你是说我们在身份服务器中禁用它?如果是这样,如果其他应用程序需要自省怎么办?
  • 因此,只有在令牌类型不是 JWT 而是引用令牌时,才会默认使用自省。因此,如果您使用的是 JWT,则根本不应该获得自省行为,但是您的问题现在没有任何设置展示,因此无法提供任何进一步的帮助。 docs.identityserver.io/en/latest/topics/apis.html
  • 您提供的链接使用 AddJwtBearer() 而不是 AddIdentityServerAuthentication()。这是问题所在吗?如果是,为什么?
  • 这不是问题。首先,您需要了解您的 react 应用程序是什么类型的客户端,以及它是否配置为使用 ref 令牌。所有这些都在身份提供者配置中。

标签: c# reactjs asp.net-core identityserver4


【解决方案1】:

您可能已将访问令牌类型设置为引用类型。您可以在 IdentityServer 的客户端配置中检查这一点。 Client 类中有一个名为 AccessTokenType 的属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-19
    • 2018-06-13
    • 2018-12-19
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多