[
https://issues.apache.org/jira/browse/NIFI-8766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17401744#comment-17401744
]
ASF subversion and git services commented on NIFI-8766:
-------------------------------------------------------
Commit a652280fbb45c94b6ba9be5e7f4f9cd8c708f5ca in nifi's branch
refs/heads/main from David Handermann
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=a652280 ]
NIFI-8766 Implemented RS512 Algorithm for JWT Signing
- Replaced per-user symmetric-key HS256 with shared and rotated RSA
asymmetric-key RS512 implementation
- Added nifi.security.user.jws.key.rotation.period property for RSA Key Pair
rotation
- Added JSON Web Tokens section to Administration Guide
- Implemented persistent storage of RSA Public Keys for verification using
Local State Manager
- Implemented JWT revocation on logout with persistence using Local State
Manager
- Refactored JWT implementation using Spring Security OAuth2 and Nimbus JWT
- Refactored Spring Security Provider configuration using Java instead of XML
- Removed H2 storage of per-user keys
- Upgraded nimbus-jose-jwt from 7.9 to 9.11.2
NIFI-8766 Corrected AuthenticationException handling in
AccessResource.getAccessStatus
- Added nifi.user.security.jws.key.rotation.period to default nifi.properties
- Updated logging statements and clarified configuration and method
documentation
NIFI-8766 Changed Algorithm to PS512 and updated documentation
Signed-off-by: Nathan Gough <[email protected]>
This closes #5262.
> Improve JWT Authentication Handling
> -----------------------------------
>
> Key: NIFI-8766
> URL: https://issues.apache.org/jira/browse/NIFI-8766
> Project: Apache NiFi
> Issue Type: Improvement
> Components: Core UI, Security
> Affects Versions: 1.14.0, 1.13.2
> Reporter: David Handermann
> Assignee: David Handermann
> Priority: Major
> Labels: JWT, security
> Time Spent: 7.5h
> Remaining Estimate: 0h
>
> NiFi access for username and password authentication currently leverages
> several custom classes to handle JWT generation, signing, and verification.
> The JWT service uses symmetric keys generated for each user with the HMAC
> SHA256 signing algorithm, and stores signing keys in the local node database.
> NiFi deletes the symmetric signing key for each user on logout.
> The Spring Security OAuth2 library provides more standardized components to
> handle JWT verification, which will reduce the need for custom Spring
> Security authentication provider classes. The JWT generation process should
> be evaluated and refactored to support more frequent key rotation.
> Transitioning to asymmetric keys for JWT signing and avoiding persistence of
> private signing keys should also be considered.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)