- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我收到两个 JWT:一个 OpenID Connect ID token (id_token) 和一个访问 token (access_token)。 OpenID 的情况或多或少很清楚 - 我可以使用 JWKS 端点来验证它:https://smth.com/JWKS .
如示例( https://bitbucket.org/b_c/jose4j/wiki/JWT%20Examples ):
HttpsJwks httpsJkws = new HttpsJwks("https://smth.com/JWKS");
HttpsJwksVerificationKeyResolver httpsJwksKeyResolver = new HttpsJwksVerificationKeyResolver(httpsJkws);
jwtConsumer = new JwtConsumerBuilder()
.setVerificationKeyResolver(httpsJwksKeyResolver)
.setExpectedAudience(...)
.setExpectedIssuer(...)
.build();
问题是如何继续使用访问 token 。我可以从中提取 userId 和 userDetails,但我想我还需要验证它?
如果我尝试以与 ID token 相同的方式验证访问 token ,则会收到此错误:
UnresolvableKeyException: Unable to find a suitable verification key for JWS w/ header {"alg" : "RS256", "kid":"1"}
确实没有“kid”:“1”
的键,而且这个值“1”
似乎有点奇怪?
我做错了什么吗?
最佳答案
听起来您正在实现 OpenID Connect 客户端或依赖方的角色。 ID token 和访问 token 这两个 token 具有不同的用途,因此客户端应以不同的方式处理。 ID token 适用于客户端,可在客户端对最终用户进行身份验证。在允许最终用户进入之前,客户端必须验证 ID token (验证签名并验证 exp 和 aud 等声明)。但是,访问 token 供客户端用于访问资源或 API,但不用于访问 token 。直接供客户端使用或验证。访问 token 对客户端来说是不透明的,客户端不应该关心或了解其详细信息。事实上,访问 token 并不总是 JWT。在 OpenID Connect 中,访问 token 用于调用用户信息端点(使用 HTTP header ,Authorization: Bearer [access token]
)以获取有关最终用户的更多声明/信息。
“1”的值对于 child 来说是完全合法的,但它指的是 AS/OP 和用户信息端点以某种方式知道的 key 。它不是 OpenID Connect JWKS 端点处的 key 。 “1”不是客户端需要知道的 key ,因为客户端不应该直接验证访问 token 。
关于jwt - 使用 JWKs 端点处理 JWT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32233815/
首先,我使用'DefaultResourceRetriever',没有任何这样的配置: new DefaultResourceRetriever(1000, 1000); 然后我得到了以下异常 jav
我正在阅读 JWKS 并找到有关 key 轮换概念的信息 - https://developer.okta.com/docs/concepts/key-rotation/ 假设我在我的应用程序中使用
我正在尝试配置 Istio 身份验证策略来验证我们的 JWT。 我设置了策略并可以看到它生效了。但是它不允许任何东西连接。应用该策略时,如果我检查 istio-pilot 日志,我会发现它无法检索签名
我收到两个 JWT:一个 OpenID Connect ID token (id_token) 和一个访问 token (access_token)。 OpenID 的情况或多或少很清楚 - 我可以使
我正在 AWS Cognito 上验证访问 token 。我必须做的一件事是将 key 从 jwks.json(用户池的)转换为 rsa 公钥结构(取决于使用的 JWT API)。 所以 'n' 和
我正在使用 Firebase 对我的应用中的用户进行身份验证。 Firebase 生成一个 JWT token ,我需要在我的服务器上进行身份验证。我使用 tyk.io 来做这件事。 Tyk 支持这些
我使用 Azure AD 控制台配置 JWT token 。一切看起来都很好并且能够检索 token ,但我发现 JWKS_url ( https://login.microsoftonline.co
我使用 Azure AD 控制台配置 JWT token 。一切看起来都很好并且能够检索 token ,但我发现 JWKS_url ( https://login.microsoftonline.co
我正在使用 dgrijalva/jwt-go 和 lestrrat-go/jwx。 我试图实现的是使用 jwks 验证 wso2 jwt。 token (过期 token ): const token
我正在设计使用 IdentityServer4 来保护多个服务的原型(prototype),但需要注意的是,这些服务可能不会被迁移(在可预见的将来)以使用 ASP.NET Core 的 OWIN 中间
我正在我的 Keycloak 实例中配置一个外部身份提供者,并尝试让它使用外部 JWKS URL 验证 token 。使用从 JWKS 转换后的 PEM 工作正常,使用 URL 无效。 登录时 tok
按照文档 here和 there ,我设法设置了一个授权服务器,它发出用非对称 key 签名的 JWT 访问 token ,资源服务器使用公钥的本地副本在本地验证这些 token 。到目前为止一切顺利
我对使用 OIDC 的后端 api 授权流程有点困惑。 我已将 SPA 应用程序与其余后端 api react 。 我想允许应用程序客户端注册他们自己的 OIDC 提供商以进行登录/注册。 OpenI
我有一些 key ID 可用于验证 token ,但它是硬编码的,我不希望它是这样。我正在使用 jwks-rsa 库从 API 端点获取 key 并打开 token 以进行验证,但是获取是在 jwks
假设您使用 AWS,并且想使用 Cognito 使用基于 ID 的身份验证。 然后 aws 为您提供一个公钥,您可以使用它来验证 cognito 负载。 我们还假设您不想或不能使用任何像 jose 这
我通过包装并通过 Azure API 管理对其进行缓存来为下面的发现端点设置缓存。 https://openid-connect-eu.onelogin.com/oidc/.well-known/op
当使用 Amazon AWS Cognito Federated Identities 并在以下位置解析数据时: https://cognito-identity.amazonaws.com/.wel
我正在尝试实现一项服务 (API),以履行资源服务器的 OAuth 角色。我们有一个实现隐式流程的 Angular 客户端应用程序。我们使用 GLUU 作为我们的 OpenID 提供者。客户端应用程序
我有: 身份服务器 4, 具有 OpenId Connect 和混合流的 Mvc 应用 WebApi 应用 假设用户已经获得带有 id_token 和访问 token 的 cookie。然后他从 mv
我有: 身份服务器 4, 具有 OpenId Connect 和混合流的 Mvc 应用 WebApi 应用 假设用户已经获得带有 id_token 和访问 token 的 cookie。然后他从 mv
我是一名优秀的程序员,十分优秀!