diff --git a/README.md b/README.md index 10e40e7..9cd3766 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,10 @@ 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/compose.yaml b/compose.yaml deleted file mode 100644 index 8dc22ff..0000000 --- a/compose.yaml +++ /dev/null @@ -1,13 +0,0 @@ -services: - keycloak: - image: quay.io/keycloak/keycloak:26.6.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 new file mode 100644 index 0000000..86ff971 --- /dev/null +++ b/testing/README.md @@ -0,0 +1,56 @@ +# 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 new file mode 100644 index 0000000..0311532 --- /dev/null +++ b/testing/compose.yaml @@ -0,0 +1,17 @@ +services: + keycloak: + image: quay.io/keycloak/keycloak:26.6.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 new file mode 100644 index 0000000..a91df6c --- /dev/null +++ b/testing/import/testing.json @@ -0,0 +1,2372 @@ +{ + "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