Oauth 2.0 OAuth 2.0通过IdentityServer4为未经身份验证的用户提供一次性访问令牌

Oauth 2.0 OAuth 2.0通过IdentityServer4为未经身份验证的用户提供一次性访问令牌,oauth-2.0,asp.net-core,identityserver4,Oauth 2.0,Asp.net Core,Identityserver4,对于oauth术语的错误使用,我提前表示歉意 我有4个“当事人”如下(在可能的情况下故意不使用oauth术语): 浏览器中的最终用户(javascript) 我们的网站(aspnet) 我们的web api(aspnet) 我们的身份验证服务器(使用identityserver 4的aspnet) 我的使用场景是,我们只希望浏览器首先从网站请求页面,然后调用API。虽然API不会发布敏感信息,但我们希望引入一层关于被垃圾邮件攻击的API的复杂性 我们的最终用户将不会登录 我认为这样的流动类似

对于oauth术语的错误使用,我提前表示歉意

我有4个“当事人”如下(在可能的情况下故意不使用oauth术语):

  • 浏览器中的最终用户(javascript)
  • 我们的网站(aspnet)
  • 我们的web api(aspnet)
  • 我们的身份验证服务器(使用identityserver 4的aspnet)
我的使用场景是,我们只希望浏览器首先从网站请求页面,然后调用API。虽然API不会发布敏感信息,但我们希望引入一层关于被垃圾邮件攻击的API的复杂性

我们的最终用户将不会登录

我认为这样的流动类似于:

  • 浏览器从网站请求特定页面(可能导致js调用api的页面)
  • 网站从身份验证服务器请求令牌
  • 身份验证服务器验证来自网站的令牌请求(服务器本身)
  • 身份验证服务器向网站返回令牌
  • 网站返回包含访问令牌的页面
  • 浏览器能够使用令牌向api发出请求
  • 虽然复杂,但我相信这至少与客户端访问授权流类似

    然后,这些令牌可以被网站或身份验证服务器限制

    是的,我知道这并不能保护api不受许多其他向量的影响,但它确实消除了最简单的情况,而这正是我们目前想要实现的。我要补充的是,我没有定义这个要求,我只是想找到一种方法来实现它,利用技术,而不是犯错误的滚动我自己的任何东西

    有人能确认/否认我可以在这里使用oauth流吗?是否有使用给定流和IdentityServer的示例项目

    identityserver 3/非aspnet[core/5]示例很好,我可以翻译。

    您描述的是您的网站(客户端)从identityserver(身份验证服务器)获取访问令牌的位置。然后可以使用该访问令牌调用web API(资源服务器)上的端点

    令牌是一种承载令牌,任何拥有它的人都可以使用它,因此,如果您对您的网站通过HTTP响应将其传递回浏览器感到满意,那么它就可以正常工作


    我不知道你所说的限制代币是什么意思——一旦造币,它们在其生命周期内都是有效的。我想你可以把活得很短,以实现你想要的单一用途

    谢谢你的回答,@iandayman。您知道使用IdentityServer授予客户端凭据的任何示例吗?@Smudge202请查看