[
https://issues.apache.org/jira/browse/KNOX-2527?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sandor Molnar updated KNOX-2527:
--------------------------------
Description:
As of now, in {{DefaultTokenAuthorityService}}, the generated JWT token is
signed by RSA (PKI). It would be beneficial to add support for HMAC as well so
that token signature/verification would not require a keystore being set but
using a secret stored via Knox's alias service. The recommended alias name is
{{gateway.signing.hmac.secret}}
To support backward compatibility, the implementation should use HMAC
signature/verification only if:
- the HMAC secret is configured via the alias service for the gateway, and
- there is no previously pre-configured {{gateway.signing.keystore.name}}
which is a clear indication of end-user preference of using PKI signatures.
The default HMAC signing algorithm should be {{HS256}} (HMAC using SHA-256 hash
algorithm) and clients should be able to change it by already existing request
parameters called {{knoxsso.token.sigalg}} or {{knox.token.sigalg}}. Other
valid values are:
- {{HS384}} (HMAC using SHA-384 hash algorithm)
- {{HS512}} (HMAC using SHA-512 hash algorithm)
was:
As of now, in {{DefaultTokenAuthorityService}}, the generated JWT token is
signed by RSA (PKI). It would be beneficial to add support for HMAC as well so
that token signature/verification would not require a keystore being set but
using a secret stored via Knox's alias service. The recommended alias name is
{{gateway.signing.hmac.secret}}
To support backward compatibility, the implementation should use HMAC
signature/verification only if:
- the HMAC secret is configured via the alias service for the gateway, and
- there is no previously pre-configured {{gateway.signing.keystore.name}}
which is a clear indication of end-user preference of using PKI signatures.
The default signing algorithm should remain {{RS256}} and clients storing the
HMAC secret using {{gateway.signing.hmac.secret}} alias should also set the
signature algorithm by the already existing request parameter called
{{knoxsso.token.sigalg}}. Valid values are:
- {{HS256}} (HMAC using SHA-256 hash algorithm)
- {{HS384}} (HMAC using SHA-384 hash algorithm)
- {{HS512}} (HMAC using SHA-512 hash algorithm)
> Support HMAC signature/verification in JWT token authority
> ----------------------------------------------------------
>
> Key: KNOX-2527
> URL: https://issues.apache.org/jira/browse/KNOX-2527
> Project: Apache Knox
> Issue Type: New Feature
> Components: KnoxSSO, Server
> Affects Versions: 1.5.0
> Reporter: Sandor Molnar
> Assignee: Sandor Molnar
> Priority: Major
> Fix For: 1.6.0
>
>
> As of now, in {{DefaultTokenAuthorityService}}, the generated JWT token is
> signed by RSA (PKI). It would be beneficial to add support for HMAC as well
> so that token signature/verification would not require a keystore being set
> but using a secret stored via Knox's alias service. The recommended alias
> name is {{gateway.signing.hmac.secret}}
> To support backward compatibility, the implementation should use HMAC
> signature/verification only if:
> - the HMAC secret is configured via the alias service for the gateway, and
> - there is no previously pre-configured {{gateway.signing.keystore.name}}
> which is a clear indication of end-user preference of using PKI signatures.
> The default HMAC signing algorithm should be {{HS256}} (HMAC using SHA-256
> hash algorithm) and clients should be able to change it by already existing
> request parameters called {{knoxsso.token.sigalg}} or {{knox.token.sigalg}}.
> Other valid values are:
> - {{HS384}} (HMAC using SHA-384 hash algorithm)
> - {{HS512}} (HMAC using SHA-512 hash algorithm)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)