azure - 使用 Azure API 管理从身份提供者缓存 JWKS 以验证 JWT
问题描述
下面的代码通过在每次验证之后的每个请求时下载 JWKS 来验证 JWT令牌
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Error: expired token or invalid token" require-expiration-time="true" require-scheme="Bearer" require-signed-tokens="true">
<openid-config url="https://IdentityProvider/oidc/.well-known/openid-configuration" />
<audiences>
<audience>aud id</audience>
</audiences>
</validate-jwt>
我的问题是如何从下面的示例链接中缓存 JWKS 以避免每次都下载它,并且无需对 JWKS 进行硬编码,因为它会定期轮换。
https://demo.identityserver.io/.well-known/openid-configuration/jwks
https://openid-connect-eu.onelogin.com/oidc/certs
任何用于缓存和验证 JWT 的代码示例和链接将不胜感激。
下面似乎是相关的,但不是一个完整的例子。
https://docs.microsoft.com/en-us/azure/api-management/api-management-sample-cache-by-key
更新
为了清楚起见,我想缓存上面链接的 JWKS 中的内容以提高性能。
解决方案
APIM 不会为每个请求下载 open id 配置。如果我没记错的话,它会每隔一小时定期下载、缓存和自动刷新。
推荐阅读
- python - Yolo 基于区域的输出到 openvino 的解释脚本
- java - 对tomcat的套接字http请求,但响应302
- python - Python Selenium Chrome:打开一个新标签 Ctrl + t(按键盘)
- python - 在 for 循环中启动线程会产生多个结果
- postgresql - SQL 在最大日期左连接
- office365 - office365 图形 api 分配私有组的所有者权限
- java - 一个对象引用一个具有另一个类 B 的对象作为其实例变量的类 A 的对象,是否也指向类型 B 的对象?
- python - 使用 Pandas to_html 时如何设置字符集?
- java - 为什么 count 变量必须在 for 循环的大括号外定义?
- c# - 如何在静态类中使用泛型