Python微服务如何在授权头中使用JWT验证请求?

2024-04-25 06:46:26 发布

您现在位置:Python中文网/ 问答频道 /正文

OpenID2或OIDC的各种python库似乎关注于用python实现的完整web客户机,这些客户机参与完整的OAUTH2登录舞蹈。用Python和Flask实现的API微服务如何验证在Authorization头中提供JWT作为承载令牌的传入请求,然后从JWT中提取声明信息


Tags: apiweb信息声明flask客户机jwtoauth2
2条回答

JWT实际上非常简单,因此编写自己的代码来处理它们非常简单。也就是说,为什么要重新发明轮子?我建议使用pyjwt库(https://pyjwt.readthedocs.io/en/latest/)。做你想做的一切

从协议角度添加一些见解

JWT验证由JWT规范本身定义RFC7519 JSON Web Token (JWT)包含7.2. Validating a JWT节,该节指定在令牌接收端点中必须执行的操作。我欢迎你通过它,这样你就有了正确的理解,不会造成安全漏洞

当然,语言实现可以作为其他答案随时提供。但总而言之,这些是步骤

  • 提取JWT部分:标题正文签名
  • 检查标题内容并识别JWT类型及其类型(JWSvsJWE
  • 验证签名或验证加密
  • 使用自定义或所需的验证对正文进行解码和读取

一旦你们得到了body的索赔,就由你们来决定了。但如果您正在接收OIDC ID令牌,则根据specification's guide验证它

相关问题 更多 >