More flexible OIDC key support
The goal of this PR is to allow more key algorithms for OIDC signing keys.
The concerns regarding such implementation in #5390 were considered. I try to address them by allowing a flexible, extensible, and somewhat maintainable approach, which I gratefully take feedback on and am willing to improve by the feedback provided.
Therefore, the issue with this PR is not the few lines of code changed but the architecture of how more key algorithms could be supported. For presentation reasons, I added the RS512 algorithm, which I had done before. If the suggested approach would be considered by the maintainers, I needed some support to extend and test this with more common algorithms like ES256 as described in the issue mentioned above.
Besides that, the test suits would probably need at least a test case per key algorithm to confirm that the implementations are working, which is currently a ToDo.