首页 > 解决方案 > 如何基于 OpenID 发现 URL 创建新的 JWT 验证器?

问题描述

如何基于 OpenID 发现文档创建 JWT 验证器?而不是在运行服务之前将证书导入密钥库?

我的目标是使用 WSO2 Identity Server 来发布令牌。当调用芭蕾舞演员微服务时,它将被配置为使用两种方法:1)基于 WSO2 IS openid 发现 URL 验证签名。示例:
https://localhost:9443/oauth2/oidcdiscovery/.well-known/openid-configuration 响应文档包含开发人员进行此验证所需的所有内容。

2) 使用令牌自省验证令牌

你能帮我启动这个验证器吗?

标签: ballerina

解决方案


既然你提到了两个要求,让我把我的答案分成两个部分:

  1. 使用 JWT 进行身份验证,但使用 OpenID 发现文档来配置 JWT 验证器,而不是手动添加配置值。

内置 JWT 身份验证提供程序当前不支持此功能。这无疑是一种有趣的配置方式。但是,您可以通过注册自定义身份验证处理程序来添加对此的支持。

为此,您可以使用AuthHandlerRegistry注册您自己的处理程序并引入一个处理程序,该处理程序可以通过查看配置的 OpenID 发现信息来验证 JWT。您可以查看HTTP/auth源以了解现有的 Auth Handlers 是如何工作的。此外,您可以查看Auth包以了解 JWT 验证实际上是如何发生的。

  1. 依靠 OAuth2 令牌进行身份验证,并且不进行任何 JWT 验证,使用令牌自省来进行验证。

目前 Ballerina 仅支持 Basic Auth 和基于 JWT 的入站身份验证。我们正在添加对其他入站身份验证机制的支持。除此之外,我们还将研究基于 OAuth2 的入站身份验证,这肯定会涉及通过自省来验证令牌。准备好后,我一定会更新答案。


推荐阅读