You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Jans Config Api to be able to configure multiple OPs
Jans Config Api Current Flow:
jans-config-api is tightly linked to underlying jans-auth-server.
On installation, oauth scopes and internal client is created.
On start-up the jans-config-api load the underlying server’s config, persistenceEntryManagerInstance, verifies scopes etc and creates a cache of the scope.
Client can invoke an endpoint with bearer token reference (with or without the issuer in the header) or jwt token
If the token is jwt then validates it against its issuer else if reference token its introspected it with the passed approver or underlying jans-auth-server
Enhancement:
jans-config-api should be capable to configure multiple Jans Auth Server
Example:
OP#1 will be the Internet facing OP…The one that does the actual open banking transactions.
OP#2 is only used to hold the admin accounts, and the admin client entities.
Pseudo Flow:
OP to be predefined. Say op_server=server1, server2, server3
Config details of the OP config folder to be pre-defined as required on start-up. -Dserver1.jans.base=/etc/jans.
Jans Config-api on start-up will create a config using point#1 and JanssenProject/jans-config-api#2 and create a server-config mapping
Jans Config-api filter will intercept the request and validate the token
Jans-Config-api will invoke the auth server configuration
Assumption:
Jans-Config-api will allow configuration of underlying Jans auth server of same version
Open Issues:
Need clarity on Point#2 -> Config details of the OP config folder to be pre-defined as required on start-up. -Dserver1.jans.base=/etc/jans.
jans-config-api checks if the token is jwt then validates it against the issuer insider token else if reference token then introspects it with the passed approver or underlying server. This will require each auth server to have the config_api client and scopes for validations. Is this approach fine?
The text was updated successfully, but these errors were encountered:
According to your description jans-config-api should have access to each OP DB directly. In Jans Auth we have similar code which can create list of Persistence Entry Managers for authentication. In you case you can @Produces can produce Map<String, PersistenceEntryManager> which you can inject in your code:
Also in AppInitializer there is code to do check for configuration files update using timer, recreate PersistenceEntryManagers on conf update, destory on shutdown, etc..
This feature is been put on hold as there are security concerns. To summarize;
In order to configure multiple auth-servers, config-api will need persistence and encryption details of all these auth-servers, raising security concerns.
However inside a K8s cluster, config api cannot access another K8s cluster unless the background network is setup to do that
Allowing access from outside to the K8s cluster causing security risks and anti CN pattern.
Requirement:
Jans Config Api to be able to configure multiple OPs
Jans Config Api Current Flow:
Enhancement:
Example:
Pseudo Flow:
example
https://config-api.gluu.org/server1/jans-config-api/api/v1/jans-auth-server/config?..
https://config-api.gluu.org/server2/jans-config-api/api/v1/config/database/ldap...
Assumption:
Open Issues:
The text was updated successfully, but these errors were encountered: