Ktor application.conf - Jwt 配置
Posted
技术标签:
【中文标题】Ktor application.conf - Jwt 配置【英文标题】:Ktor application.conf - Jwt configuration 【发布时间】:2021-03-22 22:37:48 【问题描述】:我正在尝试在我的 ktor 应用中设置 JWT 身份验证。 Documentation 建议在 application.conf
文件中定义一个 jwt 验证器,如下所示:
jwt
domain = "https://jwt-provider-domain/"
audience = "jwt-audience"
realm = "ktor sample app"
我不是 jwt 身份验证专家,所以我想知道 domain
、audience
和 realm
设置的含义是什么,遗憾的是文档缺少这些细节。
【问题讨论】:
【参考方案1】:通过查看生成的 jwt 令牌,事实证明:
audience 在RFC 7519 "aud" 声明中得到解决:“aud”(受众)声明标识 JWT 的接收者 用于。
通常它是一个区分大小写的字符串数组,其中包含客户端标识符。例如,它可能是应用程序包名称,例如:
ios.organization.appname, android.organization.appname
域解决了RFC 7519“iss”声明:
“iss”(颁发者)声明标识了颁发 智威汤逊。
这是特定于应用程序的,在我的情况下,我选择了身份验证服务器的标识符(单点登录),例如:
sso.organization.com
领域在我生成的 jwt 令牌中没有任何该字段的痕迹,但从 ktor documentation 看来,该字段用于 WWW-Authenticate 响应标头中
【讨论】:
【参考方案2】:据我所知,文档将域称为颁发者 (iss) 声明,将受众称为 aud 声明(在https://www.rfc-editor.org/rfc/rfc7519#section-4.1 中描述)。其他设置可能不是必需的。
【讨论】:
以上是关于Ktor application.conf - Jwt 配置的主要内容,如果未能解决你的问题,请参考以下文章
IgnoreUnknownKeys 仅适用于 Kotlinx 和 Ktor 的一种类型
如何在play framework 1.3中分离application.conf以增加conf文件
在 application.conf 中使用 Maven 配置文件属性