我已向 APIM 添加了“validate-jwt”策略,以验证颁发者签名密钥以及所提供 JWT 的过期情况。它成功验证了颁发者签名密钥并拒绝任何未由正确证书签名的 JWT,但它似乎根本没有验证过期日期/时间。我可以传递一个几小时前就过期的 JWT,它可以很好地通过。
我已将“需要过期时间”设置为 true,我没有看到任何其他看起来相关的设置。 Azure APIM 是否能够验证过期时间,或者我对它的要求是否过高?我需要设置其他设置才能让它执行此操作吗?
Azure APIM 是否能够验证过期时间,还是我对它的要求太多了?
是的,APIM 检查
validate-jwt
策略中的过期时间。我已将令牌到期时间设置为 1 小时并收到错误。
感谢@silent的评论。我正在使用以下政策-
<policies>
<inbound>
<base />
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized" require-expiration-time="true" require-scheme="Bearer" require-signed-tokens="true">
<openid-config url="https://login.microsoftonline.com/{tenant_id}/v2.0/.well-known/openid-configuration" />
<issuer-signing-keys>
<key>Base64 Encoded Key</key>
</issuer-signing-keys>
<audiences>
<audience>********</audience>
</audiences>
<issuers>
<issuer>********</issuer>
</issuers>
<required-claims>
<claim name="" match="all">
<value>*******</value>
</claim>
</required-claims>
</validate-jwt>
</inbound>
</policies>
我的令牌过期后出现以下错误。
请检查令牌有效期和您正在使用的政策。