【问题标题】:What is the token introspection path for AWS CognitoAWS Cognito 的令牌自省路径是什么
【发布时间】:2020-12-04 03:20:57
【问题描述】:

我们正在使用 vertx oauth2 组件使用 oauth2 授权码授予实现 cognito 登录。我们可以使用现有的 API 来实现该场景。但是 vertx 期望它的 oauth2 配置中的令牌自省路径。否则无法从 cognito 询问提供给资源服务器的令牌是否正确。无论如何,我们在 cognito 文档中找不到任何关于令牌自省上下文路径的信息。

OAuth2ClientOptions oAuth2ClientOptions = new OAuth2ClientOptions()
                .setClientID("***************************")
                .setIntrospectionPath("") //what should goes here
                .setClientSecret("********************")
                .setSite("*****************")
                .setTokenPath("/oauth2/token")
                .setAuthorizationPath("/oauth2/authorize")
                .setFlow(OAuth2FlowType.AUTH_CODE)

【问题讨论】:

    标签: oauth-2.0 amazon-cognito vert.x


    【解决方案1】:

    AWS Cognito 没有自省端点,因此您必须使用不同的方法:

    • 从 JWKS 端点下载令牌签名密钥
    • 使用库来验证令牌签名

    如果有帮助,这里有一些 nodejs code of mine 可以验证 Cognito 令牌。

    我没用过vertx,但它似乎支持JWT Validation。通常这涉及在 Options 对象中包含 JWKS 或元数据 URL。

    【讨论】:

    • 令牌自省发生在 vertx 框架内。我唯一能做的就是提供自省路径。如果我们采用您的解决方案,那么我们必须检查是否可能在 vertx ouath2 实现上被覆盖或完全放弃 vertx。不是吗?
    • 不幸的是,自省无法与 Cognito 一起使用(我总是在支持时使用自省)。所以选项 1 是找到一种使用 vertx 的方法。选项 2 是使用不同的库。当我进行基于 Java 的 OAuth 时,我总是使用出色的 Nimbusds libraries,它带有非常好的文档。
    • 安全库的选择可能很重要,正如您所发现的那样。 certified libraries page 是我通常开始的地方。最好的库使您能够解决供应商限制。
    • 因此,如果由于从 Cognito 中删除应用程序客户端而撤销了仍然有效的访问令牌,这是否意味着 JWK 也会立即从 Cognito 中删除,以便下一次验证会失败吗?
    • 不 - JWK 用于许多应用程序的许多令牌。不记名令牌在到期之前一直有效。一个简单的选择是让令牌保持短暂的生命(约 60 分钟),这样您就不必费心编写代码了。如果您走其他道路,您可能会感到失望,并发现技术无法满足您的需求。
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2015-09-19
    • 2020-10-17
    • 1970-01-01
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    相关资源
    最近更新 更多