其中 application.conf - Jwt 配置
Ktor application.conf - Jwt configuration
我正在尝试在我的 ktor 应用程序中设置 JWT 身份验证。 Documentation 建议在 application.conf
文件中定义一个 jwt 验证器,如下所示:
jwt {
domain = "https://jwt-provider-domain/"
audience = "jwt-audience"
realm = "ktor sample app"
}
我不是 jwt 身份验证专家,所以我想知道 domain
、audience
和 realm
设置的含义是什么,遗憾的是文档缺少这些细节。
据我所知,文档将域称为发行者 (iss) 声明,将受众称为 aud 声明(在 https://www.rfc-editor.org/rfc/rfc7519#section-4.1 中进行了描述)。其他设置可能不是必需的。
通过查看生成的 jwt 令牌,结果发现:
- audience 在 RFC 7519“aud”声明中解决:
The "aud" (audience) claim identifies the recipients that the JWT is
intended for.
通常它是一个 case-sensitive 字符串数组,包含客户端标识符。例如,它可能是应用程序包名称,例如:
ios.organization.appname, android.organization.appname
- domain 在 RFC 7519“iss”声明中解决:
The "iss" (issuer) claim identifies the principal that issued the
JWT.
它是特定于应用程序的,在我的例子中,我选择了我的身份验证服务器的标识符(单点登录),例如:
sso.organization.com
- Realm 在我生成的 jwt 令牌中没有这个字段的任何痕迹,但是从 ktor documentation 看来这个字段被用在 WWW-Authenticate响应 header
我正在尝试在我的 ktor 应用程序中设置 JWT 身份验证。 Documentation 建议在 application.conf
文件中定义一个 jwt 验证器,如下所示:
jwt {
domain = "https://jwt-provider-domain/"
audience = "jwt-audience"
realm = "ktor sample app"
}
我不是 jwt 身份验证专家,所以我想知道 domain
、audience
和 realm
设置的含义是什么,遗憾的是文档缺少这些细节。
据我所知,文档将域称为发行者 (iss) 声明,将受众称为 aud 声明(在 https://www.rfc-editor.org/rfc/rfc7519#section-4.1 中进行了描述)。其他设置可能不是必需的。
通过查看生成的 jwt 令牌,结果发现:
- audience 在 RFC 7519“aud”声明中解决:
The "aud" (audience) claim identifies the recipients that the JWT is intended for.
通常它是一个 case-sensitive 字符串数组,包含客户端标识符。例如,它可能是应用程序包名称,例如:
ios.organization.appname, android.organization.appname
- domain 在 RFC 7519“iss”声明中解决:
The "iss" (issuer) claim identifies the principal that issued the JWT.
它是特定于应用程序的,在我的例子中,我选择了我的身份验证服务器的标识符(单点登录),例如:
sso.organization.com
- Realm 在我生成的 jwt 令牌中没有这个字段的任何痕迹,但是从 ktor documentation 看来这个字段被用在 WWW-Authenticate响应 header