【问题标题】:Does jose4j take care of Azure Signing Key rollover automatically?jose4j 是否自动处理 Azure 签名密钥翻转?
【发布时间】:2019-11-15 16:33:55
【问题描述】:

我正在我的 Java 应用程序中实现 jose4j 以验证 Azure 颁发的访问令牌的签名。 该应用程序运行良好,但是,我遇到了有关Signing Key rollover 的文档。 jose4j 在使用HttpsJwksVerificationKeyResolver 时会自动处理它吗?

我目前正在使用以下sn-p来构建JwtConsumer

String azureKeyDiscoveryUrl =
                "https://login.microsoftonline.com/{my-tenant-id}/discovery/keys";
HttpsJwks azureKeyDiscovery = new HttpsJwks(azureKeyDiscoveryUrl);

HttpsJwksVerificationKeyResolver azureJwksKeyResolver = new HttpsJwksVerificationKeyResolver(azureKeyDiscovery);

JwtConsumer azureJwtConsumer = new JwtConsumerBuilder()
                .setRequireExpirationTime()
                .setAllowedClockSkewInSeconds(30)
                .setRequireIssuedAt()
                .setRequireNotBefore()
                .setVerificationKeyResolver(azureJwksKeyResolver)
                .setExpectedAudience("my-audience")
                .setJwsAlgorithmConstraints(new AlgorithmConstraints(
                        AlgorithmConstraints.ConstraintType.WHITELIST, AlgorithmIdentifiers.RSA_USING_SHA256))
                .build();
JwtClaims claims = azureJwtConsumer.processToClaims("tokenStringHere");

【问题讨论】:

    标签: java azure azure-active-directory jose4j


    【解决方案1】:

    是的,假设 Azure 使用 https://login.microsoftonline.com/{my-tenant-id}/discovery/keys 端点做正确/合理的事情,我认为他们会这样做,它会起作用。

    【讨论】:

    • 感谢您的回答。即使我通过构建一次并重用它来验证所有声明来重用jwtconsumer,它是否会起作用,或者我是否需要为每个需要验证的声明重建消费者?
    猜你喜欢
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 2015-10-25
    • 2021-08-27
    • 2022-01-18
    • 2013-11-10
    • 1970-01-01
    相关资源
    最近更新 更多