Identityserver4 Identity Server4自省端点身份验证与客户端凭据

Identityserver4 Identity Server4自省端点身份验证与客户端凭据,identityserver4,Identityserver4,我对MVC/Webforms场景中带有引用标记和内省端点的用例有点困惑 我的基本问题是,为什么内省端点仅设置为允许来自ApiResource凭据(api1/apisecret)的身份验证请求,而不允许客户端凭据?我可以将下面的代码与ApiResource凭据一起使用,我只是未经授权使用客户端凭据。我认为这是设计好的 我想让我们的系统管理员能够撤销令牌并强制注销用户。我的计划是使用CookieAuthenticationProvider的OnValidateId实体定期验证引用令牌,并在需要时强制

我对MVC/Webforms场景中带有引用标记和内省端点的用例有点困惑

我的基本问题是,为什么内省端点仅设置为允许来自ApiResource凭据(api1/apisecret)的身份验证请求,而不允许客户端凭据?我可以将下面的代码与ApiResource凭据一起使用,我只是未经授权使用客户端凭据。我认为这是设计好的

我想让我们的系统管理员能够撤销令牌并强制注销用户。我的计划是使用CookieAuthenticationProvider的OnValidateId实体定期验证引用令牌,并在需要时强制注销。我认为我可以通过短期的自包含JWT令牌和刷新令牌获得类似的功能,但喜欢使用引用令牌的简单性。显然,我可以在同一个应用程序中使用两组凭据,一组用于客户端,另一组用于ApiResource,但是使用/管理一组凭据(客户端的凭据)更直观。我不应该为服务器端受信任的应用程序使用引用令牌吗

我的客户机设置如下

AllowedGrantTypes = GrantTypes.HybridAndClientCredentials, AccessTokenType = AccessTokenType.Reference, AllowedGrantTypes=GrantTypes.HybridAndClientCredentials, AccessTokenType=AccessTokenType.Reference, 以下是我研究中的一些笔记

以下是关于内省端点的文档-

这是Dominick Baier关于参考代币的帖子-

下面是我正在使用的内省客户端调用的一个示例

这是内省规范,正如您所看到的,它没有指明所需的身份验证类型。-

为了防止令牌扫描攻击,端点还必须要求
访问此端点的某种形式的授权,例如客户端
OAuth 2.0[RFC6749]中描述的身份验证或单独的 OAuth 2.0访问令牌,如OAuth中描述的承载令牌 2.0承载令牌使用[RFC6750]。管理和验证这些身份验证凭据的方法不在此范围内
规格

这是一个包含秘密的ApiResource的示例

// simple version with ctor new ApiResource("api1", "Some API 1") { // this is needed for introspection when using reference tokens ApiSecrets = { new Secret("apisecret".Sha256()) } }, //带ctor的简单版本 新的ApiResource(“api1”、“某些api1”) { //当使用引用标记时,这是内省所必需的 ApiSecrets={newsecret(“apisecret.Sha256())} }, 以下是ConsoleIntroSectionClient的示例客户机表单

new Client { ClientId = "roclient.reference", ClientSecrets = { new Secret("secret".Sha256()) }, AllowedGrantTypes = GrantTypes.ResourceOwnerPassword, AllowedScopes = { "api1", "api2.read_only" }, AccessTokenType = AccessTokenType.Reference }, 新客户 { ClientId=“roclient.reference”, 客户机密= { 新密码(“Secret.Sha256()) }, AllowedGrantTypes=GrantTypes.ResourceOwnerPassword, AllowedScopes={“api1”,“api2.只读”}, AccessTokenType=AccessTokenType.Reference },