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 身份验证专家,所以我想知道 domainaudiencerealm 设置的含义是什么,遗憾的是文档缺少这些细节。

【问题讨论】:

【参考方案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 的一种类型

播放 application.conf - 测试配置

如何在play framework 1.3中分离application.conf以增加conf文件

在 application.conf 中使用 Maven 配置文件属性

如何使用 Flink 用户配置显示应用配置(application.conf 中的值)

Datastax Java 驱动程序 4.6.1 无法使用 application.conf 覆盖配置