/opt/app-root/src/gateway/src/apicast/policy_loader.lua:98: Invalid config for policy: failed to validate dependent schema for "auth_type": value should match only one schema, but matches none
This is due to the use of oneOf and seems like a bug. I will need to investigate this further.
The original intention was to add support for a single algorithm and then upgrade lua-retsy-jwt afterwards and have a minimal schema structure change. However, the jsonschema validation fails when the emum field only contains a single value so I decided to remove it for now.
@eguzki if you know a better way to build apicast-config.json or how to solve this problem, please let me know
What
This PR mainly adding 2 new authentication method for token introspection policy, client_secret_jwt and private_key_jwt.
Known issue
Some time failed with the following error
This is due to the use ofoneOf
and seems like a bug. I will need to investigate this further.The original intention was to add support for a single algorithm and then upgrade lua-retsy-jwt afterwards and have a minimal schema structure change. However, the jsonschema validation fails when the emum field only contains a single value so I decided to remove it for now.
@eguzki if you know a better way to buildapicast-config.json
or how to solve this problem, please let me knowWhat
This PR mainly adding 2 new authentication method for token introspection policy,
client_secret_jwt
andprivate_key_jwt
.JIRA: https://issues.redhat.com/browse/THREESCALE-11015 Reference: https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication
Why only HS256 and RS256 are supported?
This is due to the version of
lua-resty-jwt
(0.20) that we useSupport sign algorithm
Highest we can go is 0.2.2 but this only add support for ES256 0.2.3 introduce a new dependency lua-resty-openssl. See https://github.com/3scale/APIcast/issues/1375#issuecomment-1281071040
Eventually we will need an update but given the amount of work involved, I'd like to keep version 0.20 for now
Verification steps:
Validate
client_secret_jwt
authentication methodclient-secret-jwt
admin/adminpass
basic
realmoidc-issuer-for-3scale
-> CredentialsClient Authenticator
toSigned JWT with Client Secret
and useHS256
algorithmValidate
private_key_jwt
authentication methodsigned_jwt
Client -> oidc-issuer-for-3scale -> Credentials
Client Authenticator
toSigned JWT
with RS256 signature algorithmKey
tab and click generate a new keyPCKS12
and fill in required fill and save keystore file to local diskkeystore.p12
file, run the following command to extract private key