diff --git a/README.md b/README.md index 9cd3766..10e40e7 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,6 @@ Once all dependencies are met, simply call `make` to build the provider, which s There's also `make clean` available for removing the output directory. -## Testing Setup - -See [testing/README.md](testing/README.md) for details on the Docker Compose based setup that includes a realm and the ability to attach a debugger to the running Keycloak. - ## Example Setup We assume an unconfigured, fresh Keycloak installation running under `http://localhost:8080`. diff --git a/attribute-endpoints-provider/src/main/java/de/ccc/hamburg/keycloak/attribute_endpoints/AttributeEndpointsResourceProvider.java b/attribute-endpoints-provider/src/main/java/de/ccc/hamburg/keycloak/attribute_endpoints/AttributeEndpointsResourceProvider.java index bd98b30..8c17ec3 100644 --- a/attribute-endpoints-provider/src/main/java/de/ccc/hamburg/keycloak/attribute_endpoints/AttributeEndpointsResourceProvider.java +++ b/attribute-endpoints-provider/src/main/java/de/ccc/hamburg/keycloak/attribute_endpoints/AttributeEndpointsResourceProvider.java @@ -2,7 +2,6 @@ package de.ccc.hamburg.keycloak.attribute_endpoints; import java.util.Collection; import java.util.List; -import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Stream; @@ -119,8 +118,7 @@ public class AttributeEndpointsResourceProvider implements RealmResourceProvider .toList(); UserProvider userProvider = session.users(); - Stream users = userProvider.searchForUserStream(realm, Map.of()) - .filter(user -> user.hasRole(matchRole)); + Stream users = userProvider.getRoleMembersStream(realm, matchRole); List attribute_list = users .map(user -> { diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..09d0a0b --- /dev/null +++ b/compose.yaml @@ -0,0 +1,13 @@ +services: + keycloak: + image: quay.io/keycloak/keycloak:26.7.0 + pull_policy: always + command: "start-dev --features=declarative-ui" + environment: + KEYCLOAK_ADMIN: admin + KEYCLOAK_ADMIN_PASSWORD: admin + KC_LOG_LEVEL: info + ports: + - "8080:8080" + volumes: + - ./attribute-endpoints-provider/target/attribute-endpoints-provider-1.0-SNAPSHOT.jar:/opt/keycloak/providers/attribute-endpoints-provider.jar \ No newline at end of file diff --git a/testing/README.md b/testing/README.md deleted file mode 100644 index 86ff971..0000000 --- a/testing/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# Creating a Testing Keycloak - -The Docker Compose setup in this directory sets up Keycloak and imports a realm `testing`. - -## Starting Keycloak - -Run `docker compose up -d` to start Keycloak. The admin console will be available at http://localhost:8080/. - -You can attach a Java debugger at `localhost:8081`. - -The realm export is in `import/testing.json`. -It will be imported automatically when Keycloak starts. - -## Updating the Realm - -If you want to make changes to the testing realm and persist them, you need to export the realm. - -The following command runs the Keycloak export for the realm `testing` storing it in the mapped directory `import/testing.json`. -The copying of the database is necessary to avoid locking errors. -`env -i` makes sure the regular environment variables are not set to avoid port conflicts. - -```sh -docker compose exec -it keycloak sh -c "cp -rp /opt/keycloak/data/h2 /tmp && env -i -- /opt/keycloak/bin/kc.sh export --db dev-file --db-url 'jdbc:h2:file:/tmp/h2/keycloakdb;NON_KEYWORDS=VALUE' --file /opt/keycloak/data/import/testing.json --realm testing" -``` - -## Testing Realm Configuration - -The realm contains these objects: - -* Clients: - * `export-dooris-ssh-keys` with secret `export-dooris-ssh-keys-secret` and role `export-dooris-ssh-keys` - * `export-mailing-list-addresses` with secret `export-mailing-list-addresses-secret` and role `export-mailing-list-addresses` -* Realm Roles: - * `dooris-authorized` - * `mailing-list-chaos-member` - * `mailing-list-intern-member` - * `export-dooris-ssh-keys` - * `export-mailing-list-addresses` -* Groups: - * `chaos` with role `mailing-list-chaos-member` - * `ìntern` with roles `dooris-authorized` and `mailing-list-intern-member` -* Users: - * `tester` (Tony Tester), email `tester@example.com`, member of group `chaos` - * Mailing List Addresses: - * Chaos: `tester+chaos@example.com` - * Intern: `tester+intern@example.com` - * Dooris SSH Keys: - * SSH Key 1: `tester-ssh-key-1` - * SSH Key 2: `tester-ssh-key-2` - * `hacker` (Hans Acker), email `hacker@example.net`, member of groups `chaos`and `intern` - * Mailing List Addresses: - * Chaos: `hacker+chaos@example.net` - * Intern: `hacker+intern@example.net` - * Dooris SSH Keys: - * SSH Key 1: `hacker-ssh-key-1` - * SSH Key 2: `hacker-ssh-key-2` diff --git a/testing/compose.yaml b/testing/compose.yaml deleted file mode 100644 index ee2a937..0000000 --- a/testing/compose.yaml +++ /dev/null @@ -1,17 +0,0 @@ -services: - keycloak: - image: quay.io/keycloak/keycloak:26.7.0 - pull_policy: always - command: "start-dev --features=declarative-ui --import-realm" - environment: - KC_BOOTSTRAP_ADMIN_USERNAME: admin - KC_BOOTSTRAP_ADMIN_PASSWORD: admin - KC_LOG_LEVEL: info - KC_DEBUG: true - KC_DEBUG_PORT: "*:8081" - ports: - - "8080:8080" - - "8081:8081" - volumes: - - ./import:/opt/keycloak/data/import/ - - ../attribute-endpoints-provider/target/attribute-endpoints-provider-1.0-SNAPSHOT.jar:/opt/keycloak/providers/attribute-endpoints-provider.jar \ No newline at end of file diff --git a/testing/import/testing.json b/testing/import/testing.json deleted file mode 100644 index a91df6c..0000000 --- a/testing/import/testing.json +++ /dev/null @@ -1,2372 +0,0 @@ -{ - "id" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac", - "realm" : "testing", - "notBefore" : 0, - "defaultSignatureAlgorithm" : "RS256", - "revokeRefreshToken" : false, - "refreshTokenMaxReuse" : 0, - "accessTokenLifespan" : 300, - "accessTokenLifespanForImplicitFlow" : 900, - "ssoSessionIdleTimeout" : 1800, - "ssoSessionMaxLifespan" : 36000, - "ssoSessionIdleTimeoutRememberMe" : 0, - "ssoSessionMaxLifespanRememberMe" : 0, - "offlineSessionIdleTimeout" : 2592000, - "offlineSessionMaxLifespanEnabled" : false, - "offlineSessionMaxLifespan" : 5184000, - "clientSessionIdleTimeout" : 0, - "clientSessionMaxLifespan" : 0, - "clientOfflineSessionIdleTimeout" : 0, - "clientOfflineSessionMaxLifespan" : 0, - "accessCodeLifespan" : 60, - "accessCodeLifespanUserAction" : 300, - "accessCodeLifespanLogin" : 1800, - "actionTokenGeneratedByAdminLifespan" : 43200, - "actionTokenGeneratedByUserLifespan" : 300, - "oauth2DeviceCodeLifespan" : 600, - "oauth2DevicePollingInterval" : 5, - "enabled" : true, - "sslRequired" : "external", - "registrationAllowed" : false, - "registrationEmailAsUsername" : false, - "rememberMe" : false, - "verifyEmail" : false, - "loginWithEmailAllowed" : true, - "duplicateEmailsAllowed" : false, - "resetPasswordAllowed" : false, - "editUsernameAllowed" : false, - "bruteForceProtected" : false, - "permanentLockout" : false, - "maxTemporaryLockouts" : 0, - "bruteForceStrategy" : "MULTIPLE", - "maxFailureWaitSeconds" : 900, - "minimumQuickLoginWaitSeconds" : 60, - "waitIncrementSeconds" : 60, - "quickLoginCheckMilliSeconds" : 1000, - "maxDeltaTimeSeconds" : 43200, - "failureFactor" : 30, - "maxSecondaryAuthFailures" : 0, - "roles" : { - "realm" : [ { - "id" : "a96af449-cb49-441c-8037-d58b9f3f7e03", - "name" : "export-dooris-ssh-keys", - "description" : "Assignee is authorized to export Dooris SSH Keys", - "composite" : false, - "clientRole" : false, - "containerId" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac", - "attributes" : { } - }, { - "id" : "403d83e5-3f7e-41c4-b81e-51cb5aa1629a", - "name" : "export-mailing-list-addresses", - "description" : "Assignee is authorized to export mailing-list-addresses", - "composite" : false, - "clientRole" : false, - "containerId" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac", - "attributes" : { } - }, { - "id" : "ab3c5e56-28db-41ec-be43-a36888c1d65b", - "name" : "mailing-list-intern-member", - "description" : "Assignees are members of the intern mailing list", - "composite" : false, - "clientRole" : false, - "containerId" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac", - "attributes" : { } - }, { - "id" : "fde6a2ee-2d09-46a4-8fa1-83649f9151eb", - "name" : "offline_access", - "description" : "${role_offline-access}", - "composite" : false, - "clientRole" : false, - "containerId" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac", - "attributes" : { } - }, { - "id" : "9328f419-6385-4981-8465-69a9bc6fe84f", - "name" : "default-roles-testing", - "description" : "${role_default-roles}", - "composite" : true, - "composites" : { - "realm" : [ "offline_access", "uma_authorization" ], - "client" : { - "account" : [ "view-profile", "manage-account" ] - } - }, - "clientRole" : false, - "containerId" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac", - "attributes" : { } - }, { - "id" : "4421cfbd-f4c7-4a14-a34f-72412eb295c7", - "name" : "mailing-list-chaos-member", - "description" : "Assignees are members of chaos mailing list", - "composite" : false, - "clientRole" : false, - "containerId" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac", - "attributes" : { } - }, { - "id" : "923001ff-b44f-4869-808d-6489f52fc1cc", - "name" : "uma_authorization", - "description" : "${role_uma_authorization}", - "composite" : false, - "clientRole" : false, - "containerId" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac", - "attributes" : { } - }, { - "id" : "7a7be205-fcd3-448b-b293-ef7d59b59f54", - "name" : "dooris-authorized", - "description" : "Assignees are allowed to use Dooris", - "composite" : false, - "clientRole" : false, - "containerId" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac", - "attributes" : { } - } ], - "client" : { - "realm-management" : [ { - "id" : "5cdbd87c-94b8-47d4-b5a3-ec4760fbece4", - "name" : "manage-clients", - "description" : "${role_manage-clients}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "2f3d4708-857e-40fe-9cde-198033e3aef2", - "name" : "query-realms", - "description" : "${role_query-realms}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "e7a55e70-b8f7-4e25-9219-f3a058ad198f", - "name" : "impersonation", - "description" : "${role_impersonation}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "7352ecaa-b82d-4d93-ac9a-04f503174f6d", - "name" : "view-realm", - "description" : "${role_view-realm}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "1597d724-347d-4eb4-ad7d-6c300791faef", - "name" : "query-users", - "description" : "${role_query-users}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "41cc187f-1e53-48fc-a8b0-134f651c04a4", - "name" : "query-clients", - "description" : "${role_query-clients}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "7219e37a-5e9d-405e-9baf-c26c53c6c766", - "name" : "view-authorization", - "description" : "${role_view-authorization}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "a0225a09-b0c2-407b-9dd5-abbff5a57dcf", - "name" : "view-clients", - "description" : "${role_view-clients}", - "composite" : true, - "composites" : { - "client" : { - "realm-management" : [ "query-clients" ] - } - }, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "1724e3b4-adb8-4ba1-9a79-721544d08738", - "name" : "manage-events", - "description" : "${role_manage-events}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "bd20a067-a063-4690-8824-6495033657e2", - "name" : "query-groups", - "description" : "${role_query-groups}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "ebbcb73f-ddf0-49fd-b40a-11e03af9b047", - "name" : "view-identity-providers", - "description" : "${role_view-identity-providers}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "62505d2a-eea0-4cf0-8162-198b3bc3c1d2", - "name" : "create-client", - "description" : "${role_create-client}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "5a0cc2fa-964c-47ef-b2bf-ebcbb1fd7c13", - "name" : "realm-admin", - "description" : "${role_realm-admin}", - "composite" : true, - "composites" : { - "client" : { - "realm-management" : [ "manage-clients", "query-realms", "impersonation", "view-realm", "query-users", "query-clients", "view-authorization", "view-clients", "manage-events", "query-groups", "view-identity-providers", "create-client", "manage-authorization", "manage-users", "view-users", "view-events", "manage-identity-providers", "manage-realm" ] - } - }, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "f4945547-4c63-476c-b223-cdd6698557df", - "name" : "manage-authorization", - "description" : "${role_manage-authorization}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "b461d060-1f22-4fd0-b47b-8bdb0889ea33", - "name" : "manage-users", - "description" : "${role_manage-users}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "be1f1ece-be9a-4ba4-b214-68f903fb0206", - "name" : "view-users", - "description" : "${role_view-users}", - "composite" : true, - "composites" : { - "client" : { - "realm-management" : [ "query-users", "query-groups" ] - } - }, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "2c0e3948-6950-4427-877d-b7cfb8000ee6", - "name" : "manage-identity-providers", - "description" : "${role_manage-identity-providers}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "049bbbb0-b577-4aad-9454-4bf7f31e73a2", - "name" : "view-events", - "description" : "${role_view-events}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - }, { - "id" : "f55c718b-5280-4d1f-bc87-62433ae9dff2", - "name" : "manage-realm", - "description" : "${role_manage-realm}", - "composite" : false, - "clientRole" : true, - "containerId" : "3666c170-90e9-495a-852c-9c1a8b026247", - "attributes" : { } - } ], - "security-admin-console" : [ ], - "export-dooris-ssh-keys" : [ ], - "admin-cli" : [ ], - "account-console" : [ ], - "export-mailing-list-addresses" : [ ], - "broker" : [ { - "id" : "e704e419-5d19-49d4-9b87-cfbc63bfe3bf", - "name" : "read-token", - "description" : "${role_read-token}", - "composite" : false, - "clientRole" : true, - "containerId" : "31480b85-63d7-4ca5-92d8-bdb20a06bf05", - "attributes" : { } - } ], - "account" : [ { - "id" : "227cb594-b8ef-4923-8d24-5c6c10b95040", - "name" : "view-groups", - "description" : "${role_view-groups}", - "composite" : false, - "clientRole" : true, - "containerId" : "891c72d7-3d4a-4ba7-87a3-4b0b66cb579e", - "attributes" : { } - }, { - "id" : "085e189c-44b4-44f3-8656-7f8557bb4378", - "name" : "delete-account", - "description" : "${role_delete-account}", - "composite" : false, - "clientRole" : true, - "containerId" : "891c72d7-3d4a-4ba7-87a3-4b0b66cb579e", - "attributes" : { } - }, { - "id" : "2adadd55-4894-4526-9363-057c2af12cb6", - "name" : "view-consent", - "description" : "${role_view-consent}", - "composite" : false, - "clientRole" : true, - "containerId" : "891c72d7-3d4a-4ba7-87a3-4b0b66cb579e", - "attributes" : { } - }, { - "id" : "76806048-a444-4c09-a6b6-892c7b808d50", - "name" : "view-applications", - "description" : "${role_view-applications}", - "composite" : false, - "clientRole" : true, - "containerId" : "891c72d7-3d4a-4ba7-87a3-4b0b66cb579e", - "attributes" : { } - }, { - "id" : "db8769ea-52f2-4e9a-9b9c-eb087e8763eb", - "name" : "manage-account", - "description" : "${role_manage-account}", - "composite" : true, - "composites" : { - "client" : { - "account" : [ "manage-account-links" ] - } - }, - "clientRole" : true, - "containerId" : "891c72d7-3d4a-4ba7-87a3-4b0b66cb579e", - "attributes" : { } - }, { - "id" : "4ed78057-c7cf-4304-830f-f7e2e1058e1f", - "name" : "view-profile", - "description" : "${role_view-profile}", - "composite" : false, - "clientRole" : true, - "containerId" : "891c72d7-3d4a-4ba7-87a3-4b0b66cb579e", - "attributes" : { } - }, { - "id" : "25c55944-45ec-41a2-b44f-504bca8b5867", - "name" : "manage-consent", - "description" : "${role_manage-consent}", - "composite" : true, - "composites" : { - "client" : { - "account" : [ "view-consent" ] - } - }, - "clientRole" : true, - "containerId" : "891c72d7-3d4a-4ba7-87a3-4b0b66cb579e", - "attributes" : { } - }, { - "id" : "662f89ed-29b6-4b33-86a6-a3dc45d1f67a", - "name" : "manage-account-links", - "description" : "${role_manage-account-links}", - "composite" : false, - "clientRole" : true, - "containerId" : "891c72d7-3d4a-4ba7-87a3-4b0b66cb579e", - "attributes" : { } - } ] - } - }, - "groups" : [ { - "id" : "68f0ba8e-9f16-44f8-b70d-5a4142c30bd5", - "name" : "chaos", - "description" : "", - "path" : "/chaos", - "subGroups" : [ ], - "attributes" : { }, - "realmRoles" : [ "mailing-list-chaos-member" ], - "clientRoles" : { } - }, { - "id" : "cb191c22-2afa-4cc8-b71c-0ad5eb032f2d", - "name" : "intern", - "description" : "", - "path" : "/intern", - "subGroups" : [ ], - "attributes" : { }, - "realmRoles" : [ "mailing-list-intern-member", "dooris-authorized" ], - "clientRoles" : { } - } ], - "defaultRole" : { - "id" : "9328f419-6385-4981-8465-69a9bc6fe84f", - "name" : "default-roles-testing", - "description" : "${role_default-roles}", - "composite" : true, - "clientRole" : false, - "containerId" : "2f110d7d-3252-45ed-add5-cb56c8f7b0ac" - }, - "requiredCredentials" : [ "password" ], - "otpPolicyType" : "totp", - "otpPolicyAlgorithm" : "HmacSHA1", - "otpPolicyInitialCounter" : 0, - "otpPolicyDigits" : 6, - "otpPolicyLookAheadWindow" : 1, - "otpPolicyPeriod" : 30, - "otpPolicyCodeReusable" : false, - "otpSupportedApplications" : [ "totpAppFreeOTPName", "totpAppGoogleName", "totpAppMicrosoftAuthenticatorName" ], - "localizationTexts" : { }, - "webAuthnPolicyRpEntityName" : "keycloak", - "webAuthnPolicySignatureAlgorithms" : [ "ES256", "RS256" ], - "webAuthnPolicyRpId" : "", - "webAuthnPolicyAttestationConveyancePreference" : "not specified", - "webAuthnPolicyAuthenticatorAttachment" : "not specified", - "webAuthnPolicyRequireResidentKey" : "not specified", - "webAuthnPolicyUserVerificationRequirement" : "not specified", - "webAuthnPolicyCreateTimeout" : 0, - "webAuthnPolicyAvoidSameAuthenticatorRegister" : false, - "webAuthnPolicyAcceptableAaguids" : [ ], - "webAuthnPolicyExtraOrigins" : [ ], - "webAuthnPolicyPasswordlessRpEntityName" : "keycloak", - "webAuthnPolicyPasswordlessSignatureAlgorithms" : [ "ES256", "RS256" ], - "webAuthnPolicyPasswordlessRpId" : "", - "webAuthnPolicyPasswordlessAttestationConveyancePreference" : "not specified", - "webAuthnPolicyPasswordlessAuthenticatorAttachment" : "not specified", - "webAuthnPolicyPasswordlessRequireResidentKey" : "Yes", - "webAuthnPolicyPasswordlessUserVerificationRequirement" : "required", - "webAuthnPolicyPasswordlessCreateTimeout" : 0, - "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister" : false, - "webAuthnPolicyPasswordlessAcceptableAaguids" : [ ], - "webAuthnPolicyPasswordlessExtraOrigins" : [ ], - "users" : [ { - "id" : "1a4e6feb-7349-4961-8ebf-50f553e88ac5", - "username" : "hacker", - "firstName" : "Hans", - "lastName" : "Acker", - "email" : "hacker@example.com", - "emailVerified" : false, - "attributes" : { - "ssh-key-1" : [ "hacker-ssh-key-1" ], - "mailing-list-address-intern" : [ "hacker+intern@example.net" ], - "ssh-key-2" : [ "hacker-ssh-key-2" ], - "mailing-list-address-chaos" : [ "hacker+chaos@example.net" ] - }, - "enabled" : true, - "createdTimestamp" : 1784376038850, - "totp" : false, - "credentials" : [ ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ ], - "realmRoles" : [ "default-roles-testing" ], - "notBefore" : 0, - "groups" : [ "/chaos", "/intern" ] - }, { - "id" : "20904a4a-2ee5-4226-8965-c8d90b488653", - "username" : "service-account-export-dooris-ssh-keys", - "emailVerified" : false, - "enabled" : true, - "createdTimestamp" : 1784372754885, - "totp" : false, - "serviceAccountClientId" : "export-dooris-ssh-keys", - "credentials" : [ ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ ], - "realmRoles" : [ "default-roles-testing" ], - "notBefore" : 0, - "groups" : [ ] - }, { - "id" : "d52d64fb-b619-450e-9db5-5336e757b07a", - "username" : "service-account-export-mailing-list-addresses", - "emailVerified" : false, - "enabled" : true, - "createdTimestamp" : 1784372816293, - "totp" : false, - "serviceAccountClientId" : "export-mailing-list-addresses", - "credentials" : [ ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ ], - "realmRoles" : [ "default-roles-testing" ], - "notBefore" : 0, - "groups" : [ ] - }, { - "id" : "187fd2b8-1d4b-4020-b2cc-15cc98b7eec3", - "username" : "tester", - "firstName" : "Tony", - "lastName" : "Tester", - "email" : "tester@example.com", - "emailVerified" : false, - "attributes" : { - "ssh-key-1" : [ "tester-ssh-key-1" ], - "mailing-list-address-intern" : [ "tester+intern@example.com" ], - "ssh-key-2" : [ "tester-ssh-key-2" ], - "mailing-list-address-chaos" : [ "tester+chaos@example.com" ] - }, - "enabled" : true, - "createdTimestamp" : 1784375858793, - "totp" : false, - "credentials" : [ ], - "disableableCredentialTypes" : [ ], - "requiredActions" : [ ], - "realmRoles" : [ "default-roles-testing" ], - "notBefore" : 0, - "groups" : [ "/chaos" ] - } ], - "scopeMappings" : [ { - "clientScope" : "offline_access", - "roles" : [ "offline_access" ] - } ], - "clientScopeMappings" : { - "account" : [ { - "client" : "account-console", - "roles" : [ "manage-account", "view-groups" ] - } ] - }, - "clients" : [ { - "id" : "891c72d7-3d4a-4ba7-87a3-4b0b66cb579e", - "clientId" : "account", - "name" : "${client_account}", - "rootUrl" : "${authBaseUrl}", - "baseUrl" : "/realms/testing/account/", - "surrogateAuthRequired" : false, - "enabled" : true, - "alwaysDisplayInConsole" : false, - "clientAuthenticatorType" : "client-secret", - "redirectUris" : [ "/realms/testing/account/*" ], - "webOrigins" : [ ], - "notBefore" : 0, - "bearerOnly" : false, - "consentRequired" : false, - "standardFlowEnabled" : true, - "implicitFlowEnabled" : false, - "directAccessGrantsEnabled" : false, - "serviceAccountsEnabled" : false, - "publicClient" : true, - "frontchannelLogout" : false, - "protocol" : "openid-connect", - "attributes" : { - "realm_client" : "false", - "post.logout.redirect.uris" : "+" - }, - "authenticationFlowBindingOverrides" : { }, - "fullScopeAllowed" : false, - "nodeReRegistrationTimeout" : 0, - "defaultClientScopes" : [ "web-origins", "acr", "profile", "roles", "basic", "email" ], - "optionalClientScopes" : [ "address", "phone", "offline_access", "organization", "microprofile-jwt" ] - }, { - "id" : "483e0419-7a14-432d-8dc2-63e7bc11834e", - "clientId" : "account-console", - "name" : "${client_account-console}", - "rootUrl" : "${authBaseUrl}", - "baseUrl" : "/realms/testing/account/", - "surrogateAuthRequired" : false, - "enabled" : true, - "alwaysDisplayInConsole" : false, - "clientAuthenticatorType" : "client-secret", - "redirectUris" : [ "/realms/testing/account/*" ], - "webOrigins" : [ ], - "notBefore" : 0, - "bearerOnly" : false, - "consentRequired" : false, - "standardFlowEnabled" : true, - "implicitFlowEnabled" : false, - "directAccessGrantsEnabled" : false, - "serviceAccountsEnabled" : false, - "publicClient" : true, - "frontchannelLogout" : false, - "protocol" : "openid-connect", - "attributes" : { - "realm_client" : "false", - "post.logout.redirect.uris" : "+", - "pkce.code.challenge.method" : "S256" - }, - "authenticationFlowBindingOverrides" : { }, - "fullScopeAllowed" : false, - "nodeReRegistrationTimeout" : 0, - "protocolMappers" : [ { - "id" : "6067528d-8b22-461d-87de-8d3286e22a63", - "name" : "audience resolve", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-audience-resolve-mapper", - "consentRequired" : false, - "config" : { } - } ], - "defaultClientScopes" : [ "web-origins", "acr", "profile", "roles", "basic", "email" ], - "optionalClientScopes" : [ "address", "phone", "offline_access", "organization", "microprofile-jwt" ] - }, { - "id" : "d55992ee-3699-426e-8746-898d6fbb97da", - "clientId" : "admin-cli", - "name" : "${client_admin-cli}", - "surrogateAuthRequired" : false, - "enabled" : true, - "alwaysDisplayInConsole" : false, - "clientAuthenticatorType" : "client-secret", - "redirectUris" : [ ], - "webOrigins" : [ ], - "notBefore" : 0, - "bearerOnly" : false, - "consentRequired" : false, - "standardFlowEnabled" : false, - "implicitFlowEnabled" : false, - "directAccessGrantsEnabled" : true, - "serviceAccountsEnabled" : false, - "publicClient" : true, - "frontchannelLogout" : false, - "protocol" : "openid-connect", - "attributes" : { - "realm_client" : "false", - "client.use.lightweight.access.token.enabled" : "true", - "post.logout.redirect.uris" : "+" - }, - "authenticationFlowBindingOverrides" : { }, - "fullScopeAllowed" : true, - "nodeReRegistrationTimeout" : 0, - "defaultClientScopes" : [ "web-origins", "acr", "profile", "roles", "basic", "email" ], - "optionalClientScopes" : [ "address", "phone", "offline_access", "organization", "microprofile-jwt" ] - }, { - "id" : "31480b85-63d7-4ca5-92d8-bdb20a06bf05", - "clientId" : "broker", - "name" : "${client_broker}", - "surrogateAuthRequired" : false, - "enabled" : true, - "alwaysDisplayInConsole" : false, - "clientAuthenticatorType" : "client-secret", - "redirectUris" : [ ], - "webOrigins" : [ ], - "notBefore" : 0, - "bearerOnly" : true, - "consentRequired" : false, - "standardFlowEnabled" : true, - "implicitFlowEnabled" : false, - "directAccessGrantsEnabled" : false, - "serviceAccountsEnabled" : false, - "publicClient" : false, - "frontchannelLogout" : false, - "protocol" : "openid-connect", - "attributes" : { - "realm_client" : "true", - "post.logout.redirect.uris" : "+" - }, - "authenticationFlowBindingOverrides" : { }, - "fullScopeAllowed" : false, - "nodeReRegistrationTimeout" : 0, - "defaultClientScopes" : [ "web-origins", "acr", "profile", "roles", "basic", "email" ], - "optionalClientScopes" : [ "address", "phone", "offline_access", "organization", "microprofile-jwt" ] - }, { - "id" : "15bb2ee5-3319-45b3-b085-622989b34d09", - "clientId" : "export-dooris-ssh-keys", - "name" : "", - "description" : "Service Account to export SSH Keys", - "rootUrl" : "", - "adminUrl" : "", - "baseUrl" : "", - "surrogateAuthRequired" : false, - "enabled" : true, - "alwaysDisplayInConsole" : false, - "clientAuthenticatorType" : "client-secret", - "secret" : "export-dooris-ssh-keys-secret", - "redirectUris" : [ "/*" ], - "webOrigins" : [ "/*" ], - "notBefore" : 0, - "bearerOnly" : false, - "consentRequired" : false, - "standardFlowEnabled" : false, - "implicitFlowEnabled" : false, - "directAccessGrantsEnabled" : false, - "serviceAccountsEnabled" : true, - "publicClient" : false, - "frontchannelLogout" : true, - "protocol" : "openid-connect", - "attributes" : { - "logout.confirmation.enabled" : "false", - "client.secret.creation.time" : "1784372754", - "standard.token.exchange.enabled" : "false", - "oauth2.jwt.authorization.grant.enabled" : "false", - "frontchannel.logout.session.required" : "true", - "post.logout.redirect.uris" : "+", - "oauth2.device.authorization.grant.enabled" : "false", - "backchannel.logout.revoke.offline.tokens" : "false", - "realm_client" : "false", - "oidc.ciba.grant.enabled" : "false", - "backchannel.logout.session.required" : "true", - "display.on.consent.screen" : "false", - "dpop.bound.access.tokens" : "false" - }, - "authenticationFlowBindingOverrides" : { }, - "fullScopeAllowed" : true, - "nodeReRegistrationTimeout" : -1, - "defaultClientScopes" : [ "web-origins", "service_account", "acr", "profile", "roles", "basic", "email" ], - "optionalClientScopes" : [ "address", "phone", "offline_access", "organization", "microprofile-jwt" ] - }, { - "id" : "c4a8c271-9294-44b7-945d-4023f845922c", - "clientId" : "export-mailing-list-addresses", - "name" : "", - "description" : "Service Account to export mailing list addresses", - "rootUrl" : "", - "adminUrl" : "", - "baseUrl" : "", - "surrogateAuthRequired" : false, - "enabled" : true, - "alwaysDisplayInConsole" : false, - "clientAuthenticatorType" : "client-secret", - "secret" : "export-mailing-list-addresses-secret", - "redirectUris" : [ "/*" ], - "webOrigins" : [ "/*" ], - "notBefore" : 0, - "bearerOnly" : false, - "consentRequired" : false, - "standardFlowEnabled" : false, - "implicitFlowEnabled" : false, - "directAccessGrantsEnabled" : false, - "serviceAccountsEnabled" : true, - "publicClient" : false, - "frontchannelLogout" : true, - "protocol" : "openid-connect", - "attributes" : { - "logout.confirmation.enabled" : "false", - "client.secret.creation.time" : "1784372816", - "standard.token.exchange.enabled" : "false", - "oauth2.jwt.authorization.grant.enabled" : "false", - "frontchannel.logout.session.required" : "true", - "post.logout.redirect.uris" : "+", - "oauth2.device.authorization.grant.enabled" : "false", - "backchannel.logout.revoke.offline.tokens" : "false", - "realm_client" : "false", - "oidc.ciba.grant.enabled" : "false", - "backchannel.logout.session.required" : "true", - "display.on.consent.screen" : "false", - "dpop.bound.access.tokens" : "false" - }, - "authenticationFlowBindingOverrides" : { }, - "fullScopeAllowed" : true, - "nodeReRegistrationTimeout" : -1, - "defaultClientScopes" : [ "web-origins", "service_account", "acr", "profile", "roles", "basic", "email" ], - "optionalClientScopes" : [ "address", "phone", "offline_access", "organization", "microprofile-jwt" ] - }, { - "id" : "3666c170-90e9-495a-852c-9c1a8b026247", - "clientId" : "realm-management", - "name" : "${client_realm-management}", - "surrogateAuthRequired" : false, - "enabled" : true, - "alwaysDisplayInConsole" : false, - "clientAuthenticatorType" : "client-secret", - "redirectUris" : [ ], - "webOrigins" : [ ], - "notBefore" : 0, - "bearerOnly" : true, - "consentRequired" : false, - "standardFlowEnabled" : true, - "implicitFlowEnabled" : false, - "directAccessGrantsEnabled" : false, - "serviceAccountsEnabled" : false, - "publicClient" : false, - "frontchannelLogout" : false, - "protocol" : "openid-connect", - "attributes" : { - "realm_client" : "true", - "post.logout.redirect.uris" : "+" - }, - "authenticationFlowBindingOverrides" : { }, - "fullScopeAllowed" : false, - "nodeReRegistrationTimeout" : 0, - "defaultClientScopes" : [ "web-origins", "acr", "profile", "roles", "basic", "email" ], - "optionalClientScopes" : [ "address", "phone", "offline_access", "organization", "microprofile-jwt" ] - }, { - "id" : "4ef48a10-149d-4856-abf0-aa812f325dba", - "clientId" : "security-admin-console", - "name" : "${client_security-admin-console}", - "rootUrl" : "${authAdminUrl}", - "baseUrl" : "/admin/testing/console/", - "surrogateAuthRequired" : false, - "enabled" : true, - "alwaysDisplayInConsole" : false, - "clientAuthenticatorType" : "client-secret", - "redirectUris" : [ "/admin/testing/console/*" ], - "webOrigins" : [ "+" ], - "notBefore" : 0, - "bearerOnly" : false, - "consentRequired" : false, - "standardFlowEnabled" : true, - "implicitFlowEnabled" : false, - "directAccessGrantsEnabled" : false, - "serviceAccountsEnabled" : false, - "publicClient" : true, - "frontchannelLogout" : false, - "protocol" : "openid-connect", - "attributes" : { - "realm_client" : "false", - "client.use.lightweight.access.token.enabled" : "true", - "post.logout.redirect.uris" : "+", - "pkce.code.challenge.method" : "S256" - }, - "authenticationFlowBindingOverrides" : { }, - "fullScopeAllowed" : true, - "nodeReRegistrationTimeout" : 0, - "protocolMappers" : [ { - "id" : "19ccf819-2a1e-48a1-b44c-50c31374696d", - "name" : "locale", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "locale", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "locale", - "jsonType.label" : "String" - } - } ], - "defaultClientScopes" : [ "web-origins", "acr", "profile", "roles", "basic", "email" ], - "optionalClientScopes" : [ "address", "phone", "offline_access", "organization", "microprofile-jwt" ] - } ], - "clientScopes" : [ { - "id" : "f76d9915-4e2e-4a68-b631-0bdec5dfcb45", - "name" : "saml_organization", - "description" : "Organization Membership", - "protocol" : "saml", - "attributes" : { - "display.on.consent.screen" : "false" - }, - "protocolMappers" : [ { - "id" : "f1624dae-24b8-494d-9857-45f9363d1308", - "name" : "organization", - "protocol" : "saml", - "protocolMapper" : "saml-organization-membership-mapper", - "consentRequired" : false, - "config" : { } - } ] - }, { - "id" : "29e54d71-0254-40b9-ac79-c49c2e712625", - "name" : "service_account", - "description" : "Specific scope for a client enabled for service accounts", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "false", - "display.on.consent.screen" : "false" - }, - "protocolMappers" : [ { - "id" : "533ab2af-e962-4698-8524-ff1e5feaabc0", - "name" : "Client IP Address", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usersessionmodel-note-mapper", - "consentRequired" : false, - "config" : { - "user.session.note" : "clientAddress", - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "clientAddress", - "jsonType.label" : "String" - } - }, { - "id" : "4dd69138-6701-410c-b21b-39cd45e81cda", - "name" : "Client ID", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usersessionmodel-note-mapper", - "consentRequired" : false, - "config" : { - "user.session.note" : "client_id", - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "client_id", - "jsonType.label" : "String" - } - }, { - "id" : "dc27696c-4762-456d-b33e-c045056c8d44", - "name" : "Client Host", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usersessionmodel-note-mapper", - "consentRequired" : false, - "config" : { - "user.session.note" : "clientHost", - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "clientHost", - "jsonType.label" : "String" - } - } ] - }, { - "id" : "70b4d2bd-f366-491d-bc82-6dccc65c5e84", - "name" : "roles", - "description" : "OpenID Connect scope for add user roles to the access token", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "false", - "consent.screen.text" : "${rolesScopeConsentText}", - "display.on.consent.screen" : "true" - }, - "protocolMappers" : [ { - "id" : "98455946-9bde-45ba-a9a1-b82dbb3c65d0", - "name" : "realm roles", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-realm-role-mapper", - "consentRequired" : false, - "config" : { - "user.attribute" : "foo", - "introspection.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "realm_access.roles", - "jsonType.label" : "String", - "multivalued" : "true" - } - }, { - "id" : "73e63434-7636-436a-a42b-aead32f1c15f", - "name" : "audience resolve", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-audience-resolve-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "access.token.claim" : "true" - } - }, { - "id" : "d881458a-5e02-45f3-a688-dc655243ebd6", - "name" : "client roles", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-client-role-mapper", - "consentRequired" : false, - "config" : { - "user.attribute" : "foo", - "introspection.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "resource_access.${client_id}.roles", - "jsonType.label" : "String", - "multivalued" : "true" - } - } ] - }, { - "id" : "e6c64ea5-fc31-4edf-964a-2a3b90feef76", - "name" : "acr", - "description" : "OpenID Connect scope for add acr (authentication context class reference) to the token", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "false", - "display.on.consent.screen" : "false" - }, - "protocolMappers" : [ { - "id" : "508f9f87-fbe7-4eab-88dd-bbc11b98413f", - "name" : "acr loa level", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-acr-mapper", - "consentRequired" : false, - "config" : { - "id.token.claim" : "true", - "introspection.token.claim" : "true", - "access.token.claim" : "true", - "userinfo.token.claim" : "true" - } - } ] - }, { - "id" : "2e4639eb-47b3-4d30-80d0-2be2d045c2dc", - "name" : "web-origins", - "description" : "OpenID Connect scope for add allowed web origins to the access token", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "false", - "consent.screen.text" : "", - "display.on.consent.screen" : "false" - }, - "protocolMappers" : [ { - "id" : "6554bc30-75bd-4482-852a-85896e1610cf", - "name" : "allowed web origins", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-allowed-origins-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "access.token.claim" : "true" - } - } ] - }, { - "id" : "429bfa3e-0a01-439d-8841-416f80f34b88", - "name" : "address", - "description" : "OpenID Connect built-in scope: address", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "true", - "consent.screen.text" : "${addressScopeConsentText}", - "display.on.consent.screen" : "true" - }, - "protocolMappers" : [ { - "id" : "455bc3c1-bdb7-4dc2-b0dd-5f1b4e30c30b", - "name" : "address", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-address-mapper", - "consentRequired" : false, - "config" : { - "user.attribute.formatted" : "formatted", - "user.attribute.country" : "country", - "introspection.token.claim" : "true", - "user.attribute.postal_code" : "postal_code", - "userinfo.token.claim" : "true", - "user.attribute.street" : "street", - "id.token.claim" : "true", - "user.attribute.region" : "region", - "access.token.claim" : "true", - "user.attribute.locality" : "locality" - } - } ] - }, { - "id" : "176d2bd5-faa4-4e23-8988-389284108f45", - "name" : "offline_access", - "description" : "OpenID Connect built-in scope: offline_access", - "protocol" : "openid-connect", - "attributes" : { - "consent.screen.text" : "${offlineAccessScopeConsentText}", - "display.on.consent.screen" : "true" - } - }, { - "id" : "ae111ad2-1447-41c2-8ef1-cb3b5ed4604a", - "name" : "role_list", - "description" : "SAML role list", - "protocol" : "saml", - "attributes" : { - "consent.screen.text" : "${samlRoleListScopeConsentText}", - "display.on.consent.screen" : "true" - }, - "protocolMappers" : [ { - "id" : "4db2128d-46ee-41c5-8af7-110b7d82e3a8", - "name" : "role list", - "protocol" : "saml", - "protocolMapper" : "saml-role-list-mapper", - "consentRequired" : false, - "config" : { - "single" : "false", - "attribute.nameformat" : "Basic", - "attribute.name" : "Role" - } - } ] - }, { - "id" : "271c4400-68b5-4e44-8463-f278252e6b88", - "name" : "basic", - "description" : "OpenID Connect scope for add all basic claims to the token", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "false", - "display.on.consent.screen" : "false" - }, - "protocolMappers" : [ { - "id" : "d4684e59-2e2f-40eb-8048-ade56e3f3d8c", - "name" : "auth_time", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usersessionmodel-note-mapper", - "consentRequired" : false, - "config" : { - "user.session.note" : "AUTH_TIME", - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "auth_time", - "jsonType.label" : "long" - } - }, { - "id" : "d5e0a980-7c52-4a2b-acbb-9cd10c2464a1", - "name" : "sub", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-sub-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "access.token.claim" : "true" - } - } ] - }, { - "id" : "2595443e-9d0b-465c-87ab-2f8b2e014499", - "name" : "profile", - "description" : "OpenID Connect built-in scope: profile", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "true", - "consent.screen.text" : "${profileScopeConsentText}", - "display.on.consent.screen" : "true" - }, - "protocolMappers" : [ { - "id" : "00309faf-7af2-4aac-b5fa-f5758aa27e10", - "name" : "gender", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "gender", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "gender", - "jsonType.label" : "String" - } - }, { - "id" : "0b7ce719-0e1d-48e9-b8fe-a50184cfc991", - "name" : "updated at", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "updatedAt", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "updated_at", - "jsonType.label" : "long" - } - }, { - "id" : "bd16c4af-1049-4e0f-b610-1b8eced9d706", - "name" : "family name", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "lastName", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "family_name", - "jsonType.label" : "String" - } - }, { - "id" : "a29e2bba-a266-4f6d-8748-cc7211c8ecc1", - "name" : "birthdate", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "birthdate", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "birthdate", - "jsonType.label" : "String" - } - }, { - "id" : "e86c005c-ff4b-467e-ae84-070b94a238cd", - "name" : "nickname", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "nickname", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "nickname", - "jsonType.label" : "String" - } - }, { - "id" : "bac8134e-3c6f-4a4c-8ac1-098b816c3a81", - "name" : "profile", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "profile", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "profile", - "jsonType.label" : "String" - } - }, { - "id" : "2ca3342f-0a35-48d8-86af-89136f960a23", - "name" : "full name", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-full-name-mapper", - "consentRequired" : false, - "config" : { - "id.token.claim" : "true", - "introspection.token.claim" : "true", - "access.token.claim" : "true", - "userinfo.token.claim" : "true" - } - }, { - "id" : "329be32c-5561-4983-93c8-a0283d763871", - "name" : "given name", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "firstName", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "given_name", - "jsonType.label" : "String" - } - }, { - "id" : "8f61ee81-1c87-4eae-a1a6-0001811a6065", - "name" : "locale", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "locale", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "locale", - "jsonType.label" : "String" - } - }, { - "id" : "3dc6cda7-037e-4baf-82db-ef8301574252", - "name" : "website", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "website", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "website", - "jsonType.label" : "String" - } - }, { - "id" : "7eafd2dd-581c-4447-9397-5fd902067ec3", - "name" : "middle name", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "middleName", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "middle_name", - "jsonType.label" : "String" - } - }, { - "id" : "ef5ff6a9-c290-4b3d-8b32-752a4d4f8e46", - "name" : "picture", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "picture", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "picture", - "jsonType.label" : "String" - } - }, { - "id" : "4bd7348b-687c-4723-bb5f-9aa45794e318", - "name" : "zoneinfo", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "zoneinfo", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "zoneinfo", - "jsonType.label" : "String" - } - }, { - "id" : "3d5629ed-3327-43b3-95fd-9d707a65c8c4", - "name" : "username", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "username", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "preferred_username", - "jsonType.label" : "String" - } - } ] - }, { - "id" : "6cbe4e71-5174-47f2-8eb8-1db66140a3ef", - "name" : "microprofile-jwt", - "description" : "Microprofile - JWT built-in scope", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "true", - "display.on.consent.screen" : "false" - }, - "protocolMappers" : [ { - "id" : "a0510c49-62a3-4baa-b2f2-8fa0d0700e07", - "name" : "upn", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "username", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "upn", - "jsonType.label" : "String" - } - }, { - "id" : "cf768d7e-0edd-4e07-af5a-0751a72ec317", - "name" : "groups", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-realm-role-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "multivalued" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "foo", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "groups", - "jsonType.label" : "String" - } - } ] - }, { - "id" : "6bd57b47-9fb8-4014-b2e7-b574ade6cca5", - "name" : "email", - "description" : "OpenID Connect built-in scope: email", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "true", - "consent.screen.text" : "${emailScopeConsentText}", - "display.on.consent.screen" : "true" - }, - "protocolMappers" : [ { - "id" : "85a355a3-8750-4498-9ed7-43074fa51ea5", - "name" : "email verified", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-property-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "emailVerified", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "email_verified", - "jsonType.label" : "boolean" - } - }, { - "id" : "5900ee40-6371-415c-9d48-e5d2e04af176", - "name" : "email", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "email", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "email", - "jsonType.label" : "String" - } - } ] - }, { - "id" : "e4176aa7-4e8f-4879-9dd4-ddbdcb499f79", - "name" : "phone", - "description" : "OpenID Connect built-in scope: phone", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "true", - "consent.screen.text" : "${phoneScopeConsentText}", - "display.on.consent.screen" : "true" - }, - "protocolMappers" : [ { - "id" : "be3ccfee-4966-4066-a04c-2d71790c6921", - "name" : "phone number verified", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "phoneNumberVerified", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "phone_number_verified", - "jsonType.label" : "boolean" - } - }, { - "id" : "4e0efd0a-2389-4806-8304-78f42aea9fbb", - "name" : "phone number", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-usermodel-attribute-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "userinfo.token.claim" : "true", - "user.attribute" : "phoneNumber", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "phone_number", - "jsonType.label" : "String" - } - } ] - }, { - "id" : "0a3aed92-2ac9-4dc0-98a4-60fff5606d57", - "name" : "organization", - "description" : "Additional claims about the organization a subject belongs to", - "protocol" : "openid-connect", - "attributes" : { - "include.in.token.scope" : "true", - "consent.screen.text" : "${organizationScopeConsentText}", - "display.on.consent.screen" : "true" - }, - "protocolMappers" : [ { - "id" : "f0c21663-c525-444b-a927-bf5d5a45000f", - "name" : "organization", - "protocol" : "openid-connect", - "protocolMapper" : "oidc-organization-membership-mapper", - "consentRequired" : false, - "config" : { - "introspection.token.claim" : "true", - "multivalued" : "true", - "userinfo.token.claim" : "true", - "id.token.claim" : "true", - "access.token.claim" : "true", - "claim.name" : "organization", - "jsonType.label" : "String" - } - } ] - } ], - "defaultDefaultClientScopes" : [ "role_list", "saml_organization", "profile", "email", "roles", "web-origins", "acr", "basic" ], - "defaultOptionalClientScopes" : [ "offline_access", "address", "phone", "microprofile-jwt", "organization" ], - "browserSecurityHeaders" : { - "contentSecurityPolicyReportOnly" : "", - "xContentTypeOptions" : "nosniff", - "referrerPolicy" : "no-referrer", - "xRobotsTag" : "none", - "xFrameOptions" : "SAMEORIGIN", - "contentSecurityPolicy" : "frame-src 'self'; frame-ancestors 'self'; object-src 'none';", - "strictTransportSecurity" : "max-age=31536000; includeSubDomains" - }, - "smtpServer" : { }, - "eventsEnabled" : false, - "eventsListeners" : [ "jboss-logging" ], - "enabledEventTypes" : [ ], - "adminEventsEnabled" : false, - "adminEventsDetailsEnabled" : false, - "identityProviders" : [ ], - "identityProviderMappers" : [ ], - "components" : { - "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy" : [ { - "id" : "743aea19-eae3-407e-9bbb-a9eeb964c97e", - "name" : "Allowed Registration Web Origins", - "providerId" : "registration-web-origins", - "subType" : "authenticated", - "subComponents" : { }, - "config" : { } - }, { - "id" : "c0990503-232a-4878-be20-f7597c397a43", - "name" : "Allowed Protocol Mapper Types", - "providerId" : "allowed-protocol-mappers", - "subType" : "authenticated", - "subComponents" : { }, - "config" : { - "allowed-protocol-mapper-types" : [ "saml-user-property-mapper", "saml-user-attribute-mapper", "oidc-usermodel-attribute-mapper", "oidc-address-mapper", "oidc-full-name-mapper", "saml-role-list-mapper", "oidc-sha256-pairwise-sub-mapper", "oidc-usermodel-property-mapper" ] - } - }, { - "id" : "a49de9bf-462b-4c61-bb52-0373732f4b1b", - "name" : "Allowed Client Scopes", - "providerId" : "allowed-client-templates", - "subType" : "authenticated", - "subComponents" : { }, - "config" : { - "allow-default-scopes" : [ "true" ] - } - }, { - "id" : "e5f5d0d8-4a74-4d98-b0f6-c873115a4b4d", - "name" : "Allowed Client Scopes", - "providerId" : "allowed-client-templates", - "subType" : "anonymous", - "subComponents" : { }, - "config" : { - "allow-default-scopes" : [ "true" ] - } - }, { - "id" : "af0bc676-55da-4f23-bdd3-ef88d0758063", - "name" : "Trusted Hosts", - "providerId" : "trusted-hosts", - "subType" : "anonymous", - "subComponents" : { }, - "config" : { - "host-sending-registration-request-must-match" : [ "true" ], - "client-uris-must-match" : [ "true" ] - } - }, { - "id" : "9e4df0b0-e7eb-47bd-999f-89edf5143750", - "name" : "Max Clients Limit", - "providerId" : "max-clients", - "subType" : "anonymous", - "subComponents" : { }, - "config" : { - "max-clients" : [ "200" ] - } - }, { - "id" : "70a09b7d-8852-4f8e-b09e-05c9407ada3d", - "name" : "Consent Required", - "providerId" : "consent-required", - "subType" : "anonymous", - "subComponents" : { }, - "config" : { } - }, { - "id" : "d1870dd5-a864-4632-a568-de759638999e", - "name" : "Allowed Registration Web Origins", - "providerId" : "registration-web-origins", - "subType" : "anonymous", - "subComponents" : { }, - "config" : { } - }, { - "id" : "11709f15-8a91-4829-92f7-0d6710ef1fad", - "name" : "Allowed Protocol Mapper Types", - "providerId" : "allowed-protocol-mappers", - "subType" : "anonymous", - "subComponents" : { }, - "config" : { - "allowed-protocol-mapper-types" : [ "oidc-sha256-pairwise-sub-mapper", "oidc-full-name-mapper", "oidc-address-mapper", "saml-role-list-mapper", "oidc-usermodel-attribute-mapper", "saml-user-property-mapper", "oidc-usermodel-property-mapper", "saml-user-attribute-mapper" ] - } - }, { - "id" : "dd4024e9-f080-4319-aeb7-7f9906c345c5", - "name" : "Full Scope Disabled", - "providerId" : "scope", - "subType" : "anonymous", - "subComponents" : { }, - "config" : { } - } ], - "org.keycloak.userprofile.UserProfileProvider" : [ { - "id" : "3794f85d-517e-41c8-a2ea-eeb6b6413397", - "providerId" : "declarative-user-profile", - "subComponents" : { }, - "config" : { - "kc.user.profile.config" : [ "{\"attributes\":[{\"name\":\"username\",\"displayName\":\"${username}\",\"validations\":{\"length\":{\"min\":3,\"max\":255},\"username-prohibited-characters\":{},\"up-username-not-idn-homograph\":{}},\"permissions\":{\"view\":[\"admin\",\"user\"],\"edit\":[\"admin\",\"user\"]},\"multivalued\":false},{\"name\":\"email\",\"displayName\":\"${email}\",\"validations\":{\"email\":{},\"length\":{\"max\":255}},\"required\":{\"roles\":[\"user\"]},\"permissions\":{\"view\":[\"admin\",\"user\"],\"edit\":[\"admin\",\"user\"]},\"multivalued\":false},{\"name\":\"firstName\",\"displayName\":\"${firstName}\",\"validations\":{\"length\":{\"max\":255},\"person-name-prohibited-characters\":{}},\"required\":{\"roles\":[\"user\"]},\"permissions\":{\"view\":[\"admin\",\"user\"],\"edit\":[\"admin\",\"user\"]},\"multivalued\":false},{\"name\":\"lastName\",\"displayName\":\"${lastName}\",\"validations\":{\"length\":{\"max\":255},\"person-name-prohibited-characters\":{}},\"required\":{\"roles\":[\"user\"]},\"permissions\":{\"view\":[\"admin\",\"user\"],\"edit\":[\"admin\",\"user\"]},\"multivalued\":false},{\"name\":\"ssh-key-1\",\"displayName\":\"SSH Key 1\",\"validations\":{},\"annotations\":{},\"permissions\":{\"view\":[],\"edit\":[\"admin\",\"user\"]},\"group\":\"dooris-ssh-keys\",\"multivalued\":false},{\"name\":\"ssh-key-2\",\"displayName\":\"SSH Key 2\",\"validations\":{},\"annotations\":{},\"permissions\":{\"view\":[],\"edit\":[\"admin\",\"user\"]},\"group\":\"dooris-ssh-keys\",\"multivalued\":false},{\"name\":\"mailing-list-address-chaos\",\"displayName\":\"chaos@\",\"validations\":{},\"annotations\":{},\"permissions\":{\"view\":[],\"edit\":[\"admin\",\"user\"]},\"group\":\"mailing-list-addresses\",\"multivalued\":false},{\"name\":\"mailing-list-address-intern\",\"displayName\":\"intern@\",\"validations\":{},\"annotations\":{},\"permissions\":{\"view\":[],\"edit\":[\"admin\",\"user\"]},\"group\":\"mailing-list-addresses\",\"multivalued\":false}],\"groups\":[{\"name\":\"user-metadata\",\"displayHeader\":\"User metadata\",\"displayDescription\":\"Attributes, which refer to user metadata\"},{\"name\":\"mailing-list-addresses\",\"displayHeader\":\"Mailing List Addresses\",\"displayDescription\":\"Addresses to subscribe with to the respective mailing list\",\"annotations\":{}},{\"name\":\"dooris-ssh-keys\",\"displayHeader\":\"Dooris SSH Keys\",\"displayDescription\":\"SSH Keys to use for Dooris\",\"annotations\":{}}]}" ] - } - } ], - "org.keycloak.keys.KeyProvider" : [ { - "id" : "ca2445a5-7c81-4eae-a95e-1ac58e1805ab", - "name" : "hmac-generated-hs512", - "providerId" : "hmac-generated", - "subComponents" : { }, - "config" : { - "kid" : [ "a0a65013-e2e4-4d24-917c-4b0a0424820e" ], - "secret" : [ "1B0mUVjZ0UzE2lnlAoQZPJuI6z_ek8ygSrOMS0ss2C8bkOedGfVY107EwD0HGCFxEfHNLJ-L1Nokfjl-ShKlyn5DF5va8bCAdrQRfihWWuLS3UAnPzHNJv1kWT_XjS5z18_4TUGPoenfO91G1FZh57O3NOXq_VHEkIqQCaVCXaI" ], - "priority" : [ "100" ], - "algorithm" : [ "HS512" ] - } - }, { - "id" : "eeb49ee3-805c-459e-923e-b0fdabd75bca", - "name" : "aes-generated", - "providerId" : "aes-generated", - "subComponents" : { }, - "config" : { - "kid" : [ "8c64d3db-8aa2-45ff-bd89-04edcdf2108b" ], - "secret" : [ "ECvPIcjCQP2nJyYP--Y_iA" ], - "priority" : [ "100" ] - } - }, { - "id" : "e68df07e-c423-46b0-8e1f-a364d814fc01", - "name" : "rsa-enc-generated", - "providerId" : "rsa-enc-generated", - "subComponents" : { }, - "config" : { - "privateKey" : [ "MIIEowIBAAKCAQEA1ir1jQ9ie27gdCk1dQPRBj7GCvf3GXsnGtGPgn5/x9/uYBZe/vL88fB6KFv3F1zCrTNqvEtuFhABurDw+fGfe2pSd3eVN6e6TQ1wU2DZc9cs8Hqruox5LhiNilmB+PMrsSWkTr7T2K/eZnez9yhQzDtg1wRRjZY4gt71WdH17g62K5jwdM+MP2jJj0h7iCaP4cMPFLaQXykJLlyOJD1GmkC0TFKAfeNRcBmDEZIDjVkkVwSFZM9E6n38zphtFDo+5rV1bs3lIARmwWz1ohursTefaT/JO7iVwkIS2d4+Hz0yjlCeuDvglJ6AEg59sE8cdTgKV+0ouB4zBYuBwuYFNQIDAQABAoIBAB24+eRzyCUn7s/wOtJcjzvLUSI15lM2UOewlwwd5jn6YqjEh2E2nn2CnvwkQeyPcRfR1PRWO5b67bfX1U8QMM6oo31KWVPPW/7+6Hc0hQ6bREoI8aBYMnvVPdTU4JbeQ1K4eKR9E1rf6CusXTY7SstX9PP3o3cqQU7YW+X1SlOZR0dF86u63RPzXXDGuXKF4xPfJ+oAqhrXJHKWubYqkCOEehJWHN/giB1L2KhCnBjhsQUSNkZZnF6g6VH3hoGa34V416a8J/AX9fRLXABoIiF1K+NhsjemtvoVVG9BRR+k1sy5aY2Sw8ZyPRiCNg3q1Bd/MX4SCxmzqEIFng9i7RkCgYEA+mrBI4Ebgnz0jNiUwtxlNTiXEnmSvBInKDMhfyjnKbrJd/xbIH6VSP+oPg6H/IfA353opEGOrrAq0t/YIO+cSz2RIbubGfpz0Ll69MdM9XPf0SZOwI0hO/OCtr9NRph3cO6bdpYjHq0SSZBSc4BixIhyj48phL8MV9ENU1pHI0sCgYEA2vFQVYINXtngyVQhCQpYeTc6oPw/Rz7XwSVl+4kmAvUQlpUzdh7dOQsZHd3jTovqNujxE/RATcqRFkyfmMzuOxrmJfb66eAfD7DhRq7SBJxFn3KwekLlX5ofwXOXit/w5soNbz2TyzvWC08vPHPv9vYK0rJMOs6HW9yHotmNqX8CgYAznDrwGVTVIPG58Y0/V/MX8/DW4u2GC2u8kkUuEv0JkbCiJQWW/d/Aqsg++fm25zeuHrpq2AQTJsW8rlu59ghNTYQS4rqFsSObeg7IUicfU2FmlrGWZ7/YvkhLZ8QCb7v2L4ck+q6ETQE+3hrQKT6x6LlLsyLIdCOUGcbYTfvpXwKBgAJC/eZ0OnkhXQ4XXWP/hFx0MpnZITo2LvpizYPkrczYBTzY+7gbp4NgVvkVArUcAuZgT6U6H7PuBMOrNPbaHxfjNj9sJrllxExgMmONiMPdbWaxQ5tvt3jeWbeg3w7jM1Te/3aHt1AhJRvmzIEeXXs6nXABwYHWAlXzmD8Zajo3AoGBAMxbCLhDrZOd+hxtiJugXmp7mtKGP+zKU0e9pB+tZbQ/tJjYO5qnWVuNe8VajZxz3R32Sj++sDv5ZtHvPOoVpdsOmhiOekfvQkDR7GaRPrgjTVFcDqH3dWUWbYFGtcuPYijq3Lli/XeCHcT/owxrXXXnHGUGJAasDUTFg+cd9onS" ], - "certificate" : [ "MIICnTCCAYUCBgGfdQaBBTANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAd0ZXN0aW5nMB4XDTI2MDcxODExMzgwOFoXDTM2MDcxODExMzk0OFowEjEQMA4GA1UEAwwHdGVzdGluZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANYq9Y0PYntu4HQpNXUD0QY+xgr39xl7JxrRj4J+f8ff7mAWXv7y/PHweihb9xdcwq0zarxLbhYQAbqw8Pnxn3tqUnd3lTenuk0NcFNg2XPXLPB6q7qMeS4YjYpZgfjzK7ElpE6+09iv3mZ3s/coUMw7YNcEUY2WOILe9VnR9e4OtiuY8HTPjD9oyY9Ie4gmj+HDDxS2kF8pCS5cjiQ9RppAtExSgH3jUXAZgxGSA41ZJFcEhWTPROp9/M6YbRQ6Pua1dW7N5SAEZsFs9aIbq7E3n2k/yTu4lcJCEtnePh89Mo5Qnrg74JSegBIOfbBPHHU4ClftKLgeMwWLgcLmBTUCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAQCYZ0su+yiJV6quViUIOgjNjbFRwDfNdcc05TlxUkcsOisCbeMdClI7e1y84YfDblrM40nnye/tu5+/173y2xUzoBLPdWq5gHofH9DuHJD+xQxhfEvQ4vQadRsW2r9UaXa+jTBM3rEz2R8zxw01BtXD9WA56xEUbdcfeIeqoCa1hfKE8bF7BL2VVn6+HQ19e1HfV/OzMYhSt+50XjNkaEMy+1pc22LrfYEZ34j5ZOYLv6d9dWcrxqkxhp/mWKPZlpWit0G8Zt9u8h4REJyK+jtNqUi255qEQczfrlhw1Frs0M0NLHTjA72s2TLznFPTbSLxs14z3m8H3LxJAMrkycg==" ], - "priority" : [ "100" ], - "algorithm" : [ "RSA-OAEP" ] - } - }, { - "id" : "c8030050-e582-462c-8c85-d64bafb77a30", - "name" : "rsa-generated", - "providerId" : "rsa-generated", - "subComponents" : { }, - "config" : { - "privateKey" : [ "MIIEowIBAAKCAQEAyD3ShupqEMXbCVvGtWlmIoTEtqRXRZtHAHHc7GmHGstzpr3g7nBRCBerWCKvZCGK83wdtz8kTHPa4IJ8UuQsYPoIk2k8UukSuj2VwqT+aiP0xExSMfh0C9kCPsEtbtf0OOX4PxNIKsSbIevdxFJmm3TPKl1q1KT7iOKv/8gZmFqC5HFCh06mIYmz37DD3Aa1eMslhoNA21xvka80c9l5hHdLQWw73tTIwQ50oNr0xDqvjqClMqLQvM/R4R7siyJlZdNVCevGDUL6qLJLp7j6WLhtH706qavDL3jREfEi6AULJDdEfewTFUktfv9z+6GgGBn+/JaZsR8biK8CDZrR/QIDAQABAoIBAAJG4CTVbejHdBVVgSoIhh6WvuNA64Me1jlECFUrsALILa2WWHCGP7nvLR5mFt/EBWmlHkycxMOzeWNjI4Vy2DRWjBoIE0LePL14FMyWhhQNu5x9y11Qest5YpB/G7+Q3l0nuTA+ucR2HGEBBE/LlhDc/c+9jByeffACj9s3ghA6ScEGPn2YiQW5jA178TbEV9cDHQO4C707xwrFuDm3RBJon4siKJij5Oq2rDsivhv6PGZRdHCxoGzlL2Z3GkmWqZ0Bv0dqdO5/TWuiZCgFMrgEBvoegqOOBRELK7Hs2jkgGo3IqvWtdDgmNxD1adnd6prW3IkYW5IjoBDoU2Dw5pECgYEA/Pm31auLW/MUnwTctVmfpdT4VnmkNslj4t/DjRsNw1GZAf3WAqevsxUOnJ+sYKDRETRU0iIVPf+9sTwwVdGRD2xf701wc6RNh8SUamxrNTIoHS5EVeByvkP8BIO/8pbWvbJFxLTTCycfQvhmvjKrUaddlu7wZzRfdwDhCi5g8FkCgYEAyqKzkRch/FWOkPqzGgnXd1hJxMMfXGV1HmBmRSuz/PkdHePvbJcZqY2lHdkGFuWaWa4MxrZdfXiyGa6n2kGjXkDqGLBMN6tuiJ8hesUBfTm0NtdeLlipDKQOam4OJmber6EQTqkFJC8FoCFaXvWOaOx1v0leWr+DGMQvYZN5GkUCgYBNw63hPvR99YFXSLVYAg7zeT5FxurV9J6B9Ws1iyV17zVryU3qTwXRtR1ixCrHIWhjM4UHe3awMldrjicFmoBPD2+GLnXs9ormu2UsOdvS5HI0Vi6nf3GGT3u/H4j316p3cb/EshlWClavzZA303eaiCpa5WR9NTpLaLfE23DtMQKBgDLHWOZH/L1GF2bfXBhvVO5UUpAbMXWu+w10rMwyqnT/XDuMTghRSR4DH9h99Rexy98jTZJSStVRdJgY+3knL7BD5iXvr/nXXOihr/sa+UePOUjw6WoFz78aMX6cO7GF39H1M6fylRY/LlK1aPcY4+oJL2yTDzEAgvKm3xS9pwBdAoGBAJTt5DMDsK0eU6YPgJ5Ef0IaHoHKCrheUuTUe8rfGi04lxVHlp9/QJFMDtdQDAaAvJCWModVUf7E2YOiT+rCaeaewMzekxakFBZSPOIbk9CxkBb8/pcL9NLG6DkKpZTkVpzhzL0vmkyyZgzpK88W++baHf5t7c0Srv8OTwHXVMp1" ], - "certificate" : [ "MIICnTCCAYUCBgGfdQaBZjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAd0ZXN0aW5nMB4XDTI2MDcxODExMzgwOFoXDTM2MDcxODExMzk0OFowEjEQMA4GA1UEAwwHdGVzdGluZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMg90obqahDF2wlbxrVpZiKExLakV0WbRwBx3OxphxrLc6a94O5wUQgXq1gir2QhivN8Hbc/JExz2uCCfFLkLGD6CJNpPFLpEro9lcKk/moj9MRMUjH4dAvZAj7BLW7X9Djl+D8TSCrEmyHr3cRSZpt0zypdatSk+4jir//IGZhaguRxQodOpiGJs9+ww9wGtXjLJYaDQNtcb5GvNHPZeYR3S0FsO97UyMEOdKDa9MQ6r46gpTKi0LzP0eEe7IsiZWXTVQnrxg1C+qiyS6e4+li4bR+9Oqmrwy940RHxIugFCyQ3RH3sExVJLX7/c/uhoBgZ/vyWmbEfG4ivAg2a0f0CAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAsGNzBfF+qeIqXuKFYUkEq3Qi9oHuQEDK/0Cuc39Ubj6lBj0kxmnA2UVAmx6stD1hXKaHzQCd8OreV3v247ypwCWE+LuqA4KpID2RKnCLJxKvoN8QaMS0ZSRpu8CA4kFHoB86YctxU53niMQ2ZVqRE2UgQBQcWUW9BU0Ke/mpBIakIvwq1S9aHS6TY5cAGxbZhYqLNUZUy4Db7dOhj17q3Fqr3ddk1l/B5K9lMp6MzAw/H0zpPyM7xx1/g0TsRZiSaYrNTLtuMMeRhgkjfXj1zO77LHRpTu3aXF+TgNVrH2V9kjM39kpbFdtaRQLjLfNE9P8UjymqyYTmBWz77ghN6w==" ], - "priority" : [ "100" ] - } - } ], - "org.keycloak.services.ui.extend.UiPageProvider" : [ { - "id" : "84fffafa-a7f7-493a-9718-f447ff444585", - "providerId" : "Attribute Endpoints", - "subComponents" : { }, - "config" : { - "match-role" : [ "mailing-list-intern-member" ], - "auth-role" : [ "export-mailing-list-addresses" ], - "attribute-group" : [ "mailing-list-addresses" ], - "slug" : [ "mailing-list-addresses-intern" ] - } - }, { - "id" : "dd02b66b-d603-4f43-9b7e-f6b7f74fb7a8", - "providerId" : "Attribute Endpoints", - "subComponents" : { }, - "config" : { - "match-role" : [ "dooris-authorized" ], - "auth-role" : [ "export-dooris-ssh-keys" ], - "attribute-group" : [ "dooris-ssh-keys" ], - "slug" : [ "dooris-ssh-keys" ] - } - }, { - "id" : "9c2edab9-f39a-4925-b984-03e1e1d8fbbb", - "providerId" : "Attribute Endpoints", - "subComponents" : { }, - "config" : { - "match-role" : [ "mailing-list-chaos-member" ], - "attribute-group" : [ "mailing-list-addresses" ], - "auth-role" : [ "export-mailing-list-addresses" ], - "slug" : [ "mailing-list-addresses-chaos" ] - } - } ] - }, - "internationalizationEnabled" : false, - "authenticationFlows" : [ { - "id" : "4d18d565-2d84-40ba-ba83-73468bb03d21", - "alias" : "Account verification options", - "description" : "Method with which to verify the existing account", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "idp-email-verification", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "ALTERNATIVE", - "priority" : 20, - "autheticatorFlow" : true, - "flowAlias" : "Verify Existing Account by Re-authentication", - "userSetupAllowed" : false - } ] - }, { - "id" : "c14318af-7c5d-4744-ab3f-747b99e999b6", - "alias" : "Browser - Conditional 2FA", - "description" : "Flow to determine if any 2FA is required for the authentication", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "conditional-user-configured", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorConfig" : "browser-conditional-credential", - "authenticator" : "conditional-credential", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "auth-otp-form", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 30, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "webauthn-authenticator", - "authenticatorFlow" : false, - "requirement" : "DISABLED", - "priority" : 40, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "auth-recovery-authn-code-form", - "authenticatorFlow" : false, - "requirement" : "DISABLED", - "priority" : 50, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - }, { - "id" : "e0d22b15-be99-491a-b972-24fd9bd115ab", - "alias" : "Browser - Conditional Organization", - "description" : "Flow to determine if the organization identity-first login is to be used", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "conditional-user-configured", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "organization", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - }, { - "id" : "7daf9f99-5e1d-49ab-99d4-c8b349e0a0a2", - "alias" : "Direct Grant - Conditional OTP", - "description" : "Flow to determine if the OTP is required for the authentication", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "conditional-user-configured", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "direct-grant-validate-otp", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - }, { - "id" : "1ea0e4d7-d008-405f-8504-617b6be2e5ce", - "alias" : "First Broker Login - Conditional Organization", - "description" : "Flow to determine if the authenticator that adds organization members is to be used", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "conditional-user-configured", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "idp-add-organization-member", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - }, { - "id" : "81510b28-b475-426d-84ba-de69ff08bcdf", - "alias" : "First broker login - Conditional 2FA", - "description" : "Flow to determine if any 2FA is required for the authentication", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "conditional-user-configured", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorConfig" : "first-broker-login-conditional-credential", - "authenticator" : "conditional-credential", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "auth-otp-form", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 30, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "webauthn-authenticator", - "authenticatorFlow" : false, - "requirement" : "DISABLED", - "priority" : 40, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "auth-recovery-authn-code-form", - "authenticatorFlow" : false, - "requirement" : "DISABLED", - "priority" : 50, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - }, { - "id" : "521c4d53-03b8-4a7d-8c0b-aeeb3f4fb1bc", - "alias" : "Handle Existing Account", - "description" : "Handle what to do if there is existing account with same email/username like authenticated identity provider", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "idp-confirm-link", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : true, - "flowAlias" : "Account verification options", - "userSetupAllowed" : false - } ] - }, { - "id" : "44bd5640-b500-4ec3-9740-95190a70abf6", - "alias" : "Organization", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticatorFlow" : true, - "requirement" : "CONDITIONAL", - "priority" : 10, - "autheticatorFlow" : true, - "flowAlias" : "Browser - Conditional Organization", - "userSetupAllowed" : false - } ] - }, { - "id" : "7636f767-4cab-48ee-b071-4613249793f3", - "alias" : "Reset - Conditional OTP", - "description" : "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "conditional-user-configured", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "reset-otp", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - }, { - "id" : "8ec46c7c-b709-43db-8628-25619f4d01d7", - "alias" : "User creation or linking", - "description" : "Flow for the existing/non-existing user alternatives", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticatorConfig" : "create unique user config", - "authenticator" : "idp-create-user-if-unique", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "ALTERNATIVE", - "priority" : 20, - "autheticatorFlow" : true, - "flowAlias" : "Handle Existing Account", - "userSetupAllowed" : false - } ] - }, { - "id" : "843bdf74-c4f8-476c-9c06-482e29a28416", - "alias" : "Verify Existing Account by Re-authentication", - "description" : "Reauthentication of existing account", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "idp-username-password-form", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "CONDITIONAL", - "priority" : 20, - "autheticatorFlow" : true, - "flowAlias" : "First broker login - Conditional 2FA", - "userSetupAllowed" : false - } ] - }, { - "id" : "50bf949f-852a-44c2-b474-7c21da79d8fe", - "alias" : "browser", - "description" : "Browser based authentication", - "providerId" : "basic-flow", - "topLevel" : true, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "auth-cookie", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "auth-spnego", - "authenticatorFlow" : false, - "requirement" : "DISABLED", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "identity-provider-redirector", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 25, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "ALTERNATIVE", - "priority" : 26, - "autheticatorFlow" : true, - "flowAlias" : "Organization", - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "ALTERNATIVE", - "priority" : 30, - "autheticatorFlow" : true, - "flowAlias" : "forms", - "userSetupAllowed" : false - } ] - }, { - "id" : "133e5b36-6ecb-4376-a44b-15012c076767", - "alias" : "clients", - "description" : "Base authentication for clients", - "providerId" : "client-flow", - "topLevel" : true, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "client-secret", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "client-jwt", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "client-secret-jwt", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 30, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "client-x509", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 40, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "federated-jwt", - "authenticatorFlow" : false, - "requirement" : "ALTERNATIVE", - "priority" : 50, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - }, { - "id" : "4c2254e0-095c-4761-a300-48c369c99653", - "alias" : "direct grant", - "description" : "OpenID Connect Resource Owner Grant", - "providerId" : "basic-flow", - "topLevel" : true, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "direct-grant-validate-username", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "direct-grant-validate-password", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "CONDITIONAL", - "priority" : 30, - "autheticatorFlow" : true, - "flowAlias" : "Direct Grant - Conditional OTP", - "userSetupAllowed" : false - } ] - }, { - "id" : "459c222e-58b0-4904-b08e-89df761e59c4", - "alias" : "docker auth", - "description" : "Used by Docker clients to authenticate against the IDP", - "providerId" : "basic-flow", - "topLevel" : true, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "docker-http-basic-authenticator", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - }, { - "id" : "5ceb5acc-6bc5-416c-b798-cc98dd01a7da", - "alias" : "first broker login", - "description" : "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account", - "providerId" : "basic-flow", - "topLevel" : true, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticatorConfig" : "review profile config", - "authenticator" : "idp-review-profile", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : true, - "flowAlias" : "User creation or linking", - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "CONDITIONAL", - "priority" : 60, - "autheticatorFlow" : true, - "flowAlias" : "First Broker Login - Conditional Organization", - "userSetupAllowed" : false - } ] - }, { - "id" : "9dd1bb28-3e38-423a-baa9-5cdcfe6f69cd", - "alias" : "forms", - "description" : "Username, password, otp and other auth forms.", - "providerId" : "basic-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "auth-username-password-form", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "CONDITIONAL", - "priority" : 20, - "autheticatorFlow" : true, - "flowAlias" : "Browser - Conditional 2FA", - "userSetupAllowed" : false - } ] - }, { - "id" : "1cabc63b-5041-4344-8630-f9d9e63a7d6c", - "alias" : "registration", - "description" : "Registration flow", - "providerId" : "basic-flow", - "topLevel" : true, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "registration-page-form", - "authenticatorFlow" : true, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : true, - "flowAlias" : "registration form", - "userSetupAllowed" : false - } ] - }, { - "id" : "1e40d58f-8abd-4ab7-bd14-3ef1d80f1e39", - "alias" : "registration form", - "description" : "Registration form", - "providerId" : "form-flow", - "topLevel" : false, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "registration-user-creation", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "registration-password-action", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 50, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "registration-recaptcha-action", - "authenticatorFlow" : false, - "requirement" : "DISABLED", - "priority" : 60, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "registration-terms-and-conditions", - "authenticatorFlow" : false, - "requirement" : "DISABLED", - "priority" : 70, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - }, { - "id" : "b205d22b-231e-47da-98de-027aede30bdd", - "alias" : "reset credentials", - "description" : "Reset credentials for a user if they forgot their password or something", - "providerId" : "basic-flow", - "topLevel" : true, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "reset-credentials-choose-user", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "reset-credential-email", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 20, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticator" : "reset-password", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 30, - "autheticatorFlow" : false, - "userSetupAllowed" : false - }, { - "authenticatorFlow" : true, - "requirement" : "CONDITIONAL", - "priority" : 40, - "autheticatorFlow" : true, - "flowAlias" : "Reset - Conditional OTP", - "userSetupAllowed" : false - } ] - }, { - "id" : "995c3a30-1685-4a50-b433-0e2be3bed232", - "alias" : "saml ecp", - "description" : "SAML ECP Profile Authentication Flow", - "providerId" : "basic-flow", - "topLevel" : true, - "builtIn" : true, - "authenticationExecutions" : [ { - "authenticator" : "http-basic-authenticator", - "authenticatorFlow" : false, - "requirement" : "REQUIRED", - "priority" : 10, - "autheticatorFlow" : false, - "userSetupAllowed" : false - } ] - } ], - "authenticatorConfig" : [ { - "id" : "913740cc-8001-4a27-907e-707465878b36", - "alias" : "browser-conditional-credential", - "config" : { - "credentials" : "webauthn-passwordless" - } - }, { - "id" : "6b7ef72b-4f8b-4fbd-927d-8155500197ac", - "alias" : "create unique user config", - "config" : { - "require.password.update.after.registration" : "false" - } - }, { - "id" : "c0aa77da-f368-4f11-89d0-ee724bed8074", - "alias" : "first-broker-login-conditional-credential", - "config" : { - "credentials" : "webauthn-passwordless" - } - }, { - "id" : "a9b756d5-c9a5-4716-84ec-ecd7ef7f3f36", - "alias" : "review profile config", - "config" : { - "update.profile.on.first.login" : "missing" - } - } ], - "requiredActions" : [ { - "alias" : "CONFIGURE_TOTP", - "name" : "Configure OTP", - "providerId" : "CONFIGURE_TOTP", - "enabled" : true, - "defaultAction" : false, - "priority" : 10, - "config" : { } - }, { - "alias" : "TERMS_AND_CONDITIONS", - "name" : "Terms and Conditions", - "providerId" : "TERMS_AND_CONDITIONS", - "enabled" : false, - "defaultAction" : false, - "priority" : 20, - "config" : { } - }, { - "alias" : "UPDATE_PASSWORD", - "name" : "Update Password", - "providerId" : "UPDATE_PASSWORD", - "enabled" : true, - "defaultAction" : false, - "priority" : 30, - "config" : { } - }, { - "alias" : "UPDATE_PROFILE", - "name" : "Update Profile", - "providerId" : "UPDATE_PROFILE", - "enabled" : true, - "defaultAction" : false, - "priority" : 40, - "config" : { } - }, { - "alias" : "VERIFY_EMAIL", - "name" : "Verify Email", - "providerId" : "VERIFY_EMAIL", - "enabled" : true, - "defaultAction" : false, - "priority" : 50, - "config" : { } - }, { - "alias" : "delete_account", - "name" : "Delete Account", - "providerId" : "delete_account", - "enabled" : false, - "defaultAction" : false, - "priority" : 60, - "config" : { } - }, { - "alias" : "UPDATE_EMAIL", - "name" : "Update Email", - "providerId" : "UPDATE_EMAIL", - "enabled" : false, - "defaultAction" : false, - "priority" : 70, - "config" : { } - }, { - "alias" : "webauthn-register", - "name" : "Webauthn Register", - "providerId" : "webauthn-register", - "enabled" : true, - "defaultAction" : false, - "priority" : 80, - "config" : { } - }, { - "alias" : "webauthn-register-passwordless", - "name" : "Webauthn Register Passwordless", - "providerId" : "webauthn-register-passwordless", - "enabled" : true, - "defaultAction" : false, - "priority" : 90, - "config" : { } - }, { - "alias" : "VERIFY_PROFILE", - "name" : "Verify Profile", - "providerId" : "VERIFY_PROFILE", - "enabled" : true, - "defaultAction" : false, - "priority" : 100, - "config" : { } - }, { - "alias" : "delete_credential", - "name" : "Delete Credential", - "providerId" : "delete_credential", - "enabled" : true, - "defaultAction" : false, - "priority" : 110, - "config" : { } - }, { - "alias" : "idp_link", - "name" : "Linking Identity Provider", - "providerId" : "idp_link", - "enabled" : true, - "defaultAction" : false, - "priority" : 120, - "config" : { } - }, { - "alias" : "CONFIGURE_RECOVERY_AUTHN_CODES", - "name" : "Recovery Authentication Codes", - "providerId" : "CONFIGURE_RECOVERY_AUTHN_CODES", - "enabled" : true, - "defaultAction" : false, - "priority" : 130, - "config" : { } - }, { - "alias" : "update_user_locale", - "name" : "Update User Locale", - "providerId" : "update_user_locale", - "enabled" : true, - "defaultAction" : false, - "priority" : 1000, - "config" : { } - } ], - "browserFlow" : "browser", - "registrationFlow" : "registration", - "directGrantFlow" : "direct grant", - "resetCredentialsFlow" : "reset credentials", - "clientAuthenticationFlow" : "clients", - "dockerAuthenticationFlow" : "docker auth", - "firstBrokerLoginFlow" : "first broker login", - "attributes" : { - "cibaBackchannelTokenDeliveryMode" : "poll", - "cibaAuthRequestedUserHint" : "login_hint", - "clientOfflineSessionMaxLifespan" : "0", - "oauth2DevicePollingInterval" : "5", - "clientSessionIdleTimeout" : "0", - "clientOfflineSessionIdleTimeout" : "0", - "cibaInterval" : "5", - "realmReusableOtpCode" : "false", - "cibaExpiresIn" : "120", - "oauth2DeviceCodeLifespan" : "600", - "parRequestUriLifespan" : "60", - "clientSessionMaxLifespan" : "0", - "scimApiEnabled" : "false" - }, - "keycloakVersion" : "26.6.0", - "userManagedAccessAllowed" : false, - "organizationsEnabled" : false, - "verifiableCredentialsEnabled" : false, - "adminPermissionsEnabled" : false, - "scimApiEnabled" : false, - "clientProfiles" : { - "profiles" : [ ] - }, - "clientPolicies" : { - "policies" : [ ] - } -} \ No newline at end of file