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

OpenAM OpenID连接令牌验证

曾枫
2023-03-14

使用OpenAM OpenID连接代理,我创建了一个名为Test-Client的OAuth 2.0/OpenID连接客户端,其作用域为openid。

我的OpenAM实例部署在Tomcat 7上,我调整了/etc/hosts文件,将localhost显示为OpenAM。实例通用域名格式。

使用默认凭据,我可以使用以下方式检索OpenID Connect id令牌:

curl -k -u Test-Client:password -d "grant_type=password&username=demo&password=changeit&scope=openid" -H "Content-Type: application/x-www-form-urlencoded" "http://openam.example.com:8080/openam/oauth2/access_token"

然后,如果我的承载令牌仍然有效,我可以检索OpenID用户信息(其中访问令牌由上述命令返回):

curl POST -H "Authorization: Bearer {{access_token}}" -k -v "http://openam.example.com:8080/openam/oauth2/userinfo"

我的问题是:

  • 我如何找到用于签名id_令牌JWT的秘密

共有1个答案

姚钊
2023-03-14

我没有任何使用Open AM的经验,但是要验证一个ID令牌,你需要得到一个正确的OpenID Connect提供程序的公钥(如果密钥是由非对称密码签名的)。要得到它,你应该阅读它的发现文档,它应该位于/. you-known/openid-配置。在返回的JSON文档中,找到一个jwks_uri值并加载该URL。你会得到另一个具有服务器所有公钥的JSON文档。然后你需要从ID令牌中找到一个与孩子(密钥ID)值匹配的孩子

如果令牌是用对称密码签名的,则没有标准的分发方式。

有关更多信息,请参阅:

  • http://openid.net/specs/openid-connect-discovery-1_0-21.html#ProviderConfigurationRequest
  • https://backstage.forgerock.com/docs/openam/13/admin-guide#openam-openid-discovery
  • https://developers.google.com/identity/protocols/OpenIDConnect#discovery
 类似资料:
  • 我正在尝试升级我的MVC网站以使用新的OpenID Connect标准。OWIN中间件似乎非常健壮,但不幸的是只支持“form_post”响应类型。这意味着Google不兼容,因为它在“#”之后返回url中的所有令牌,因此它们永远不会到达服务器,也永远不会触发中间件。 我自己尝试过在中间件中触发响应处理程序,但似乎根本不起作用,所以我有一个简单的javascript文件,它解析出返回的声明,并将它

  • 我正在尝试与URL(python客户端)建立websocket连接,该URL需要传入jwt令牌,服务器(在GO中实现)在上侦听该请求,并应该通过解析令牌进行身份验证。 我试着用这部分代码来提出请求- 此请求命中运行此代码以验证此请求的服务器 func ParseFromRequest(req*http.Request,keyFunc-keyFunc)(令牌*令牌,错误){ } 每次,我都会得到“E

  • 通过令牌验证在注册中心控制权限,以决定要不要下发令牌给消费者,可以防止消费者绕过注册中心访问提供者,另外通过注册中心可灵活改变授权方式,而不需修改或升级提供者 可以全局设置开启令牌验证: <!--随机token令牌,使用UUID生成--> <dubbo:provider interface="com.foo.BarService" token="true" /> 或 <!--固定token令牌,

  • 我正在使用AzureAd Powershell模块进行用户管理。但是,它并不具备我所需要的所有功能,特别是,我不能为对象分配应用程序扩展值(尽管我可以通过创建删除和删除应用程序扩展本身)。 通过观察使用Fiddler的API调用,我知道graph调用使用了承载令牌,并且我直接从Postman手动调用了graph API,所以如果可以的话,我知道如何使用承载令牌。我怎么拿到?

  • 问题内容: 我在CSRF令牌方面遇到问题。当我提交表单时,正在生成一个新的表单,但是我想我正在生成两个不同的令牌,这有点困惑。还有一个名为的令牌,因此我在开发人员工具中看到了两个不同的cookie(XSRF- TOKEN和_csrf),发布后它们没有变化。 我想要做的是为每个帖子请求生成一个新令牌,并检查它是否有效。我知道为了安全起见应该这样做,但是我坚持了下来。 漫长的一天,我是Express和

  • 我有一个令牌,它将从一个服务传递到我的Rest服务。我想使用Spring security根据公钥验证令牌(它托管在不同的服务器上)。我已经定义了安全配置类,它扩展了KeyDopperWebSecurity配置适配器,并且实现了httpSecurity和AuthenticationManager构建器。 我正在使用OncePerRequestFilter并从请求中获取承载令牌。 @组件公共类Jwt