当前位置: 首页 > 知识库问答 >
问题:

Okta使用OpenID Connect config中的公钥验证JWT令牌

邵飞鸿
2023-03-14

背景

我遵循了OKTA的这篇教程:https://developer.okta.com/quickstart/#/ios/dotnet/aspnetcore

从Xamarin实现了开源Appauth.ios组件的一个版本,以便能够在Xamarin.ios项目中使用它。(工程)

在使用https://JWT.io检查JWT令牌后,我找到了用于对令牌签名的签名公钥的kid

然后我转到我帐户的openid-connect配置https://dev-111111.oktapreview.com/oauth2/default/.well-known/openid-configuration

找到密钥url https://dev-111111.oktapreview.com/oauth2/default/v1/keys

谢谢你,

德米特里

共有1个答案

邓禄
2023-03-14

问题原来是配置问题。

在获取令牌的移动客户端中,AppAuth组件的初始化使用发布者设置为https://dev-111111.oktapreview.com而不是正确的https://dev-111111.oktapreview.com/oauth2/default

这引起了混乱,因为它没有在https://dev-111111.oktapreview.com上发现openid-connect配置,反而成功了。它之所以成功,是因为Okta支持人员告诉我,它指向Okta API的授权服务器,出于安全目的,它们将用于API令牌的公共签名密钥隐藏起来。这也是为什么签名密钥不同的原因,因为我实际上指向的是客户端和后端上的两个不同的授权服务器。

 类似资料:
  • 在PHP中,我试图使用AWS的RSA公钥(我在https://cognito-identity.amazonaws.com/.well-known/jwks_uri). 密钥以适当的页眉/页脚开始,然后开始RSA公钥等等。我查看了一些PHP库,如Emarref\Jwt\Jwt\code>,但是我发现了错误:。这一切归结为基本的php函数:。 我已经研究了php。net/manual进行openss

  • 我想验证一些来自Microsoft的JWT的签名。我正在使用Spring-Boot、JJWT库和以下endpoint:https://login.microsoftonline.com/common/discovery/v2.0/keys endpoint返回JSON公钥数组。下面是数组中的一个示例。

  • 通常情况下,访问远程服务器上的 Git 仓库要受到限制。你可能不希望任何人都能读取文件,或者至少不能改动文件吧。在这种情况下,进行有效的认证就是非常必要地。 你可能已经通过你所使用的浏览器了解了 “HTTPS” 协议,尽管它使用起来很简单,但是很多系统管理员还是会出于各种原因去选择使用更为普遍的 “SSH” 协议。在这种协议之下,当涉及到身份验证时,你就很可能需要 “SSH公钥”。 对于这种类型的

  • 我想知道是否有一个示例C代码或库可以使用RSA公钥验证我的JWT令牌签名。我找不到任何涉及C的示例 openssl for C没有任何与RSA相关的示例。 谢谢

  • 我创建了一个小型vertx auth服务器,它使用公钥/私钥签名/生成JWT令牌。 现在,当我从客户端访问/api/new token时,我从上面的身份验证服务器获得了一个JWT令牌。然而,我有一些悬而未决的问题: auth-server如何确保客户端具有服务器公钥并且它是真实的? 客户端如何向auth-server发送公钥? 我怎样才能让 /api/new-token安全,只有合法的客户端可以连

  • 问题内容: 我有一个外部服务,在定义的事件发生后会给我回电,并用其私钥签署他的请求。 我已经存储了如下公钥: 因此,我的工作是通过验证签名来检查请求的内容是否未更改。 这是我的算法: 但是目前,我的算法已停止在此消息的“ PublicKey publicKey = keyFactory.generatePublic(publicKeySpec)”步骤处: 那么,如何以java api接受的方式加载