当前位置: 首页 > 知识库问答 >
问题:

也需要ID令牌才能访问APIendpoint

曾宏毅
2023-03-14

让我们举一个例子,其中SPA使用OIDC隐式流访问API。

由于OAuth作用域是粗粒度的,因此通常需要在资源服务器上执行额外的授权。例如,当通过endpoint访问动态资源(例如文件系统)时,可能会出现这种情况——在endpoint中,访问受到与用户ID相关的权限的限制,但仅使用OAuth作用域是不实际的,因为资源具有动态性。

在这些情况下,endpoint本身可以受到OAuth范围的保护,而对endpoint运行的资源(例如文件)的访问将根据userId授予。因此,必须在API请求中安全地发送用户的身份。

一个显而易见的选择可以是发送身份验证时获得的ID令牌,以及同时获得的访问令牌。

有一种在HTTP请求中发送访问令牌的标准方法(授权标头),但是否有一种用于ID令牌的方法?或者我应该只编造一个标头名称,例如“X-身份”?

共有2个答案

胡夕
2023-03-14

您可以将其作为查询参数传递,而不是在标题中传递:

curl”https://resourcePath?auth=

以下是参考资料:https://firebase.google.com/docs/database/rest/auth#authenticate_with_an_access_token

闾丘卓
2023-03-14

回答这个问题:在HTTP请求中传递ID令牌没有标准。

但可以说不需要这样做:在这种情况下,您可能不需要OpenID Connect,因为正如您所建议的那样,作用域并不是唯一可以与OAuth 2.0访问令牌关联的信息。

您可以将用户ID与访问令牌“关联”,以便资源服务器可以根据向客户端授予访问令牌的用户的身份,授予客户端对受保护资源的访问权限。

“关联”取决于实现:访问令牌可以是包含userId声明的JWT,或者访问令牌可以是资源服务器可以在授权服务器上内省/验证以获取与之关联的信息的不透明值。

 类似资料:
  • 我目前正在尝试使用ADFS 2016认证angular 7应用程序(使用angular-oauth2-oidc)。到目前为止,它工作得很好。当我访问应用程序时,我被重定向到ADFS登录页面,在那里输入我的凭据并获得令牌。 现在,当应用程序调用web API时,它在请求头中发送访问令牌。ADFS返回的访问令牌如下所示: 问题是web API必须知道进行调用的用户的ID(因为在应用程序级别定义了一些权

  • 我正在尝试调用我已被指示的API: 这需要一个授权头:承载访问令牌。 我有承载访问令牌,并尝试通过邮递员,并通过C#使用WebRequest,没有任何效果。 在Postman中,我将方法设置为GET,将授权设置为No Auth,在Headers选项卡上,我尝试添加一个标题,如下所示: 标头:“授权” 值:“我的令牌” 我也尝试过 标题:“Bearer”值:“mytoken” 也 标头:“授权” 值

  • 我试图理解为什么客户端中的匿名用户不能获得访问令牌。 我在Spring博客上找到了这篇关于这个主题的帖子,Dave Syer对此做出了回答: 请记住,这是一个与客户端应用程序有关的问题,而不是auth服务器,所以请尝试从cllient的角度来看它。在步骤1。有一个用户试图访问受保护的资源。如果您不能对该用户进行身份认证,那么您的所有用户最终都将获得相同的访问令牌(第一个用户使用他在auth服务器上

  • 我想要一些关于如何在隐式授予流中使用ID令牌和访问令牌的澄清。我有一个使用msal.js for Angular包的Angular SPA和一个Web API。API不调用任何外部服务,如MSFT Graph。后端仅使用JWT中的角色声明来建立对API功能的RBAC授权。 这个文档写着:https://docs.microsoft.com/en-us/azure/active-directory/

  • 在我最近的遭遇中,我试图实现在前端安全存储的JWT令牌。我以前的方法是在易受XSS攻击的sessionStorage中存储以及。现在,当过期时,我将调用endpoint来获取新的 之后,我们更改实现以防止XSS和CSRF。接下来,Local存储与Cookie 建议将访问令牌存储在内存中,并将刷新令牌存储在cookie中。所以从FE,我们无法访问cookie。(HTTPOnly cookie)和 现

  • 访问令牌凭据(以及任何机密的访问令牌属性)在传输和储存时必须保持机密性,并只与授权服务器、访问令牌生效的资源服务器和访问令牌被颁发的客户端共享。访问令牌凭据必须只能使用带有RFC2818定义的服务器身份验证的1.6节所述的TLS 传输。 当使用隐式授权许可类型时,访问令牌在URI片段中传输,这可能泄露访问令牌给未授权的一方。 授权服务器必须确保访问令牌不能被生成、修改或被未授权一方猜测而产生有效的