问题描述
我们正在使用vertx oauth2组件通过oauth2授权代码授予使用cognito登录。我们可以使用现有的API来实现该方案。但是vertx希望在其oauth2配置中具有令牌自省路径。否则,无法从认知中询问向资源服务器提供的令牌是否正确。无论如何,我们在Cognito文档中找不到有关什么是令牌自省上下文路径的任何信息。
oauth2clientOptions oauth2clientOptions = new oauth2clientOptions()
.setClientID("***************************")
.setIntrospectionPath("") //what should goes here
.setClientSecret("********************")
.setSite("*****************")
.setTokenPath("/oauth2/token")
.setAuthorizationPath("/oauth2/authorize")
.setFlow(OAuth2FlowType.AUTH_CODE)
解决方法
AWS Cognito没有自省终端,因此您必须使用其他方法:
- 从JWKS端点下载令牌签名密钥
- 使用库来验证令牌签名
如果有帮助,这里有一些nodejs code of mine可以验证Cognito令牌。
我没有使用过vertx,但它似乎支持JWT Validation。通常,这涉及在选项对象中包含JWKS或元数据URL。