asp.net-mvc - JWT token 通常对于使用跨源有效吗?

标签 asp.net-mvc azure asp.net-core jwt

我有一个通过 Azure AD 使用开放 ID 身份验证的 Web 应用程序。它需要与另一个使用相同形式的身份验证的 Web 服务进行跨域对话。通常是否允许将相同的 token 传递给其他 Web 服务?

例如,我知道我无法跨源传递 cookie。 JWT token 中内置的保护是否会导致我类似的问题?

最佳答案

JWT 只是一种对声明进行编码的方式。 cookies 则不同。最终,它们只是通过请求/响应 header 在客户端和服务器之间来回传递的数据。 JWT 与其传输方式无关,而 cookie 则与传输的数据无关。其实现在auth cookies之类的数据一般都是JWT。

所以,不,一般来说,JWT 没有跨源策略,因为它只是编码某些数据的一种方式。然而,JWT 几乎总是至少经过签名,并且通常也经过加密。为了安全地读取签名的 JWT,您将需要共享签名 key ,当然要读取加密的 JWT,您将需要共享加密 key 或来自公钥/私钥的私钥使用非对称加密时配对。

总而言之,根据您具体在做什么,“共享”JWT 可能是不可能或不可行的,即使跨源在技术上不是问题。

通常使用像 AD 这样的集中式身份验证,每个应用程序都会独立地使用身份服务器进行身份验证,而不是将收到的 token 传递给另一个应用程序。

关于asp.net-mvc - JWT token 通常对于使用跨源有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52301471/

相关文章:

azure - 无法使用 Visual Studio Code 创建 Azure 逻辑应用工作流

azure - 如何修复 Azure WebApp 的 'The Azure-Ressource is not reachable'

asp.net-core - 从 Visual Studio 运行 ASP.Net core 应用程序时出现错误 "Unable to get the process ID of the IIS application pool ' xyz' 托管项目 'abc'

asp.net-mvc - OnExceptionAsync 与 OnException 之间的 ExceptionFilter 区别

c# - 更改 nopcommerce 默认操作

c# - ContentPage 控件 (mv) --> MasterPage 访问

c# - 提交表单导致 URL 中出现未知代码

Azure Blob 存储 : Replicating Geographically

asp.net-core - ServiceFabric 本地集群中的 HTTPS 通信

azure - DocumentDB - 存储遥测数据