ECDSA (ES256) support issues in OIDC module (JWK generation and token verification)
@cicnavi arbeitet bereits daran.
Seit 15.4.2026.
Bewertung
Dieses Issue wurde noch nicht bewertet.
Beschreibung
Hi,
I am currently working with the SimpleSAMLphp OIDC module and trying to use ECDSA (ES256) for signing tokens instead of RSA.
I encountered multiple issues that seem to indicate incomplete or inconsistent support for ECDSA.
1. JWK generation issue
In JsonWebKeySetService::prepareProtocolJwkSet(), the implementation uses:
JWKFactory::createFromKeyFile($certificatePath, ...)
However, $certificatePath points to an X.509 certificate file (.crt), not a private key.
According to the JWT Framework documentation, createFromKeyFile() expects a key file, while certificates should be loaded using:
JWKFactory::createFromCertificateFile()
This mismatch causes failures when using ECDSA certificates, while RSA may work by coincidence.
2. Access token verification issue
In BearerTokenValidator, the signer is hardcoded to RSA:
use Lcobucci\JWT\Signer\Rsa\Sha256;
Configuration::forSymmetricSigner(...)
This causes ES256 tokens to fail verification with:
Access token could not be verified
The validator should dynamically select the signer based on the token's alg header (e.g., ES256 vs RS256), and use forAsymmetricSigner().
3. Expected behavior
- The module should support both RS256 and ES256
- JWK generation should correctly use certificate-based loading
- Token verification should dynamically select the correct signer
4. Questions
- Is ECDSA (ES256) officially supported by this module?
- If yes, what is the correct way to configure keys and certificates?
- Should certificates be combined with private keys, or kept separate?
- Is there a recommended key generation procedure?
5. Suggested fixes
- Replace
createFromKeyFile()withcreateFromCertificateFile()when loading certificates - Refactor
BearerTokenValidatorto support multiple algorithms (RS256, ES256)
Any guidance would be greatly appreciated.
Thanks!
- Vorherrschende Sprache
- PHP
- Sterne
- 50
- Forks
- 28
- Ø Merge
- 1 Min.
- Gemergte PRs (30 T.)
- 1
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus simplesamlphp/simplesamlphp-module-oidc
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
simplesamlphp/simplesamlphp-module-oidc#360 · 1 Kommentar ·
-
prepared
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 65/100
simplesamlphp/simplesamlphp-module-oidc#358 · 2 Kommentare ·
-
Encryption key can only be stringEvtl. wieder frei @cicnavi hat das vor 217 Tagen übernommen, und es ist kein Pull Request offen. Offenenhancement prepared
simplesamlphp/simplesamlphp-module-oidc#332 · 1 Kommentar · 1 zugewiesene Person ·
-
ReflectionParameter::getClass() is deprecatedEvtl. wieder frei @cicnavi hat das vor 232 Tagen übernommen, und es ist kein Pull Request offen. Offenprepared
simplesamlphp/simplesamlphp-module-oidc#327 · 2 Kommentare · 1 zugewiesene Person ·
-
Missing support for multiple signature algorithmsEvtl. wieder frei @cicnavi hat das vor 266 Tagen übernommen, und es ist kein Pull Request offen. Offenenhancement prepared
simplesamlphp/simplesamlphp-module-oidc#324 · 1 Kommentar · 1 zugewiesene Person ·
Alle Issues in simplesamlphp/simplesamlphp-module-oidc
Ähnliche Issues
-
sync-en
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
sync-en
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Combination form: image thumbnails collapse to 0×0 when a stylesheet sets `img { max-width: 100% }`Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 66/100
PrestaShop/PrestaShop#43200 ·
Maintainer antworten meist innerhalb von 1 Tag
-
[Type] Enhancement Help Wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
codeigniter4/CodeIgniter4#10616 ·
Maintainer antworten meist innerhalb von 1 Tag