Python 微服务如何在授权 header 中使用 JWT 验证请求?
How can a Python Microservice verify requests using a JWT in an Authorization header?
OpenID 2 或 OIDC 的各种 python 库似乎专注于 Python 中实现的完整 Web 客户端,这些客户端参与完整的 OAUTH2 登录舞蹈。在 Python 和 Flask 中实现的 API 微服务如何验证在 Authorization
header 中将 JWT 作为 Bearer 令牌提供的传入请求,然后从中提取声明信息智威汤逊?
JWT 实际上是非常简单的东西,因此编写自己的代码来处理它们非常简单。也就是说,为什么要重新发明轮子?我建议使用 pyjwt
库 (https://pyjwt.readthedocs.io/en/latest/)。尽您所能。
从协议的角度添加一些见解。
JWT 验证由 JWT 规范本身定义。 RFC7519 JSON Web Token (JWT) contains section 7.2. Validating a JWT 指定您必须在令牌接收端点中执行的操作。欢迎大家仔细阅读,让大家有正确的认识,不会造成安全漏洞。
当然,语言实现作为其他答案很容易获得。但总的来说就是这些步骤。
- 提取 JWT 部分:Header、Body 和 signature
- 浏览 Header 内容并识别 JWT 类型及其类型 (JWS vs JWE)
- 验证签名或验证加密
- 解码并阅读 body 使用自定义或所需验证
一旦您收到来自 body 的声明,就由您来决定了。但是,如果您收到 OIDC ID 令牌,请根据 specification's guide
对其进行验证
OpenID 2 或 OIDC 的各种 python 库似乎专注于 Python 中实现的完整 Web 客户端,这些客户端参与完整的 OAUTH2 登录舞蹈。在 Python 和 Flask 中实现的 API 微服务如何验证在 Authorization
header 中将 JWT 作为 Bearer 令牌提供的传入请求,然后从中提取声明信息智威汤逊?
JWT 实际上是非常简单的东西,因此编写自己的代码来处理它们非常简单。也就是说,为什么要重新发明轮子?我建议使用 pyjwt
库 (https://pyjwt.readthedocs.io/en/latest/)。尽您所能。
从协议的角度添加一些见解。
JWT 验证由 JWT 规范本身定义。 RFC7519 JSON Web Token (JWT) contains section 7.2. Validating a JWT 指定您必须在令牌接收端点中执行的操作。欢迎大家仔细阅读,让大家有正确的认识,不会造成安全漏洞。
当然,语言实现作为其他答案很容易获得。但总的来说就是这些步骤。
- 提取 JWT 部分:Header、Body 和 signature
- 浏览 Header 内容并识别 JWT 类型及其类型 (JWS vs JWE)
- 验证签名或验证加密
- 解码并阅读 body 使用自定义或所需验证
一旦您收到来自 body 的声明,就由您来决定了。但是,如果您收到 OIDC ID 令牌,请根据 specification's guide
对其进行验证