通过IdentityServer4

时间:2016-03-04 14:14:07

标签: oauth-2.0 asp.net-core identityserver4

我提前道歉,因为错误地使用了oauth术语

我有4个“派对”如下(故意不使用oauth术语):

  • 浏览器中的最终用户(javascript)
  • 我们的网站(aspnet)
  • 我们的网络api (aspnet)
  • 我们的auth服务器(aspnet利用identityserver 4)

我的使用场景是我们只希望首先从网站请求页面的浏览器调用API。虽然API不会发布敏感信息,但我们希望针对被发送垃圾邮件的API引入一层复杂性。

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

我想这样的流程类似于:

  1. 浏览器从网站请求某个页面(一个可能导致js进行api调用的页面)
  2. 网站从auth服务器请求令牌
  3. Auth服务器验证来自网站(服务器本身)的令牌请求
  4. Auth服务器将令牌返回到网站
  5. 网站返回包含访问令牌的页面
  6. 浏览器可以使用令牌
  7. 向api发出请求

    虽然令人费解,但我认为这至少与客户访问拨款流程类似?

    这些令牌可以由网站或auth服务器限制

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

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

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

1 个答案:

答案 0 :(得分:0)

您所描述的是Client Credentials Grant,您的网站(客户端)从identityserver(auth服务器)获取访问令牌。然后,该访问令牌可用于调用Web API(资源服务器)上的端点。

令牌是一个不记名令牌,任何拥有它的人都可以使用它,因此如果您对网站将其传回HTTP浏览器上的浏览器感到满意,那么它就可以正常工作。

我不确定你对这些令牌进行限制是什么意思 - 一旦铸造它们,它们的生命就是有效的。我想你可以保持很短的生存时间来实现你想要的单一用途。