[ 
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)

Reply via email to