Identity Server 4 - 如何定义支持的授权类型等

mmr*_*mmr 2 openid-connect asp.net-core identityserver4

在当前的 ASP.NET Core 项目 ( v2.1.6) 中,Identity Server 4 ( v2.2.0) 是为用户和 API 身份验证而实现的,它的工作原理非常棒。唯一grant_type被设置为客户端是client-credentialsscopes被设置到一些自定义范围offline_access容许。

访问后.well-known/openid-configuration发现支持的范围grant_types比指定的多,offline_access即使它被禁用(为简洁起见缩短)也是支持的范围:

{
  "scopes_supported": [
    "custom_scope_1",
    "custom_scope_2",
    "offline_access"
  ],
  "grant_types_supported": [
    "authorization_code",
    "client_credentials",
    "refresh_token",
    "implicit",
    "password"
  ],
}
Run Code Online (Sandbox Code Playgroud)

IdentityServer4的文档但找不到如何设置这样一个选项的线索。我偶然发现了一个可能较旧的文档,但这似乎不是当前版本的一部分。

是否有可能在我刚刚错过的配置期间明确定义支持的授权类型?还是自动生成的,根本无法设置?

sel*_*ape 5

我相信这些都是 IdentityServer4 支持的;即它的能力。

您可以在此处查看它们是如何添加的(第 223 行);简短的回答是它们基于服务器功能/配置,而不是单个客户端。


您可以使用您希望它在ClientGrantTypes集合中启用的授权类型单独配置每个客户端。

如果您使用内存中的 Client 集合,则AllowedGrantTypes在那里调用它们。


另外:由于 .well-known/openid-configuration 是一个开放标准概念,而不是 IdentityServer 概念,您可以在此处查看以上内容的确认。

grant_types_supported

可选的。包含此 OP 支持的 OAuth 2.0 授权类型值列表的 JSON 数组。