首页 > 解决方案 > OAuth 访问令牌是用户特定的吗?

问题描述

我们需要为我们的 web 应用程序添加新功能,该应用程序是用asp.net core 3.1angular编写的,它会在Zoom(视频会议服务提供商)中创建新的预定会议。目前这是唯一的要求,所以从表面上看,这听起来很简单。事实上,他们的 api 有据可查且易于使用。现在,由于我们在服务器上使用asp.net 核心,我们可以使用它的缓存功能,如会话、内存中缓存 ( IMemoryCache ) 等。我在完成图片时缺少的知识是关于OAuth访问令牌. 我不确定Zoom发行的访问令牌是否特定于刚刚通过身份验证/授权并想要创建新会议的用户或我们的网络应用程序(按照OAuth的条款,我们将我们的网络应用程序称为客户端)。所以这里的意思是我们需要为访问令牌选择合适的存储机制。如果是在用户级别,即特定于我们应用程序当前使用它的用户,我们需要将令牌存储在asp.net core的 Session 存储中,但另一方面,如果令牌是,比方说上一层我们需要全局存储令牌,可能在 asp.net 内核的内存缓存中,即IMemoryCahce东西。这是我需要了解的主要问题。关于将访问令牌保留在服务器上,这是我从阅读有关该主题的一些材料中了解到的最佳实践。

非常感谢,
阿希隆

标签: c#restasp.net-coreoauth-2.0dotnet-httpclient

解决方案


要回答您的问题,假设正在使用授权代码流,是的,访问令牌是特定于用户的。这是因为令牌是个人用户在第 3 方 OAuth 提供程序中执行的身份验证的结果。

尽管客户端访问令牌是 OAuth 规范中的一个概念,但面向用户的第 3 方应用程序通常不会提供广泛的权限并坚持逐个用户的基础(甚至不支持 client_credentials 授权)。


推荐阅读