spring-projects / spring-projects/spring-security

Add support for saml default signing key

Open
#12,606 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: waiting-for-triage type: enhancement
Dominant language
Java
Stars
9.6k
Forks
6.3k
Avg merge
2d 11h
Merged PRs (30d)
52

Description

Expected Behavior

Would be nice in the case of where we have multiple signing keys to explicitly set which one should be used when signing the
authn request.
This is particularly useful when the Service Provider updates its signing key, a sample scenario would look like this:

  • the service provider adds a new signing key along with the old one, and makes them both available in its metadata
  • until the metadata is uploaded on the IdP side as well, the old one should still be used for signing requests
  • the metadata is uploaded on the IdP
  • switch to using the new key on the SP side, but still keep the old one for rollback purposes
  • remove the old key if all is well

Context
Trying to migrate from the old saml library where we make use of ExtendedMetadata#setSigningKey to set the default signing key in cases where we have multiple service provider keys

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing Spring Security's current SAML signing-key selection and compare it with the old library's ExtendedMetadata#setSigningKey behavior described in the issue. Define how an explicitly selected default key should work when multiple service-provider keys are present, and verify that key rotation and rollback scenarios use the selected key.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring
Domain
authentication, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.