从发现文档 [IS4] 中删除不受支持的授权类型

Remove unsupported grant types from discovery document [IS4]

我们正在对我们的 OAuth(基于 Identity Server 4)服务器进行尽职调查,我注意到一些奇怪的事情。我们有几个客户端设置,它们都使用授权流程或设备流程,有些使用离线访问(刷新令牌),仅此而已。然而,发现文档列出了额外的授权类型:

"grant_types_supported": [
    "authorization_code",
    "client_credentials",
    "refresh_token",
    "implicit",
    "urn:ietf:params:oauth:grant-type:device_code"
],

我知道如果客户端本身不允许,IS4 将不允许隐式流,但是为了清洁和正确,如果可能的话,我想只列出实际支持的授权类型。我什至不确定 implicitclient_credentials 来自哪里,我似乎也无法在 IdentityServerOptions

中找到与此相关的任何内容

您无法编辑默认类型,因为它们是 DiscoveryResponseGenerator 中的 hard-coded。

但您可以实现自己的 IDiscoveryResponseGenerator 并在 DI 中替换它。

另一个选项是从发现文档中隐藏所有授权类型。 使用 Discovery.ShowGrantTypes 属性 of IdentityServerOptions class.