我可以使用 auth0 java sdk 来验证 Okta 令牌吗?

问题描述 投票:0回答:1

我的 SPA 应用程序有一个授权/PKCE 工作流程,用于在 Okta 中请求访问令牌并将其发送到资源服务器。

SPA -> Okta 部分已经解决,将令牌发送到我的 Java 资源服务器很简单。然而,验证令牌对我来说有点棘手。

如果我只是使用okta提供的很棒的sdk,

okta-jwt-verifier
,过程相当简单:

AccessTokenVerifier jwtVerifier = JwtVerifiers.accessTokenVerifierBuilder()
                .setIssuer("https://" + issuer + "/oauth2/default")
                .build();

AccessTokenVerifier 使用发行者透明地收集公钥并验证令牌。

但是,我们的系统必须支持来自多个来源的 JWT,因此我们已经依赖于 auth0

java-jwt
v3.18 库。我正在研究让 auth0 获取公钥并验证访问令牌的方法,但找不到相应的流程。

创建

com.auth0.jwt.JWTVerifier
实例来验证 Okta 令牌的最佳方法是什么?

由于我们正在努力支持的后勤工作,我需要避免使用任何入门库。

java oauth-2.0 auth0 okta pkce
1个回答
0
投票

要使用 auth0 Java JWT 库验证 Okta 访问令牌而不使用入门库,您可以手动获取 Okta 的公钥,然后创建自定义 JWTVerifier 实例。以下是步骤的概述:

检索 Okta 的公钥: 您可以使用 Okta 提供的 JWKS(JSON Web 密钥集)URL 检索 Okta 的公钥。此 URL 通常类似于:https://your-okta-issuer/.well-known/jwks.json。 解析 JWKS 并提取公钥: 使用 JSON 解析器解析 JWKS 响应并提取与 Okta 关联的公钥。 JWKS 中的每个密钥都代表一个可能已用于签署 Okta 的 JWT 的不同公钥。 创建自定义 JWTVerifier: 使用提取的公钥从 auth0 库创建自定义 JWTVerifier 实例。

© www.soinside.com 2019 - 2024. All rights reserved.