ballerina - 如何基于 OpenID 发现 URL 创建新的 JWT 验证器?
问题描述
如何基于 OpenID 发现文档创建 JWT 验证器?而不是在运行服务之前将证书导入密钥库?
我的目标是使用 WSO2 Identity Server 来发布令牌。当调用芭蕾舞演员微服务时,它将被配置为使用两种方法:1)基于 WSO2 IS openid 发现 URL 验证签名。示例:
https://localhost:9443/oauth2/oidcdiscovery/.well-known/openid-configuration
响应文档包含开发人员进行此验证所需的所有内容。
2) 使用令牌自省验证令牌
你能帮我启动这个验证器吗?
解决方案
既然你提到了两个要求,让我把我的答案分成两个部分:
- 使用 JWT 进行身份验证,但使用 OpenID 发现文档来配置 JWT 验证器,而不是手动添加配置值。
内置 JWT 身份验证提供程序当前不支持此功能。这无疑是一种有趣的配置方式。但是,您可以通过注册自定义身份验证处理程序来添加对此的支持。
为此,您可以使用AuthHandlerRegistry注册您自己的处理程序并引入一个处理程序,该处理程序可以通过查看配置的 OpenID 发现信息来验证 JWT。您可以查看HTTP/auth源以了解现有的 Auth Handlers 是如何工作的。此外,您可以查看Auth包以了解 JWT 验证实际上是如何发生的。
- 依靠 OAuth2 令牌进行身份验证,并且不进行任何 JWT 验证,使用令牌自省来进行验证。
目前 Ballerina 仅支持 Basic Auth 和基于 JWT 的入站身份验证。我们正在添加对其他入站身份验证机制的支持。除此之外,我们还将研究基于 OAuth2 的入站身份验证,这肯定会涉及通过自省来验证令牌。准备好后,我一定会更新答案。
推荐阅读
- api - 从 R Shinny App 进行 API 调用时出现 SSL 读取错误
- vue.js -
使用 bootstrap-vue 时显示为文本 - flutter - 使用 SimpleDialog 时状态被破坏
- php - Wordpress get_terms 不允许数组变量
- c++ - 结构的动态数组 C++
- java - build.gradle 错误。抱歉不能把错误放在这里看正文
- tensorflow - tensorflow 从集线器 keras 层嵌入中获取元数据
- android - Android BiometricAuthenticator.AuthenticationResult mUserId 和多个用户
- list - Ansible - 根据另一个列表中的值从一个列表中获取一个项目
- swift - 如何让 uitextfield 从分钟和秒开始倒计时