ml-testing-toolkit 18.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/.dockerignore +10 -0
  2. package/.grype.yaml +16 -0
  3. package/.ncurc.yaml +9 -0
  4. package/.nvmrc +1 -0
  5. package/.versionrc.js +16 -0
  6. package/CHANGELOG.md +504 -0
  7. package/CODEOWNERS +30 -0
  8. package/Dockerfile +42 -0
  9. package/Dockerfile-newman +13 -0
  10. package/LICENSE.md +9 -0
  11. package/README.md +119 -0
  12. package/assets/diagrams/architectural/architectural-diagram.svg +3 -0
  13. package/assets/diagrams/flow/flow-diagram.svg +3 -0
  14. package/assets/images/Sample-Response-Failure.png +0 -0
  15. package/assets/images/Screenshot 2020-04-16 at 22.58.04.png +0 -0
  16. package/assets/images/TLS-Enabled-on-Environment.png +0 -0
  17. package/assets/images/adapter-mutual-tls-enabled.png +0 -0
  18. package/assets/images/add-additional-input-values.png +0 -0
  19. package/assets/images/add-condition-button.png +0 -0
  20. package/assets/images/add-new-assertion.png +0 -0
  21. package/assets/images/add-new-input-value.png +0 -0
  22. package/assets/images/add-new-input-variable.png +0 -0
  23. package/assets/images/additional-transfers.png +0 -0
  24. package/assets/images/api-provisioning-add-new-api-confirmation.png +0 -0
  25. package/assets/images/api-provisioning-file-input-window.png +0 -0
  26. package/assets/images/api-provisioning-list-apis-view.png +0 -0
  27. package/assets/images/api-provisioning-menu-item.png +0 -0
  28. package/assets/images/apply_and_restart.jpg +0 -0
  29. package/assets/images/assess-request-or-response.png +0 -0
  30. package/assets/images/assess-response-equation-save.png +0 -0
  31. package/assets/images/assess-response-equation.png +0 -0
  32. package/assets/images/assess-response-status.png +0 -0
  33. package/assets/images/building-new-rules-file.png +0 -0
  34. package/assets/images/callback-rules-screen.png +0 -0
  35. package/assets/images/configurable-parameter-assertion.png +0 -0
  36. package/assets/images/configurable-parameter-currency.png +0 -0
  37. package/assets/images/configurable-parameter.png +0 -0
  38. package/assets/images/connection-manager-ui-opening.png +0 -0
  39. package/assets/images/create-inbound-user-simulator.png +0 -0
  40. package/assets/images/creating-new-rule-file.png +0 -0
  41. package/assets/images/dfsp-client-cacert.png +0 -0
  42. package/assets/images/dfsp-client-submit.png +0 -0
  43. package/assets/images/dfsp-client.png +0 -0
  44. package/assets/images/dfsp-p2p-happy-path.png +0 -0
  45. package/assets/images/dfsp-server-cacert.png +0 -0
  46. package/assets/images/dfsp-server-cert.png +0 -0
  47. package/assets/images/download-report.png +0 -0
  48. package/assets/images/drive_have_not_been_shared.jpg +0 -0
  49. package/assets/images/event-response-options.png +0 -0
  50. package/assets/images/expand-monitoring-messages.png +0 -0
  51. package/assets/images/fixed-response-sample.png +0 -0
  52. package/assets/images/header-selection.png +0 -0
  53. package/assets/images/heap_error_windows.jpg +0 -0
  54. package/assets/images/hosted-mode-docker-compose-intro.png +0 -0
  55. package/assets/images/hub-client-cert.png +0 -0
  56. package/assets/images/import-template.png +0 -0
  57. package/assets/images/inbound-requests-environment.png +0 -0
  58. package/assets/images/inbound-requests-scripts.png +0 -0
  59. package/assets/images/jws-certificate-submit.png +0 -0
  60. package/assets/images/jws-certificate.png +0 -0
  61. package/assets/images/jws-certs-keys.png +0 -0
  62. package/assets/images/jws-hub-certs-keys.png +0 -0
  63. package/assets/images/local-enable-jws-publickey.png +0 -0
  64. package/assets/images/local-mutual-tls-enabled.png +0 -0
  65. package/assets/images/local_drives_to_be_available.jpg +0 -0
  66. package/assets/images/mcm-environment-opening.png +0 -0
  67. package/assets/images/menu-items.png +0 -0
  68. package/assets/images/mock-response-sample.png +0 -0
  69. package/assets/images/monitoring-initial-state.png +0 -0
  70. package/assets/images/monitoring-messages.png +0 -0
  71. package/assets/images/new-empty-assertion.png +0 -0
  72. package/assets/images/opened-imported-template.png +0 -0
  73. package/assets/images/opening-default-settings.png +0 -0
  74. package/assets/images/opening-sync-response-rules.png +0 -0
  75. package/assets/images/opening-view.png +0 -0
  76. package/assets/images/outbound-display-opening-hub.png +0 -0
  77. package/assets/images/outbound-display-opening.png +0 -0
  78. package/assets/images/override-with-environment-variable.png +0 -0
  79. package/assets/images/populate-with-sample-body.png +0 -0
  80. package/assets/images/resource-selection.png +0 -0
  81. package/assets/images/rule-builder-select-api.png +0 -0
  82. package/assets/images/sample-condition-add-configurable-params.png +0 -0
  83. package/assets/images/sample-condition.png +0 -0
  84. package/assets/images/sample-editor.png +0 -0
  85. package/assets/images/sample-request.png +0 -0
  86. package/assets/images/sample-test-assertion.png +0 -0
  87. package/assets/images/send-transfer.png +0 -0
  88. package/assets/images/sending-single-test-case-1.png +0 -0
  89. package/assets/images/sending-single-test-case-2.png +0 -0
  90. package/assets/images/sending-test-cases.png +0 -0
  91. package/assets/images/server-certificates-submitted.png +0 -0
  92. package/assets/images/simulator-response.png +0 -0
  93. package/assets/images/simulator-scheme-adapter-endpoint.png +0 -0
  94. package/assets/images/summarized-view-of-rule.png +0 -0
  95. package/assets/images/template-window.png +0 -0
  96. package/assets/images/test-case-editor-console-log.png +0 -0
  97. package/assets/images/test-case-editor-environment-state.png +0 -0
  98. package/assets/images/test-case-editor-scripts.png +0 -0
  99. package/assets/images/test-case-editor.png +0 -0
  100. package/assets/images/testcase-definition-download.png +0 -0
  101. package/assets/images/testcase-definition-edit-meta-info.png +0 -0
  102. package/assets/images/testing-toolkit-mojaloop-testing-toolkit-endpoint.png +0 -0
  103. package/assets/images/tls-hub-certs-keys.png +0 -0
  104. package/assets/images/tls-jws-enabled-on-environment.png +0 -0
  105. package/assets/images/updated-sample-body-data.png +0 -0
  106. package/assets/images/using-configurable-parameter.png +0 -0
  107. package/assets/images/validation-rules-screen.png +0 -0
  108. package/assets/images/view-response.png +0 -0
  109. package/audit-ci.jsonc +7 -0
  110. package/connection-manager/docker-compose.yml +55 -0
  111. package/database/docker-compose.yml +16 -0
  112. package/docker/hosted-mode/docker-compose.yaml +107 -0
  113. package/docker/hosted-mode/keycloak/keycloak-realm.json +2298 -0
  114. package/docker/hosted-mode/mongo-init.sh +1 -0
  115. package/docker/hosted-mode-tls/docker-compose.yaml +171 -0
  116. package/docker/hosted-mode-tls/keycloak/keycloak-realm.json +2298 -0
  117. package/docker/hosted-mode-tls/mongo-init.sh +1 -0
  118. package/docker-compose.yml +62 -0
  119. package/documents/Mojaloop-Testing-Toolkit.md +296 -0
  120. package/documents/RULES_ENGINE.md +403 -0
  121. package/documents/User-Guide-API-Provisioning.md +121 -0
  122. package/documents/User-Guide-CLI.md +218 -0
  123. package/documents/User-Guide-Connection-Manager.md +282 -0
  124. package/documents/User-Guide-Frequently-Asked-Questions.md +39 -0
  125. package/documents/User-Guide-Hosted-Mode-Docker-Compose.md +110 -0
  126. package/documents/User-Guide-Installation.md +163 -0
  127. package/documents/User-Guide-Mojaloop-Testing-Toolkit.md +642 -0
  128. package/documents/User-Guide-OAuth-Server-Deployment.md +283 -0
  129. package/documents/User-Guide-Onboarding-DFSP.md +197 -0
  130. package/documents/User-Guide-Onboarding-HUB.md +191 -0
  131. package/documents/User-Guide.md +53 -0
  132. package/examples/collections/dfsp/p2p_failed_tests.json +7161 -0
  133. package/examples/collections/dfsp/p2p_fx_happy_path.json +502 -0
  134. package/examples/collections/dfsp/p2p_happy_path.json +350 -0
  135. package/examples/collections/dfsp/p2p_happy_path_extended.json +6106 -0
  136. package/examples/collections/dfsp/p2p_happy_path_jws.json +511 -0
  137. package/examples/collections/dfsp/p2p_payee_assertions_websocket.json +441 -0
  138. package/examples/collections/dfsp/sample.json +5029 -0
  139. package/examples/collections/dfsp/transaction_request_service.json +240 -0
  140. package/examples/collections/fxp/FXP.json +264 -0
  141. package/examples/collections/fxp/SDK_backend.json +98 -0
  142. package/examples/collections/fxp/SDK_outbound.json +163 -0
  143. package/examples/collections/hub/hub_01_p2p_happy_path/hub_p2p_receive_quote.json +400 -0
  144. package/examples/collections/hub/hub_01_p2p_happy_path/hub_p2p_send_quote.json +395 -0
  145. package/examples/collections/hub/hub_02_block_transfer/hub_block_transfer.json +393 -0
  146. package/examples/collections/hub/hub_03_funds_in_out/hub_funds_in.json +224 -0
  147. package/examples/collections/hub/hub_03_funds_in_out/hub_funds_out.json +780 -0
  148. package/examples/collections/hub/hub_04_settlements/hub_settlements.json +3138 -0
  149. package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_payee_abort.json +475 -0
  150. package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_payee_invalid_fulfillment.json +370 -0
  151. package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_transfer_timeout.json +262 -0
  152. package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_authorizations.json +117 -0
  153. package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_error_framework.json +591 -0
  154. package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_received_state.json +379 -0
  155. package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_reject_state.json +361 -0
  156. package/examples/collections/hub/hub_07_quoting_service.json +525 -0
  157. package/examples/collections/hub/hub_08_participant_inactive_stop_transfers.json +706 -0
  158. package/examples/collections/hub/hub_09_duplicate_handling_transfers.json +1377 -0
  159. package/examples/collections/hub/hub_10_on_us_transfers.json +245 -0
  160. package/examples/collections/hub/hub_11_accented_and_spl_chars.json +629 -0
  161. package/examples/collections/hub/hub_12_fspiop_version_1.1.json +646 -0
  162. package/examples/collections/hub/hub_13_bulk_transfers.json +1857 -0
  163. package/examples/collections/iso20022/self_referencing_iso20022.json +926 -0
  164. package/examples/collections/provisioning/testingtoolkitdfsp.json +904 -0
  165. package/examples/environments/dfsp_local_environment.json +46 -0
  166. package/examples/environments/hub_local_environment.json +57 -0
  167. package/jest.config.js +17 -0
  168. package/package.json +199 -0
  169. package/sbom-v18.12.4.csv +1553 -0
  170. package/secrets/keygen.sh +5 -0
  171. package/secrets/privatekey.pem +27 -0
  172. package/secrets/publickey.cer +21 -0
  173. package/secrets/tls/01.pem +132 -0
  174. package/secrets/tls/createSecrets.sh +20 -0
  175. package/secrets/tls/hub_client.csr +32 -0
  176. package/secrets/tls/hub_client_cacert.pem +35 -0
  177. package/secrets/tls/hub_client_cakey.pem +52 -0
  178. package/secrets/tls/hub_client_key.key +52 -0
  179. package/secrets/tls/hub_server.csr +31 -0
  180. package/secrets/tls/hub_server_cacert.pem +35 -0
  181. package/secrets/tls/hub_server_cakey.pem +52 -0
  182. package/secrets/tls/hub_server_cert.pem +132 -0
  183. package/secrets/tls/hub_server_key.key +52 -0
  184. package/secrets/tls/index.txt +1 -0
  185. package/secrets/tls/index.txt.attr +1 -0
  186. package/secrets/tls/openssl-client.cnf +36 -0
  187. package/secrets/tls/openssl-clientca.cnf +71 -0
  188. package/secrets/tls/openssl-server.cnf +39 -0
  189. package/secrets/tls/openssl-serverca.cnf +71 -0
  190. package/secrets/tls/serial.txt +1 -0
  191. package/spec_files/api_definitions/als_admin_1.1/api_spec.yaml +804 -0
  192. package/spec_files/api_definitions/central_admin_1.0/api_spec.yaml +1850 -0
  193. package/spec_files/api_definitions/central_admin_1.0/response_map.json +96 -0
  194. package/spec_files/api_definitions/central_admin_old_9.3/api_spec.yaml +2467 -0
  195. package/spec_files/api_definitions/central_admin_old_9.3/response_map.json +96 -0
  196. package/spec_files/api_definitions/fspiop_1.0/api_spec.yaml +4187 -0
  197. package/spec_files/api_definitions/fspiop_1.0/callback_map.json +568 -0
  198. package/spec_files/api_definitions/fspiop_1.0/mockRef.json +79 -0
  199. package/spec_files/api_definitions/fspiop_1.0/trigger_templates/transaction_request_followup.json +126 -0
  200. package/spec_files/api_definitions/fspiop_1.0/trigger_templates/transaction_request_followup_quotes_only.json +97 -0
  201. package/spec_files/api_definitions/fspiop_1.1/api_spec.yaml +3778 -0
  202. package/spec_files/api_definitions/fspiop_1.1/callback_map.json +568 -0
  203. package/spec_files/api_definitions/fspiop_1.1/mockRef.json +79 -0
  204. package/spec_files/api_definitions/fspiop_1.1/trigger_templates/transaction_request_followup.json +125 -0
  205. package/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +4839 -0
  206. package/spec_files/api_definitions/fspiop_2.0/callback_map.json +716 -0
  207. package/spec_files/api_definitions/fspiop_2.0/mockRef.json +79 -0
  208. package/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +125 -0
  209. package/spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml +8331 -0
  210. package/spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json +508 -0
  211. package/spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json +66 -0
  212. package/spec_files/api_definitions/fx-api_2.0/api_spec.yaml +1768 -0
  213. package/spec_files/api_definitions/fx-api_2.0/callback_map.json +188 -0
  214. package/spec_files/api_definitions/fx-api_2.0/mockRef.json +83 -0
  215. package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +2612 -0
  216. package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/mockRef.json +22 -0
  217. package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json +35 -0
  218. package/spec_files/api_definitions/mojaloop_simulator_0.1/api_spec.yaml +225 -0
  219. package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +1087 -0
  220. package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/mockRef.json +75 -0
  221. package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json +55 -0
  222. package/spec_files/api_definitions/payment_manager_1.4/api_spec.yaml +1389 -0
  223. package/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +2834 -0
  224. package/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +3449 -0
  225. package/spec_files/api_definitions/settlements_1.0/api_spec.yaml +983 -0
  226. package/spec_files/api_definitions/settlements_1.0/mockRef.json +38 -0
  227. package/spec_files/api_definitions/settlements_1.0/response_map.json +34 -0
  228. package/spec_files/api_definitions/settlements_2.0/api_spec.yaml +1001 -0
  229. package/spec_files/api_definitions/settlements_2.0/mockRef.json +38 -0
  230. package/spec_files/api_definitions/settlements_2.0/response_map.json +34 -0
  231. package/spec_files/api_definitions/thirdparty_sdk_outbound_0.1/api_spec.yaml +2139 -0
  232. package/spec_files/reports/templates/newman/html_template.html +1202 -0
  233. package/spec_files/reports/templates/newman/pdf_template.html +790 -0
  234. package/spec_files/reports/templates/testcase_definition/table_view.html +1602 -0
  235. package/spec_files/rules_callback/config.json +3 -0
  236. package/spec_files/rules_callback/default.json +2698 -0
  237. package/spec_files/rules_callback/p2p-limit.json +129 -0
  238. package/spec_files/rules_forward/config.json +3 -0
  239. package/spec_files/rules_forward/default.json +482 -0
  240. package/spec_files/rules_response/config.json +3 -0
  241. package/spec_files/rules_response/default.json +295 -0
  242. package/spec_files/rules_validation/config.json +3 -0
  243. package/spec_files/rules_validation/default.json +1 -0
  244. package/spec_files/rules_validation/p2p-limit.json +55 -0
  245. package/spec_files/system_config.json +175 -0
  246. package/spec_files/user_config.json +109 -0
  247. package/src/index.js +67 -0
  248. package/src/lib/MyEventEmitter.js +54 -0
  249. package/src/lib/api-management.js +143 -0
  250. package/src/lib/api-routes/config.js +83 -0
  251. package/src/lib/api-routes/history.js +139 -0
  252. package/src/lib/api-routes/keycloak.js +54 -0
  253. package/src/lib/api-routes/longpolling.js +70 -0
  254. package/src/lib/api-routes/oauth2.js +149 -0
  255. package/src/lib/api-routes/objectstore.js +53 -0
  256. package/src/lib/api-routes/openapi.js +224 -0
  257. package/src/lib/api-routes/outbound.js +134 -0
  258. package/src/lib/api-routes/reports.js +72 -0
  259. package/src/lib/api-routes/rules.js +356 -0
  260. package/src/lib/api-routes/samples.js +92 -0
  261. package/src/lib/api-routes/server-logs.js +44 -0
  262. package/src/lib/api-routes/settings.js +71 -0
  263. package/src/lib/api-server.js +135 -0
  264. package/src/lib/arrayStore.js +101 -0
  265. package/src/lib/callbackHandler.js +201 -0
  266. package/src/lib/config.js +177 -0
  267. package/src/lib/configuration-providers/mb-connection-manager.js +625 -0
  268. package/src/lib/db/adapters/dbAdapter.js +184 -0
  269. package/src/lib/db/dfspMockUsers.js +64 -0
  270. package/src/lib/db/models/mongoDBWrapper.js +78 -0
  271. package/src/lib/eventListenerClient/inboundEventListener.js +176 -0
  272. package/src/lib/fileAdapter.js +57 -0
  273. package/src/lib/httpAgentStore.js +135 -0
  274. package/src/lib/importExport.js +186 -0
  275. package/src/lib/jws/JwsSigning.js +141 -0
  276. package/src/lib/loadSamples.js +128 -0
  277. package/src/lib/logger.js +20 -0
  278. package/src/lib/longpollingEmitter.js +56 -0
  279. package/src/lib/metrics.js +51 -0
  280. package/src/lib/mocking/custom-functions/generic.js +57 -0
  281. package/src/lib/mocking/middleware-functions/ilpModel.js +238 -0
  282. package/src/lib/mocking/middleware-functions/quotesAssociation.js +75 -0
  283. package/src/lib/mocking/middleware-functions/transactionRequestsService.js +78 -0
  284. package/src/lib/mocking/openApiDefinitionsModel.js +64 -0
  285. package/src/lib/mocking/openApiMockHandler.js +466 -0
  286. package/src/lib/mocking/openApiRulesEngine.js +492 -0
  287. package/src/lib/mocking/openApiVersionTools.js +136 -0
  288. package/src/lib/mocking/transformers/fspiopToISO20022.js +230 -0
  289. package/src/lib/mocking/transformers/index.js +41 -0
  290. package/src/lib/notificationEmitter.js +64 -0
  291. package/src/lib/oauth/KeycloakHelper.js +220 -0
  292. package/src/lib/oauth/LoginService.js +133 -0
  293. package/src/lib/oauth/OAuthHelper.js +181 -0
  294. package/src/lib/oauth/OAuthValidator.js +118 -0
  295. package/src/lib/oauth/Wso2Client.js +64 -0
  296. package/src/lib/objectStore/inMemoryImpl.js +50 -0
  297. package/src/lib/objectStore/objectStoreInterface.js +51 -0
  298. package/src/lib/objectStore.js +122 -0
  299. package/src/lib/report-generator/generator.js +126 -0
  300. package/src/lib/report-generator/helpers.js +154 -0
  301. package/src/lib/requestLogger.js +190 -0
  302. package/src/lib/resources/wso2carbon-publickey.cert +20 -0
  303. package/src/lib/rulesEngine.js +95 -0
  304. package/src/lib/rulesEngineModel.js +463 -0
  305. package/src/lib/scripting-engines/postman-sandbox.js +142 -0
  306. package/src/lib/scripting-engines/vm-javascript-sandbox.js +294 -0
  307. package/src/lib/server-logs/adapters/elastic-search.js +102 -0
  308. package/src/lib/server-logs/adapters/grafana.js +0 -0
  309. package/src/lib/server-logs/index.js +75 -0
  310. package/src/lib/socket-server.js +55 -0
  311. package/src/lib/storageAdapter.js +109 -0
  312. package/src/lib/test-outbound/TestCaseRunner.js +173 -0
  313. package/src/lib/test-outbound/getTracing.js +19 -0
  314. package/src/lib/test-outbound/outbound-initiator.js +1107 -0
  315. package/src/lib/uniqueIdGenerator.js +35 -0
  316. package/src/lib/utils.js +89 -0
  317. package/src/lib/utilsInternal.js +56 -0
  318. package/src/lib/webSocketClient/WebSocketClientManager.js +197 -0
  319. package/src/server.js +218 -0
@@ -0,0 +1,2298 @@
1
+ {
2
+ "id": "testingtoolkit",
3
+ "realm": "testingtoolkit",
4
+ "notBefore": 0,
5
+ "revokeRefreshToken": false,
6
+ "refreshTokenMaxReuse": 0,
7
+ "accessTokenLifespan": 3600,
8
+ "accessTokenLifespanForImplicitFlow": 900,
9
+ "ssoSessionIdleTimeout": 1800,
10
+ "ssoSessionMaxLifespan": 36000,
11
+ "ssoSessionIdleTimeoutRememberMe": 0,
12
+ "ssoSessionMaxLifespanRememberMe": 0,
13
+ "offlineSessionIdleTimeout": 2592000,
14
+ "offlineSessionMaxLifespanEnabled": false,
15
+ "offlineSessionMaxLifespan": 5184000,
16
+ "clientSessionIdleTimeout": 0,
17
+ "clientSessionMaxLifespan": 0,
18
+ "accessCodeLifespan": 60,
19
+ "accessCodeLifespanUserAction": 3600,
20
+ "accessCodeLifespanLogin": 1800,
21
+ "actionTokenGeneratedByAdminLifespan": 43200,
22
+ "actionTokenGeneratedByUserLifespan": 3600,
23
+ "enabled": true,
24
+ "sslRequired": "external",
25
+ "registrationAllowed": false,
26
+ "registrationEmailAsUsername": false,
27
+ "rememberMe": false,
28
+ "verifyEmail": false,
29
+ "loginWithEmailAllowed": true,
30
+ "duplicateEmailsAllowed": false,
31
+ "resetPasswordAllowed": false,
32
+ "editUsernameAllowed": false,
33
+ "bruteForceProtected": false,
34
+ "permanentLockout": false,
35
+ "maxFailureWaitSeconds": 900,
36
+ "minimumQuickLoginWaitSeconds": 60,
37
+ "waitIncrementSeconds": 60,
38
+ "quickLoginCheckMilliSeconds": 1000,
39
+ "maxDeltaTimeSeconds": 43200,
40
+ "failureFactor": 30,
41
+ "roles": {
42
+ "realm": [
43
+ {
44
+ "id": "8b64d942-890b-41bc-b94a-4e94fd934189",
45
+ "name": "uma_authorization",
46
+ "description": "${role_uma_authorization}",
47
+ "composite": false,
48
+ "clientRole": false,
49
+ "containerId": "testingtoolkit",
50
+ "attributes": {}
51
+ },
52
+ {
53
+ "id": "60045797-7648-4e3d-a4f6-bc70bf27372a",
54
+ "name": "offline_access",
55
+ "description": "${role_offline-access}",
56
+ "composite": false,
57
+ "clientRole": false,
58
+ "containerId": "testingtoolkit",
59
+ "attributes": {}
60
+ }
61
+ ],
62
+ "client": {
63
+ "realm-management": [
64
+ {
65
+ "id": "4b19f6ed-6a20-4c39-8421-05cee724f42f",
66
+ "name": "manage-identity-providers",
67
+ "description": "${role_manage-identity-providers}",
68
+ "composite": false,
69
+ "clientRole": true,
70
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
71
+ "attributes": {}
72
+ },
73
+ {
74
+ "id": "90d763e9-dcfd-4fa3-b3ed-d8d81aa76ff1",
75
+ "name": "query-realms",
76
+ "description": "${role_query-realms}",
77
+ "composite": false,
78
+ "clientRole": true,
79
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
80
+ "attributes": {}
81
+ },
82
+ {
83
+ "id": "999787fa-b7f6-400a-8e18-2156ae71117b",
84
+ "name": "manage-users",
85
+ "description": "${role_manage-users}",
86
+ "composite": false,
87
+ "clientRole": true,
88
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
89
+ "attributes": {}
90
+ },
91
+ {
92
+ "id": "39c96d0f-d156-4866-9dbf-a1ba69255b6f",
93
+ "name": "impersonation",
94
+ "description": "${role_impersonation}",
95
+ "composite": false,
96
+ "clientRole": true,
97
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
98
+ "attributes": {}
99
+ },
100
+ {
101
+ "id": "8b3edff9-f864-4f1f-b756-6853fab32d43",
102
+ "name": "view-authorization",
103
+ "description": "${role_view-authorization}",
104
+ "composite": false,
105
+ "clientRole": true,
106
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
107
+ "attributes": {}
108
+ },
109
+ {
110
+ "id": "97f478ae-1123-414d-a4c4-45538458ac72",
111
+ "name": "view-events",
112
+ "description": "${role_view-events}",
113
+ "composite": false,
114
+ "clientRole": true,
115
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
116
+ "attributes": {}
117
+ },
118
+ {
119
+ "id": "66fb1abb-1b24-4e71-b3bc-fbc99c963ca3",
120
+ "name": "view-clients",
121
+ "description": "${role_view-clients}",
122
+ "composite": true,
123
+ "composites": {
124
+ "client": {
125
+ "realm-management": [
126
+ "query-clients"
127
+ ]
128
+ }
129
+ },
130
+ "clientRole": true,
131
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
132
+ "attributes": {}
133
+ },
134
+ {
135
+ "id": "bff75fe8-d2b1-48bb-ab5a-e4c574b35f9b",
136
+ "name": "manage-authorization",
137
+ "description": "${role_manage-authorization}",
138
+ "composite": false,
139
+ "clientRole": true,
140
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
141
+ "attributes": {}
142
+ },
143
+ {
144
+ "id": "8fdf05a0-1348-407c-85ae-e10b2e13d8f8",
145
+ "name": "create-client",
146
+ "description": "${role_create-client}",
147
+ "composite": false,
148
+ "clientRole": true,
149
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
150
+ "attributes": {}
151
+ },
152
+ {
153
+ "id": "d5c0da01-09be-4eb4-94d1-6faba008cdf6",
154
+ "name": "query-clients",
155
+ "description": "${role_query-clients}",
156
+ "composite": false,
157
+ "clientRole": true,
158
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
159
+ "attributes": {}
160
+ },
161
+ {
162
+ "id": "c08931f8-d4a1-447c-9cd7-ae3d6a515beb",
163
+ "name": "view-users",
164
+ "description": "${role_view-users}",
165
+ "composite": true,
166
+ "composites": {
167
+ "client": {
168
+ "realm-management": [
169
+ "query-users",
170
+ "query-groups"
171
+ ]
172
+ }
173
+ },
174
+ "clientRole": true,
175
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
176
+ "attributes": {}
177
+ },
178
+ {
179
+ "id": "4e6939cd-9634-4eaa-825d-94392f9f78c9",
180
+ "name": "view-realm",
181
+ "description": "${role_view-realm}",
182
+ "composite": false,
183
+ "clientRole": true,
184
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
185
+ "attributes": {}
186
+ },
187
+ {
188
+ "id": "bcfadbd1-46bd-4ecd-a491-9e711f095aaa",
189
+ "name": "view-identity-providers",
190
+ "description": "${role_view-identity-providers}",
191
+ "composite": false,
192
+ "clientRole": true,
193
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
194
+ "attributes": {}
195
+ },
196
+ {
197
+ "id": "ea089169-5853-4cc4-bb24-291901943797",
198
+ "name": "manage-events",
199
+ "description": "${role_manage-events}",
200
+ "composite": false,
201
+ "clientRole": true,
202
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
203
+ "attributes": {}
204
+ },
205
+ {
206
+ "id": "9e01df39-a17f-48d3-8c0b-bcab4bb0754c",
207
+ "name": "realm-admin",
208
+ "description": "${role_realm-admin}",
209
+ "composite": true,
210
+ "composites": {
211
+ "client": {
212
+ "realm-management": [
213
+ "manage-identity-providers",
214
+ "query-realms",
215
+ "manage-users",
216
+ "impersonation",
217
+ "view-authorization",
218
+ "view-events",
219
+ "view-clients",
220
+ "manage-authorization",
221
+ "create-client",
222
+ "query-clients",
223
+ "view-users",
224
+ "view-realm",
225
+ "view-identity-providers",
226
+ "manage-events",
227
+ "manage-realm",
228
+ "manage-clients",
229
+ "query-users",
230
+ "query-groups"
231
+ ]
232
+ }
233
+ },
234
+ "clientRole": true,
235
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
236
+ "attributes": {}
237
+ },
238
+ {
239
+ "id": "ff0860b2-92b2-4f69-a76d-90b92b3a0206",
240
+ "name": "manage-realm",
241
+ "description": "${role_manage-realm}",
242
+ "composite": false,
243
+ "clientRole": true,
244
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
245
+ "attributes": {}
246
+ },
247
+ {
248
+ "id": "aac2bd15-bb96-4b14-a219-e3033b692018",
249
+ "name": "manage-clients",
250
+ "description": "${role_manage-clients}",
251
+ "composite": false,
252
+ "clientRole": true,
253
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
254
+ "attributes": {}
255
+ },
256
+ {
257
+ "id": "ecf717f3-7b3b-47c5-8fe0-29b3b0365155",
258
+ "name": "query-users",
259
+ "description": "${role_query-users}",
260
+ "composite": false,
261
+ "clientRole": true,
262
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
263
+ "attributes": {}
264
+ },
265
+ {
266
+ "id": "a198abf5-5587-4461-9d81-effbd1926cf1",
267
+ "name": "query-groups",
268
+ "description": "${role_query-groups}",
269
+ "composite": false,
270
+ "clientRole": true,
271
+ "containerId": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
272
+ "attributes": {}
273
+ }
274
+ ],
275
+ "security-admin-console": [],
276
+ "admin-cli": [],
277
+ "ttk": [
278
+ {
279
+ "id": "c3cd04bb-bd8d-47d2-84ca-307e188faf3f",
280
+ "name": "uma_protection",
281
+ "composite": false,
282
+ "clientRole": true,
283
+ "containerId": "b1539d9c-5abc-4709-be4e-047a8eed03c3",
284
+ "attributes": {}
285
+ }
286
+ ],
287
+ "account-console": [],
288
+ "broker": [
289
+ {
290
+ "id": "24343d6d-c39a-409d-9cdb-7ad07005278a",
291
+ "name": "read-token",
292
+ "description": "${role_read-token}",
293
+ "composite": false,
294
+ "clientRole": true,
295
+ "containerId": "94d68b2f-317a-42e2-8dcb-f5bcb98be12e",
296
+ "attributes": {}
297
+ }
298
+ ],
299
+ "account": [
300
+ {
301
+ "id": "a01f1c8a-b441-4354-b8db-735a4a1a6640",
302
+ "name": "manage-account-links",
303
+ "description": "${role_manage-account-links}",
304
+ "composite": false,
305
+ "clientRole": true,
306
+ "containerId": "6ab67b5b-f33a-466a-b674-baf4d15520c9",
307
+ "attributes": {}
308
+ },
309
+ {
310
+ "id": "4f216124-a453-4371-815e-d191ced0eaea",
311
+ "name": "view-applications",
312
+ "description": "${role_view-applications}",
313
+ "composite": false,
314
+ "clientRole": true,
315
+ "containerId": "6ab67b5b-f33a-466a-b674-baf4d15520c9",
316
+ "attributes": {}
317
+ },
318
+ {
319
+ "id": "560fbb56-3f47-4402-a960-05992d0d586a",
320
+ "name": "manage-account",
321
+ "description": "${role_manage-account}",
322
+ "composite": true,
323
+ "composites": {
324
+ "client": {
325
+ "account": [
326
+ "manage-account-links"
327
+ ]
328
+ }
329
+ },
330
+ "clientRole": true,
331
+ "containerId": "6ab67b5b-f33a-466a-b674-baf4d15520c9",
332
+ "attributes": {}
333
+ },
334
+ {
335
+ "id": "60d9a492-40ed-4e43-a7c8-9a22bc588300",
336
+ "name": "manage-consent",
337
+ "description": "${role_manage-consent}",
338
+ "composite": true,
339
+ "composites": {
340
+ "client": {
341
+ "account": [
342
+ "view-consent"
343
+ ]
344
+ }
345
+ },
346
+ "clientRole": true,
347
+ "containerId": "6ab67b5b-f33a-466a-b674-baf4d15520c9",
348
+ "attributes": {}
349
+ },
350
+ {
351
+ "id": "d0b48df2-366f-444c-9e96-5c029e2f2e84",
352
+ "name": "view-profile",
353
+ "description": "${role_view-profile}",
354
+ "composite": false,
355
+ "clientRole": true,
356
+ "containerId": "6ab67b5b-f33a-466a-b674-baf4d15520c9",
357
+ "attributes": {}
358
+ },
359
+ {
360
+ "id": "5920cb2f-f730-45e6-8bf1-15dc777655f8",
361
+ "name": "view-consent",
362
+ "description": "${role_view-consent}",
363
+ "composite": false,
364
+ "clientRole": true,
365
+ "containerId": "6ab67b5b-f33a-466a-b674-baf4d15520c9",
366
+ "attributes": {}
367
+ }
368
+ ]
369
+ }
370
+ },
371
+ "groups": [
372
+ {
373
+ "id": "4b353130-69ae-4238-ab4a-c8ebfec43465",
374
+ "name": "Application/DFSP:dfsp1",
375
+ "path": "/Application/DFSP:dfsp1",
376
+ "attributes": {},
377
+ "realmRoles": [],
378
+ "clientRoles": {},
379
+ "subGroups": []
380
+ },
381
+ {
382
+ "id": "3ccc1e91-3377-4ef2-95f9-5844a1c99319",
383
+ "name": "Application/MTA",
384
+ "path": "/Application/MTA",
385
+ "attributes": {},
386
+ "realmRoles": [],
387
+ "clientRoles": {},
388
+ "subGroups": []
389
+ },
390
+ {
391
+ "id": "8941ca18-ae53-4b0d-9e83-f79e85ab2877",
392
+ "name": "Application/PTA",
393
+ "path": "/Application/PTA",
394
+ "attributes": {},
395
+ "realmRoles": [],
396
+ "clientRoles": {},
397
+ "subGroups": []
398
+ },
399
+ {
400
+ "id": "5281ed2a-3500-48d5-9f7c-496ff8bad2b2",
401
+ "name": "Application/PTSA",
402
+ "path": "/Application/PTSA",
403
+ "attributes": {},
404
+ "realmRoles": [],
405
+ "clientRoles": {},
406
+ "subGroups": []
407
+ },
408
+ {
409
+ "id": "2110a964-97ed-4dcd-82e5-d8969bc2a352",
410
+ "name": "Internal/everyone",
411
+ "path": "/Internal/everyone",
412
+ "attributes": {},
413
+ "realmRoles": [],
414
+ "clientRoles": {},
415
+ "subGroups": []
416
+ }
417
+ ],
418
+ "defaultRoles": [
419
+ "uma_authorization",
420
+ "offline_access"
421
+ ],
422
+ "requiredCredentials": [
423
+ "password"
424
+ ],
425
+ "otpPolicyType": "totp",
426
+ "otpPolicyAlgorithm": "HmacSHA1",
427
+ "otpPolicyInitialCounter": 0,
428
+ "otpPolicyDigits": 6,
429
+ "otpPolicyLookAheadWindow": 1,
430
+ "otpPolicyPeriod": 30,
431
+ "otpSupportedApplications": [
432
+ "FreeOTP",
433
+ "Google Authenticator"
434
+ ],
435
+ "webAuthnPolicyRpEntityName": "keycloak",
436
+ "webAuthnPolicySignatureAlgorithms": [
437
+ "ES256"
438
+ ],
439
+ "webAuthnPolicyRpId": "",
440
+ "webAuthnPolicyAttestationConveyancePreference": "not specified",
441
+ "webAuthnPolicyAuthenticatorAttachment": "not specified",
442
+ "webAuthnPolicyRequireResidentKey": "not specified",
443
+ "webAuthnPolicyUserVerificationRequirement": "not specified",
444
+ "webAuthnPolicyCreateTimeout": 0,
445
+ "webAuthnPolicyAvoidSameAuthenticatorRegister": false,
446
+ "webAuthnPolicyAcceptableAaguids": [],
447
+ "webAuthnPolicyPasswordlessRpEntityName": "keycloak",
448
+ "webAuthnPolicyPasswordlessSignatureAlgorithms": [
449
+ "ES256"
450
+ ],
451
+ "webAuthnPolicyPasswordlessRpId": "",
452
+ "webAuthnPolicyPasswordlessAttestationConveyancePreference": "not specified",
453
+ "webAuthnPolicyPasswordlessAuthenticatorAttachment": "not specified",
454
+ "webAuthnPolicyPasswordlessRequireResidentKey": "not specified",
455
+ "webAuthnPolicyPasswordlessUserVerificationRequirement": "not specified",
456
+ "webAuthnPolicyPasswordlessCreateTimeout": 0,
457
+ "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister": false,
458
+ "webAuthnPolicyPasswordlessAcceptableAaguids": [],
459
+ "users": [
460
+ {
461
+ "username" : "hub",
462
+ "enabled": true,
463
+ "totp": false,
464
+ "emailVerified": false,
465
+ "firstName": "hub",
466
+ "lastName": "hub",
467
+ "credentials" : [{ "type" : "password", "value" : "hub" }],
468
+ "realmRoles": ["offline_access", "uma_auhtorization"],
469
+ "clientRoles": {
470
+ "realm-management": [ "view-users" ]
471
+ },
472
+ "groups": [
473
+ "Application/PTA",
474
+ "Internal/everyone"
475
+ ],
476
+ "attributes": {
477
+ "dfspId": "hub"
478
+ }
479
+ },
480
+ {
481
+ "id": "0b791800-6649-4a88-ab8b-2acb7389533f",
482
+ "createdTimestamp": 1600780199675,
483
+ "username": "service-account-ttk",
484
+ "enabled": true,
485
+ "totp": false,
486
+ "emailVerified": false,
487
+ "serviceAccountClientId": "ttk",
488
+ "disableableCredentialTypes": [],
489
+ "requiredActions": [],
490
+ "realmRoles": [
491
+ "uma_authorization",
492
+ "offline_access"
493
+ ],
494
+ "clientRoles": {
495
+ "ttk": [
496
+ "uma_protection"
497
+ ],
498
+ "account": [
499
+ "manage-account",
500
+ "view-profile"
501
+ ]
502
+ },
503
+ "notBefore": 0,
504
+ "groups": []
505
+ }
506
+ ],
507
+ "scopeMappings": [
508
+ {
509
+ "clientScope": "offline_access",
510
+ "roles": [
511
+ "offline_access"
512
+ ]
513
+ }
514
+ ],
515
+ "clientScopeMappings": {
516
+ "account": [
517
+ {
518
+ "client": "account-console",
519
+ "roles": [
520
+ "manage-account"
521
+ ]
522
+ }
523
+ ]
524
+ },
525
+ "clients": [
526
+ {
527
+ "id": "6ab67b5b-f33a-466a-b674-baf4d15520c9",
528
+ "clientId": "account",
529
+ "name": "${client_account}",
530
+ "rootUrl": "${authBaseUrl}",
531
+ "baseUrl": "/realms/testingtoolkit/account/",
532
+ "surrogateAuthRequired": false,
533
+ "enabled": true,
534
+ "alwaysDisplayInConsole": false,
535
+ "clientAuthenticatorType": "client-secret",
536
+ "secret": "23b898a5-63d2-4055-bbe1-54efcda37e7d",
537
+ "defaultRoles": [
538
+ "manage-account",
539
+ "view-profile"
540
+ ],
541
+ "redirectUris": [
542
+ "/realms/testingtoolkit/account/*"
543
+ ],
544
+ "webOrigins": [],
545
+ "notBefore": 0,
546
+ "bearerOnly": false,
547
+ "consentRequired": false,
548
+ "standardFlowEnabled": true,
549
+ "implicitFlowEnabled": false,
550
+ "directAccessGrantsEnabled": false,
551
+ "serviceAccountsEnabled": false,
552
+ "publicClient": false,
553
+ "frontchannelLogout": false,
554
+ "protocol": "openid-connect",
555
+ "attributes": {},
556
+ "authenticationFlowBindingOverrides": {},
557
+ "fullScopeAllowed": false,
558
+ "nodeReRegistrationTimeout": 0,
559
+ "defaultClientScopes": [
560
+ "web-origins",
561
+ "role_list",
562
+ "profile",
563
+ "roles",
564
+ "email"
565
+ ],
566
+ "optionalClientScopes": [
567
+ "address",
568
+ "phone",
569
+ "offline_access",
570
+ "microprofile-jwt"
571
+ ]
572
+ },
573
+ {
574
+ "id": "db99042a-6cc8-4ad7-a283-62fd13b9659a",
575
+ "clientId": "account-console",
576
+ "name": "${client_account-console}",
577
+ "rootUrl": "${authBaseUrl}",
578
+ "baseUrl": "/realms/testingtoolkit/account/",
579
+ "surrogateAuthRequired": false,
580
+ "enabled": true,
581
+ "alwaysDisplayInConsole": false,
582
+ "clientAuthenticatorType": "client-secret",
583
+ "secret": "23b898a5-63d2-4055-bbe1-54efcda37e7d",
584
+ "redirectUris": [
585
+ "/realms/testingtoolkit/account/*"
586
+ ],
587
+ "webOrigins": [],
588
+ "notBefore": 0,
589
+ "bearerOnly": false,
590
+ "consentRequired": false,
591
+ "standardFlowEnabled": true,
592
+ "implicitFlowEnabled": false,
593
+ "directAccessGrantsEnabled": false,
594
+ "serviceAccountsEnabled": false,
595
+ "publicClient": true,
596
+ "frontchannelLogout": false,
597
+ "protocol": "openid-connect",
598
+ "attributes": {
599
+ "pkce.code.challenge.method": "S256"
600
+ },
601
+ "authenticationFlowBindingOverrides": {},
602
+ "fullScopeAllowed": false,
603
+ "nodeReRegistrationTimeout": 0,
604
+ "protocolMappers": [
605
+ {
606
+ "id": "00b57645-18d5-4d10-92a3-52c4d0e73d0d",
607
+ "name": "audience resolve",
608
+ "protocol": "openid-connect",
609
+ "protocolMapper": "oidc-audience-resolve-mapper",
610
+ "consentRequired": false,
611
+ "config": {}
612
+ }
613
+ ],
614
+ "defaultClientScopes": [
615
+ "web-origins",
616
+ "role_list",
617
+ "profile",
618
+ "roles",
619
+ "email"
620
+ ],
621
+ "optionalClientScopes": [
622
+ "address",
623
+ "phone",
624
+ "offline_access",
625
+ "microprofile-jwt"
626
+ ]
627
+ },
628
+ {
629
+ "id": "0e015dbe-f73a-473e-b944-5543bbd74f69",
630
+ "clientId": "admin-cli",
631
+ "name": "${client_admin-cli}",
632
+ "surrogateAuthRequired": false,
633
+ "enabled": true,
634
+ "alwaysDisplayInConsole": false,
635
+ "clientAuthenticatorType": "client-secret",
636
+ "secret": "23b898a5-63d2-4055-bbe1-54efcda37e7d",
637
+ "redirectUris": [],
638
+ "webOrigins": [],
639
+ "notBefore": 0,
640
+ "bearerOnly": false,
641
+ "consentRequired": false,
642
+ "standardFlowEnabled": false,
643
+ "implicitFlowEnabled": false,
644
+ "directAccessGrantsEnabled": true,
645
+ "serviceAccountsEnabled": false,
646
+ "publicClient": true,
647
+ "frontchannelLogout": false,
648
+ "protocol": "openid-connect",
649
+ "attributes": {},
650
+ "authenticationFlowBindingOverrides": {},
651
+ "fullScopeAllowed": false,
652
+ "nodeReRegistrationTimeout": 0,
653
+ "defaultClientScopes": [
654
+ "web-origins",
655
+ "role_list",
656
+ "profile",
657
+ "roles",
658
+ "email"
659
+ ],
660
+ "optionalClientScopes": [
661
+ "address",
662
+ "phone",
663
+ "offline_access",
664
+ "microprofile-jwt"
665
+ ]
666
+ },
667
+ {
668
+ "id": "94d68b2f-317a-42e2-8dcb-f5bcb98be12e",
669
+ "clientId": "broker",
670
+ "name": "${client_broker}",
671
+ "surrogateAuthRequired": false,
672
+ "enabled": true,
673
+ "alwaysDisplayInConsole": false,
674
+ "clientAuthenticatorType": "client-secret",
675
+ "secret": "23b898a5-63d2-4055-bbe1-54efcda37e7d",
676
+ "redirectUris": [],
677
+ "webOrigins": [],
678
+ "notBefore": 0,
679
+ "bearerOnly": false,
680
+ "consentRequired": false,
681
+ "standardFlowEnabled": true,
682
+ "implicitFlowEnabled": false,
683
+ "directAccessGrantsEnabled": false,
684
+ "serviceAccountsEnabled": false,
685
+ "publicClient": false,
686
+ "frontchannelLogout": false,
687
+ "protocol": "openid-connect",
688
+ "attributes": {},
689
+ "authenticationFlowBindingOverrides": {},
690
+ "fullScopeAllowed": false,
691
+ "nodeReRegistrationTimeout": 0,
692
+ "defaultClientScopes": [
693
+ "web-origins",
694
+ "role_list",
695
+ "profile",
696
+ "roles",
697
+ "email"
698
+ ],
699
+ "optionalClientScopes": [
700
+ "address",
701
+ "phone",
702
+ "offline_access",
703
+ "microprofile-jwt"
704
+ ]
705
+ },
706
+ {
707
+ "id": "9b915a86-4060-4e1d-8f32-0102bbcacc4e",
708
+ "clientId": "realm-management",
709
+ "name": "${client_realm-management}",
710
+ "surrogateAuthRequired": false,
711
+ "enabled": true,
712
+ "alwaysDisplayInConsole": false,
713
+ "clientAuthenticatorType": "client-secret",
714
+ "secret": "23b898a5-63d2-4055-bbe1-54efcda37e7d",
715
+ "redirectUris": [],
716
+ "webOrigins": [],
717
+ "notBefore": 0,
718
+ "bearerOnly": true,
719
+ "consentRequired": false,
720
+ "standardFlowEnabled": true,
721
+ "implicitFlowEnabled": false,
722
+ "directAccessGrantsEnabled": false,
723
+ "serviceAccountsEnabled": false,
724
+ "publicClient": false,
725
+ "frontchannelLogout": false,
726
+ "protocol": "openid-connect",
727
+ "attributes": {},
728
+ "authenticationFlowBindingOverrides": {},
729
+ "fullScopeAllowed": false,
730
+ "nodeReRegistrationTimeout": 0,
731
+ "defaultClientScopes": [
732
+ "web-origins",
733
+ "role_list",
734
+ "profile",
735
+ "roles",
736
+ "email"
737
+ ],
738
+ "optionalClientScopes": [
739
+ "address",
740
+ "phone",
741
+ "offline_access",
742
+ "microprofile-jwt"
743
+ ]
744
+ },
745
+ {
746
+ "id": "5aa7f6c8-4402-495a-a40d-6993c7bc9b9c",
747
+ "clientId": "security-admin-console",
748
+ "name": "${client_security-admin-console}",
749
+ "rootUrl": "${authAdminUrl}",
750
+ "baseUrl": "/admin/testingtoolkit/console/",
751
+ "surrogateAuthRequired": false,
752
+ "enabled": true,
753
+ "alwaysDisplayInConsole": false,
754
+ "clientAuthenticatorType": "client-secret",
755
+ "secret": "23b898a5-63d2-4055-bbe1-54efcda37e7d",
756
+ "redirectUris": [
757
+ "/admin/testingtoolkit/console/*"
758
+ ],
759
+ "webOrigins": [
760
+ "+"
761
+ ],
762
+ "notBefore": 0,
763
+ "bearerOnly": false,
764
+ "consentRequired": false,
765
+ "standardFlowEnabled": true,
766
+ "implicitFlowEnabled": false,
767
+ "directAccessGrantsEnabled": false,
768
+ "serviceAccountsEnabled": false,
769
+ "publicClient": true,
770
+ "frontchannelLogout": false,
771
+ "protocol": "openid-connect",
772
+ "attributes": {
773
+ "pkce.code.challenge.method": "S256"
774
+ },
775
+ "authenticationFlowBindingOverrides": {},
776
+ "fullScopeAllowed": false,
777
+ "nodeReRegistrationTimeout": 0,
778
+ "protocolMappers": [
779
+ {
780
+ "id": "9003189b-9a82-4fce-ae72-21227cadfa2a",
781
+ "name": "locale",
782
+ "protocol": "openid-connect",
783
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
784
+ "consentRequired": false,
785
+ "config": {
786
+ "userinfo.token.claim": "true",
787
+ "user.attribute": "locale",
788
+ "id.token.claim": "true",
789
+ "access.token.claim": "true",
790
+ "claim.name": "locale",
791
+ "jsonType.label": "String"
792
+ }
793
+ }
794
+ ],
795
+ "defaultClientScopes": [
796
+ "web-origins",
797
+ "role_list",
798
+ "profile",
799
+ "roles",
800
+ "email"
801
+ ],
802
+ "optionalClientScopes": [
803
+ "address",
804
+ "phone",
805
+ "offline_access",
806
+ "microprofile-jwt"
807
+ ]
808
+ },
809
+ {
810
+ "id": "b1539d9c-5abc-4709-be4e-047a8eed03c3",
811
+ "clientId": "ttk",
812
+ "surrogateAuthRequired": false,
813
+ "enabled": true,
814
+ "alwaysDisplayInConsole": false,
815
+ "clientAuthenticatorType": "client-secret",
816
+ "secret": "23b898a5-63d2-4055-bbe1-54efcda37e7d",
817
+ "redirectUris": [
818
+ "http://ml-testing-toolkit-keycloak.local"
819
+ ],
820
+ "webOrigins": [],
821
+ "notBefore": 0,
822
+ "bearerOnly": false,
823
+ "consentRequired": false,
824
+ "standardFlowEnabled": true,
825
+ "implicitFlowEnabled": false,
826
+ "directAccessGrantsEnabled": true,
827
+ "serviceAccountsEnabled": true,
828
+ "authorizationServicesEnabled": true,
829
+ "publicClient": false,
830
+ "frontchannelLogout": false,
831
+ "protocol": "openid-connect",
832
+ "attributes": {
833
+ "saml.assertion.signature": "false",
834
+ "saml.force.post.binding": "false",
835
+ "saml.multivalued.roles": "false",
836
+ "saml.encrypt": "false",
837
+ "access.token.signed.response.alg": "RS256",
838
+ "saml.server.signature": "false",
839
+ "saml.server.signature.keyinfo.ext": "false",
840
+ "exclude.session.state.from.auth.response": "false",
841
+ "id.token.signed.response.alg": "RS256",
842
+ "saml_force_name_id_format": "false",
843
+ "saml.client.signature": "false",
844
+ "tls.client.certificate.bound.access.tokens": "false",
845
+ "saml.authnstatement": "false",
846
+ "display.on.consent.screen": "false",
847
+ "saml.onetimeuse.condition": "false"
848
+ },
849
+ "authenticationFlowBindingOverrides": {},
850
+ "fullScopeAllowed": true,
851
+ "nodeReRegistrationTimeout": -1,
852
+ "protocolMappers": [
853
+ {
854
+ "id": "2bb1034e-92f1-4e29-b9b6-9004b7efe410",
855
+ "name": "Client IP Address",
856
+ "protocol": "openid-connect",
857
+ "protocolMapper": "oidc-usersessionmodel-note-mapper",
858
+ "consentRequired": false,
859
+ "config": {
860
+ "user.session.note": "clientAddress",
861
+ "userinfo.token.claim": "true",
862
+ "id.token.claim": "true",
863
+ "access.token.claim": "true",
864
+ "claim.name": "clientAddress",
865
+ "jsonType.label": "String"
866
+ }
867
+ },
868
+ {
869
+ "id": "9f6a431d-1bbd-45cb-b76a-4b4fc1b458ce",
870
+ "name": "dfspId",
871
+ "protocol": "openid-connect",
872
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
873
+ "consentRequired": false,
874
+ "config": {
875
+ "userinfo.token.claim": "true",
876
+ "user.attribute": "dfspId",
877
+ "id.token.claim": "true",
878
+ "access.token.claim": "true",
879
+ "claim.name": "dfspId",
880
+ "jsonType.label": "String"
881
+ }
882
+ },
883
+ {
884
+ "id": "6ca90c1e-ad70-4458-ab74-6a481de7233d",
885
+ "name": "groups",
886
+ "protocol": "openid-connect",
887
+ "protocolMapper": "oidc-group-membership-mapper",
888
+ "consentRequired": false,
889
+ "config": {
890
+ "full.path": "false",
891
+ "id.token.claim": "true",
892
+ "access.token.claim": "true",
893
+ "claim.name": "groups",
894
+ "userinfo.token.claim": "true"
895
+ }
896
+ },
897
+ {
898
+ "id": "55f71177-2278-46b6-87cb-53992e6d867d",
899
+ "name": "Client Host",
900
+ "protocol": "openid-connect",
901
+ "protocolMapper": "oidc-usersessionmodel-note-mapper",
902
+ "consentRequired": false,
903
+ "config": {
904
+ "user.session.note": "clientHost",
905
+ "userinfo.token.claim": "true",
906
+ "id.token.claim": "true",
907
+ "access.token.claim": "true",
908
+ "claim.name": "clientHost",
909
+ "jsonType.label": "String"
910
+ }
911
+ },
912
+ {
913
+ "id": "28083a76-84c5-4d12-a429-647db109dfac",
914
+ "name": "Client ID",
915
+ "protocol": "openid-connect",
916
+ "protocolMapper": "oidc-usersessionmodel-note-mapper",
917
+ "consentRequired": false,
918
+ "config": {
919
+ "user.session.note": "clientId",
920
+ "userinfo.token.claim": "true",
921
+ "id.token.claim": "true",
922
+ "access.token.claim": "true",
923
+ "claim.name": "clientId",
924
+ "jsonType.label": "String"
925
+ }
926
+ },
927
+ {
928
+ "id": "933dad21-2188-42a9-8df5-c21d1cc96d56",
929
+ "name": "aud",
930
+ "protocol": "openid-connect",
931
+ "protocolMapper": "oidc-audience-mapper",
932
+ "consentRequired": false,
933
+ "config": {
934
+ "included.client.audience": "ttk",
935
+ "id.token.claim": "true",
936
+ "access.token.claim": "true",
937
+ "included.custom.audience": "aud",
938
+ "userinfo.token.claim": "true"
939
+ }
940
+ }
941
+ ],
942
+ "defaultClientScopes": [
943
+ "web-origins",
944
+ "role_list",
945
+ "profile",
946
+ "roles",
947
+ "email"
948
+ ],
949
+ "optionalClientScopes": [
950
+ "address",
951
+ "phone",
952
+ "offline_access",
953
+ "microprofile-jwt"
954
+ ],
955
+ "authorizationSettings": {
956
+ "allowRemoteResourceManagement": true,
957
+ "policyEnforcementMode": "ENFORCING",
958
+ "resources": [
959
+ {
960
+ "name": "Default Resource",
961
+ "type": "urn:ttk:resources:default",
962
+ "ownerManagedAccess": false,
963
+ "attributes": {},
964
+ "_id": "3ce00315-8844-424e-a4b4-4d3ee2a480c0",
965
+ "uris": [
966
+ "/*"
967
+ ]
968
+ }
969
+ ],
970
+ "policies": [
971
+ {
972
+ "id": "02df0818-3d85-4d31-953c-3669cc2e84f6",
973
+ "name": "Default Policy",
974
+ "description": "A policy that grants access only for users within this realm",
975
+ "type": "js",
976
+ "logic": "POSITIVE",
977
+ "decisionStrategy": "AFFIRMATIVE",
978
+ "config": {
979
+ "code": "// by default, grants any permission associated with this policy\n$evaluation.grant();\n"
980
+ }
981
+ },
982
+ {
983
+ "id": "fac75dcb-39b4-406a-9e08-b66cfe454a67",
984
+ "name": "Default Permission",
985
+ "description": "A permission that applies to the default resource type",
986
+ "type": "resource",
987
+ "logic": "POSITIVE",
988
+ "decisionStrategy": "UNANIMOUS",
989
+ "config": {
990
+ "defaultResourceType": "urn:ttk:resources:default",
991
+ "applyPolicies": "[\"Default Policy\"]"
992
+ }
993
+ }
994
+ ],
995
+ "scopes": [],
996
+ "decisionStrategy": "UNANIMOUS"
997
+ }
998
+ }
999
+ ],
1000
+ "clientScopes": [
1001
+ {
1002
+ "id": "19c78b88-0003-4368-9f17-b78687d25c2e",
1003
+ "name": "offline_access",
1004
+ "description": "OpenID Connect built-in scope: offline_access",
1005
+ "protocol": "openid-connect",
1006
+ "attributes": {
1007
+ "consent.screen.text": "${offlineAccessScopeConsentText}",
1008
+ "display.on.consent.screen": "true"
1009
+ }
1010
+ },
1011
+ {
1012
+ "id": "e35ef416-8c89-4300-915b-cc283ddd8afa",
1013
+ "name": "role_list",
1014
+ "description": "SAML role list",
1015
+ "protocol": "saml",
1016
+ "attributes": {
1017
+ "consent.screen.text": "${samlRoleListScopeConsentText}",
1018
+ "display.on.consent.screen": "true"
1019
+ },
1020
+ "protocolMappers": [
1021
+ {
1022
+ "id": "355999df-e764-4c53-9844-9ff6a24b5963",
1023
+ "name": "role list",
1024
+ "protocol": "saml",
1025
+ "protocolMapper": "saml-role-list-mapper",
1026
+ "consentRequired": false,
1027
+ "config": {
1028
+ "single": "false",
1029
+ "attribute.nameformat": "Basic",
1030
+ "attribute.name": "Role"
1031
+ }
1032
+ }
1033
+ ]
1034
+ },
1035
+ {
1036
+ "id": "da254fad-5784-4cb9-b6e3-910ecf1f70c0",
1037
+ "name": "profile",
1038
+ "description": "OpenID Connect built-in scope: profile",
1039
+ "protocol": "openid-connect",
1040
+ "attributes": {
1041
+ "include.in.token.scope": "true",
1042
+ "display.on.consent.screen": "true",
1043
+ "consent.screen.text": "${profileScopeConsentText}"
1044
+ },
1045
+ "protocolMappers": [
1046
+ {
1047
+ "id": "bdd693d6-9e2a-4ea0-8ec0-d00fe7655dc0",
1048
+ "name": "picture",
1049
+ "protocol": "openid-connect",
1050
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1051
+ "consentRequired": false,
1052
+ "config": {
1053
+ "userinfo.token.claim": "true",
1054
+ "user.attribute": "picture",
1055
+ "id.token.claim": "true",
1056
+ "access.token.claim": "true",
1057
+ "claim.name": "picture",
1058
+ "jsonType.label": "String"
1059
+ }
1060
+ },
1061
+ {
1062
+ "id": "5019a0a4-009e-4158-bd91-1d60ef5a43e4",
1063
+ "name": "username",
1064
+ "protocol": "openid-connect",
1065
+ "protocolMapper": "oidc-usermodel-property-mapper",
1066
+ "consentRequired": false,
1067
+ "config": {
1068
+ "userinfo.token.claim": "true",
1069
+ "user.attribute": "username",
1070
+ "id.token.claim": "true",
1071
+ "access.token.claim": "true",
1072
+ "claim.name": "preferred_username",
1073
+ "jsonType.label": "String"
1074
+ }
1075
+ },
1076
+ {
1077
+ "id": "664b3d9e-5ad9-4bac-b6d8-d93ac88b7340",
1078
+ "name": "zoneinfo",
1079
+ "protocol": "openid-connect",
1080
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1081
+ "consentRequired": false,
1082
+ "config": {
1083
+ "userinfo.token.claim": "true",
1084
+ "user.attribute": "zoneinfo",
1085
+ "id.token.claim": "true",
1086
+ "access.token.claim": "true",
1087
+ "claim.name": "zoneinfo",
1088
+ "jsonType.label": "String"
1089
+ }
1090
+ },
1091
+ {
1092
+ "id": "8f3a73f6-17d4-40ea-9f37-bd51f99467f0",
1093
+ "name": "website",
1094
+ "protocol": "openid-connect",
1095
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1096
+ "consentRequired": false,
1097
+ "config": {
1098
+ "userinfo.token.claim": "true",
1099
+ "user.attribute": "website",
1100
+ "id.token.claim": "true",
1101
+ "access.token.claim": "true",
1102
+ "claim.name": "website",
1103
+ "jsonType.label": "String"
1104
+ }
1105
+ },
1106
+ {
1107
+ "id": "e2885def-2221-48c8-85be-e84831182e1c",
1108
+ "name": "full name",
1109
+ "protocol": "openid-connect",
1110
+ "protocolMapper": "oidc-full-name-mapper",
1111
+ "consentRequired": false,
1112
+ "config": {
1113
+ "id.token.claim": "true",
1114
+ "access.token.claim": "true",
1115
+ "userinfo.token.claim": "true"
1116
+ }
1117
+ },
1118
+ {
1119
+ "id": "b54d21b0-e3d0-49de-af5c-357f1e733dc8",
1120
+ "name": "locale",
1121
+ "protocol": "openid-connect",
1122
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1123
+ "consentRequired": false,
1124
+ "config": {
1125
+ "userinfo.token.claim": "true",
1126
+ "user.attribute": "locale",
1127
+ "id.token.claim": "true",
1128
+ "access.token.claim": "true",
1129
+ "claim.name": "locale",
1130
+ "jsonType.label": "String"
1131
+ }
1132
+ },
1133
+ {
1134
+ "id": "5a06a3c5-d114-4e5a-80ea-4e6eb46f9fcd",
1135
+ "name": "birthdate",
1136
+ "protocol": "openid-connect",
1137
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1138
+ "consentRequired": false,
1139
+ "config": {
1140
+ "userinfo.token.claim": "true",
1141
+ "user.attribute": "birthdate",
1142
+ "id.token.claim": "true",
1143
+ "access.token.claim": "true",
1144
+ "claim.name": "birthdate",
1145
+ "jsonType.label": "String"
1146
+ }
1147
+ },
1148
+ {
1149
+ "id": "77230790-8916-48ce-b068-9099d7b636dc",
1150
+ "name": "middle name",
1151
+ "protocol": "openid-connect",
1152
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1153
+ "consentRequired": false,
1154
+ "config": {
1155
+ "userinfo.token.claim": "true",
1156
+ "user.attribute": "middleName",
1157
+ "id.token.claim": "true",
1158
+ "access.token.claim": "true",
1159
+ "claim.name": "middle_name",
1160
+ "jsonType.label": "String"
1161
+ }
1162
+ },
1163
+ {
1164
+ "id": "f88621b8-6ce9-486b-b44d-c67387953d45",
1165
+ "name": "family name",
1166
+ "protocol": "openid-connect",
1167
+ "protocolMapper": "oidc-usermodel-property-mapper",
1168
+ "consentRequired": false,
1169
+ "config": {
1170
+ "userinfo.token.claim": "true",
1171
+ "user.attribute": "lastName",
1172
+ "id.token.claim": "true",
1173
+ "access.token.claim": "true",
1174
+ "claim.name": "family_name",
1175
+ "jsonType.label": "String"
1176
+ }
1177
+ },
1178
+ {
1179
+ "id": "16bf69be-a4f3-4625-8df8-98c079a621ea",
1180
+ "name": "updated at",
1181
+ "protocol": "openid-connect",
1182
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1183
+ "consentRequired": false,
1184
+ "config": {
1185
+ "userinfo.token.claim": "true",
1186
+ "user.attribute": "updatedAt",
1187
+ "id.token.claim": "true",
1188
+ "access.token.claim": "true",
1189
+ "claim.name": "updated_at",
1190
+ "jsonType.label": "String"
1191
+ }
1192
+ },
1193
+ {
1194
+ "id": "0ce93163-0376-45a2-b5f6-3115e562a5de",
1195
+ "name": "nickname",
1196
+ "protocol": "openid-connect",
1197
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1198
+ "consentRequired": false,
1199
+ "config": {
1200
+ "userinfo.token.claim": "true",
1201
+ "user.attribute": "nickname",
1202
+ "id.token.claim": "true",
1203
+ "access.token.claim": "true",
1204
+ "claim.name": "nickname",
1205
+ "jsonType.label": "String"
1206
+ }
1207
+ },
1208
+ {
1209
+ "id": "7edda7ab-aafb-461b-8b2d-ceba0b1be428",
1210
+ "name": "given name",
1211
+ "protocol": "openid-connect",
1212
+ "protocolMapper": "oidc-usermodel-property-mapper",
1213
+ "consentRequired": false,
1214
+ "config": {
1215
+ "userinfo.token.claim": "true",
1216
+ "user.attribute": "firstName",
1217
+ "id.token.claim": "true",
1218
+ "access.token.claim": "true",
1219
+ "claim.name": "given_name",
1220
+ "jsonType.label": "String"
1221
+ }
1222
+ },
1223
+ {
1224
+ "id": "654b004e-0bea-4af9-85e2-cd221f814e8c",
1225
+ "name": "profile",
1226
+ "protocol": "openid-connect",
1227
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1228
+ "consentRequired": false,
1229
+ "config": {
1230
+ "userinfo.token.claim": "true",
1231
+ "user.attribute": "profile",
1232
+ "id.token.claim": "true",
1233
+ "access.token.claim": "true",
1234
+ "claim.name": "profile",
1235
+ "jsonType.label": "String"
1236
+ }
1237
+ },
1238
+ {
1239
+ "id": "d6e27ca7-c522-4505-8bff-6498d02163d0",
1240
+ "name": "gender",
1241
+ "protocol": "openid-connect",
1242
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1243
+ "consentRequired": false,
1244
+ "config": {
1245
+ "userinfo.token.claim": "true",
1246
+ "user.attribute": "gender",
1247
+ "id.token.claim": "true",
1248
+ "access.token.claim": "true",
1249
+ "claim.name": "gender",
1250
+ "jsonType.label": "String"
1251
+ }
1252
+ }
1253
+ ]
1254
+ },
1255
+ {
1256
+ "id": "3fa9f4dc-9412-46b1-9280-83588ee617e2",
1257
+ "name": "email",
1258
+ "description": "OpenID Connect built-in scope: email",
1259
+ "protocol": "openid-connect",
1260
+ "attributes": {
1261
+ "include.in.token.scope": "true",
1262
+ "display.on.consent.screen": "true",
1263
+ "consent.screen.text": "${emailScopeConsentText}"
1264
+ },
1265
+ "protocolMappers": [
1266
+ {
1267
+ "id": "66c4e29b-4251-4d71-aab3-0fff7403f8cd",
1268
+ "name": "email",
1269
+ "protocol": "openid-connect",
1270
+ "protocolMapper": "oidc-usermodel-property-mapper",
1271
+ "consentRequired": false,
1272
+ "config": {
1273
+ "userinfo.token.claim": "true",
1274
+ "user.attribute": "email",
1275
+ "id.token.claim": "true",
1276
+ "access.token.claim": "true",
1277
+ "claim.name": "email",
1278
+ "jsonType.label": "String"
1279
+ }
1280
+ },
1281
+ {
1282
+ "id": "5f653f92-3428-4016-a7ed-c6f5e22d5a61",
1283
+ "name": "email verified",
1284
+ "protocol": "openid-connect",
1285
+ "protocolMapper": "oidc-usermodel-property-mapper",
1286
+ "consentRequired": false,
1287
+ "config": {
1288
+ "userinfo.token.claim": "true",
1289
+ "user.attribute": "emailVerified",
1290
+ "id.token.claim": "true",
1291
+ "access.token.claim": "true",
1292
+ "claim.name": "email_verified",
1293
+ "jsonType.label": "boolean"
1294
+ }
1295
+ }
1296
+ ]
1297
+ },
1298
+ {
1299
+ "id": "376fa414-9d76-4987-a297-1ec49f4829bf",
1300
+ "name": "address",
1301
+ "description": "OpenID Connect built-in scope: address",
1302
+ "protocol": "openid-connect",
1303
+ "attributes": {
1304
+ "include.in.token.scope": "true",
1305
+ "display.on.consent.screen": "true",
1306
+ "consent.screen.text": "${addressScopeConsentText}"
1307
+ },
1308
+ "protocolMappers": [
1309
+ {
1310
+ "id": "1efa91a0-af69-45d0-b75c-edb35f9e3216",
1311
+ "name": "address",
1312
+ "protocol": "openid-connect",
1313
+ "protocolMapper": "oidc-address-mapper",
1314
+ "consentRequired": false,
1315
+ "config": {
1316
+ "user.attribute.formatted": "formatted",
1317
+ "user.attribute.country": "country",
1318
+ "user.attribute.postal_code": "postal_code",
1319
+ "userinfo.token.claim": "true",
1320
+ "user.attribute.street": "street",
1321
+ "id.token.claim": "true",
1322
+ "user.attribute.region": "region",
1323
+ "access.token.claim": "true",
1324
+ "user.attribute.locality": "locality"
1325
+ }
1326
+ }
1327
+ ]
1328
+ },
1329
+ {
1330
+ "id": "4b3c2b63-93e8-4235-a101-5dbc489dcd47",
1331
+ "name": "phone",
1332
+ "description": "OpenID Connect built-in scope: phone",
1333
+ "protocol": "openid-connect",
1334
+ "attributes": {
1335
+ "include.in.token.scope": "true",
1336
+ "display.on.consent.screen": "true",
1337
+ "consent.screen.text": "${phoneScopeConsentText}"
1338
+ },
1339
+ "protocolMappers": [
1340
+ {
1341
+ "id": "36853412-a2b7-49a4-ab40-2e62dcf441d8",
1342
+ "name": "phone number verified",
1343
+ "protocol": "openid-connect",
1344
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1345
+ "consentRequired": false,
1346
+ "config": {
1347
+ "userinfo.token.claim": "true",
1348
+ "user.attribute": "phoneNumberVerified",
1349
+ "id.token.claim": "true",
1350
+ "access.token.claim": "true",
1351
+ "claim.name": "phone_number_verified",
1352
+ "jsonType.label": "boolean"
1353
+ }
1354
+ },
1355
+ {
1356
+ "id": "394df0fd-3ddd-47e0-a7f4-975420970100",
1357
+ "name": "phone number",
1358
+ "protocol": "openid-connect",
1359
+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1360
+ "consentRequired": false,
1361
+ "config": {
1362
+ "userinfo.token.claim": "true",
1363
+ "user.attribute": "phoneNumber",
1364
+ "id.token.claim": "true",
1365
+ "access.token.claim": "true",
1366
+ "claim.name": "phone_number",
1367
+ "jsonType.label": "String"
1368
+ }
1369
+ }
1370
+ ]
1371
+ },
1372
+ {
1373
+ "id": "035b2bf8-d5c9-4971-a963-0bf175e87d84",
1374
+ "name": "roles",
1375
+ "description": "OpenID Connect scope for add user roles to the access token",
1376
+ "protocol": "openid-connect",
1377
+ "attributes": {
1378
+ "include.in.token.scope": "false",
1379
+ "display.on.consent.screen": "true",
1380
+ "consent.screen.text": "${rolesScopeConsentText}"
1381
+ },
1382
+ "protocolMappers": [
1383
+ {
1384
+ "id": "0d1915fc-6643-4572-8825-e2012e96b14d",
1385
+ "name": "audience resolve",
1386
+ "protocol": "openid-connect",
1387
+ "protocolMapper": "oidc-audience-resolve-mapper",
1388
+ "consentRequired": false,
1389
+ "config": {}
1390
+ },
1391
+ {
1392
+ "id": "2dd76b41-a8c9-4ed4-9545-c922433da82c",
1393
+ "name": "realm roles",
1394
+ "protocol": "openid-connect",
1395
+ "protocolMapper": "oidc-usermodel-realm-role-mapper",
1396
+ "consentRequired": false,
1397
+ "config": {
1398
+ "user.attribute": "foo",
1399
+ "access.token.claim": "true",
1400
+ "claim.name": "realm_access.roles",
1401
+ "jsonType.label": "String",
1402
+ "multivalued": "true"
1403
+ }
1404
+ },
1405
+ {
1406
+ "id": "801a5395-6935-4c05-9db1-753d397a7d2f",
1407
+ "name": "client roles",
1408
+ "protocol": "openid-connect",
1409
+ "protocolMapper": "oidc-usermodel-client-role-mapper",
1410
+ "consentRequired": false,
1411
+ "config": {
1412
+ "user.attribute": "foo",
1413
+ "access.token.claim": "true",
1414
+ "claim.name": "resource_access.${client_id}.roles",
1415
+ "jsonType.label": "String",
1416
+ "multivalued": "true"
1417
+ }
1418
+ }
1419
+ ]
1420
+ },
1421
+ {
1422
+ "id": "d038112c-3bbc-489e-aec0-ca6185dc6d53",
1423
+ "name": "web-origins",
1424
+ "description": "OpenID Connect scope for add allowed web origins to the access token",
1425
+ "protocol": "openid-connect",
1426
+ "attributes": {
1427
+ "include.in.token.scope": "false",
1428
+ "display.on.consent.screen": "false",
1429
+ "consent.screen.text": ""
1430
+ },
1431
+ "protocolMappers": [
1432
+ {
1433
+ "id": "0b5d8ef6-9682-43fc-b1fb-12f24289485a",
1434
+ "name": "allowed web origins",
1435
+ "protocol": "openid-connect",
1436
+ "protocolMapper": "oidc-allowed-origins-mapper",
1437
+ "consentRequired": false,
1438
+ "config": {}
1439
+ }
1440
+ ]
1441
+ },
1442
+ {
1443
+ "id": "eaa6c62f-7afb-4822-b199-0a1277ef5cc7",
1444
+ "name": "microprofile-jwt",
1445
+ "description": "Microprofile - JWT built-in scope",
1446
+ "protocol": "openid-connect",
1447
+ "attributes": {
1448
+ "include.in.token.scope": "true",
1449
+ "display.on.consent.screen": "false"
1450
+ },
1451
+ "protocolMappers": [
1452
+ {
1453
+ "id": "5beb560e-8664-4e62-a637-79d949ae17fc",
1454
+ "name": "groups",
1455
+ "protocol": "openid-connect",
1456
+ "protocolMapper": "oidc-usermodel-realm-role-mapper",
1457
+ "consentRequired": false,
1458
+ "config": {
1459
+ "multivalued": "true",
1460
+ "userinfo.token.claim": "true",
1461
+ "user.attribute": "foo",
1462
+ "id.token.claim": "true",
1463
+ "access.token.claim": "true",
1464
+ "claim.name": "groups",
1465
+ "jsonType.label": "String"
1466
+ }
1467
+ },
1468
+ {
1469
+ "id": "21e4cb7f-c5f1-4478-9f28-1ded57f82be6",
1470
+ "name": "upn",
1471
+ "protocol": "openid-connect",
1472
+ "protocolMapper": "oidc-usermodel-property-mapper",
1473
+ "consentRequired": false,
1474
+ "config": {
1475
+ "userinfo.token.claim": "true",
1476
+ "user.attribute": "username",
1477
+ "id.token.claim": "true",
1478
+ "access.token.claim": "true",
1479
+ "claim.name": "upn",
1480
+ "jsonType.label": "String"
1481
+ }
1482
+ }
1483
+ ]
1484
+ }
1485
+ ],
1486
+ "defaultDefaultClientScopes": [
1487
+ "role_list",
1488
+ "profile",
1489
+ "email",
1490
+ "roles",
1491
+ "web-origins"
1492
+ ],
1493
+ "defaultOptionalClientScopes": [
1494
+ "offline_access",
1495
+ "address",
1496
+ "phone",
1497
+ "microprofile-jwt"
1498
+ ],
1499
+ "browserSecurityHeaders": {
1500
+ "contentSecurityPolicyReportOnly": "",
1501
+ "xContentTypeOptions": "nosniff",
1502
+ "xRobotsTag": "none",
1503
+ "xFrameOptions": "SAMEORIGIN",
1504
+ "contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
1505
+ "xXSSProtection": "1; mode=block",
1506
+ "strictTransportSecurity": "max-age=31536000; includeSubDomains"
1507
+ },
1508
+ "smtpServer": {},
1509
+ "eventsEnabled": false,
1510
+ "eventsListeners": [
1511
+ "jboss-logging"
1512
+ ],
1513
+ "enabledEventTypes": [],
1514
+ "adminEventsEnabled": false,
1515
+ "adminEventsDetailsEnabled": false,
1516
+ "components": {
1517
+ "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy": [
1518
+ {
1519
+ "id": "656a16b3-cef3-44b0-a0b5-28f6c282a5b3",
1520
+ "name": "Allowed Protocol Mapper Types",
1521
+ "providerId": "allowed-protocol-mappers",
1522
+ "subType": "anonymous",
1523
+ "subComponents": {},
1524
+ "config": {
1525
+ "allowed-protocol-mapper-types": [
1526
+ "saml-user-attribute-mapper",
1527
+ "saml-role-list-mapper",
1528
+ "oidc-usermodel-attribute-mapper",
1529
+ "saml-user-property-mapper",
1530
+ "oidc-usermodel-property-mapper",
1531
+ "oidc-sha256-pairwise-sub-mapper",
1532
+ "oidc-address-mapper",
1533
+ "oidc-full-name-mapper"
1534
+ ]
1535
+ }
1536
+ },
1537
+ {
1538
+ "id": "fae39e5e-c024-4bbb-beab-bb16b45bd8d1",
1539
+ "name": "Consent Required",
1540
+ "providerId": "consent-required",
1541
+ "subType": "anonymous",
1542
+ "subComponents": {},
1543
+ "config": {}
1544
+ },
1545
+ {
1546
+ "id": "08c4a812-b1c6-4a1c-8eb9-2f62f20f6b93",
1547
+ "name": "Max Clients Limit",
1548
+ "providerId": "max-clients",
1549
+ "subType": "anonymous",
1550
+ "subComponents": {},
1551
+ "config": {
1552
+ "max-clients": [
1553
+ "200"
1554
+ ]
1555
+ }
1556
+ },
1557
+ {
1558
+ "id": "3aa79cb9-6e3b-4c23-9dd3-a7f68a7ec4bc",
1559
+ "name": "Allowed Client Scopes",
1560
+ "providerId": "allowed-client-templates",
1561
+ "subType": "authenticated",
1562
+ "subComponents": {},
1563
+ "config": {
1564
+ "allow-default-scopes": [
1565
+ "true"
1566
+ ]
1567
+ }
1568
+ },
1569
+ {
1570
+ "id": "9c99fdd4-8173-41fa-b22e-8b9fd6e6be9f",
1571
+ "name": "Allowed Client Scopes",
1572
+ "providerId": "allowed-client-templates",
1573
+ "subType": "anonymous",
1574
+ "subComponents": {},
1575
+ "config": {
1576
+ "allow-default-scopes": [
1577
+ "true"
1578
+ ]
1579
+ }
1580
+ },
1581
+ {
1582
+ "id": "fb46764a-7544-4879-a3fc-75aefc8644f8",
1583
+ "name": "Trusted Hosts",
1584
+ "providerId": "trusted-hosts",
1585
+ "subType": "anonymous",
1586
+ "subComponents": {},
1587
+ "config": {
1588
+ "host-sending-registration-request-must-match": [
1589
+ "true"
1590
+ ],
1591
+ "client-uris-must-match": [
1592
+ "true"
1593
+ ]
1594
+ }
1595
+ },
1596
+ {
1597
+ "id": "fa583108-f378-483c-ae44-80c6dfa187a9",
1598
+ "name": "Full Scope Disabled",
1599
+ "providerId": "scope",
1600
+ "subType": "anonymous",
1601
+ "subComponents": {},
1602
+ "config": {}
1603
+ },
1604
+ {
1605
+ "id": "57351d08-bef3-40e7-9f0e-ab6f3770b0a6",
1606
+ "name": "Allowed Protocol Mapper Types",
1607
+ "providerId": "allowed-protocol-mappers",
1608
+ "subType": "authenticated",
1609
+ "subComponents": {},
1610
+ "config": {
1611
+ "allowed-protocol-mapper-types": [
1612
+ "oidc-usermodel-property-mapper",
1613
+ "oidc-address-mapper",
1614
+ "oidc-sha256-pairwise-sub-mapper",
1615
+ "oidc-full-name-mapper",
1616
+ "oidc-usermodel-attribute-mapper",
1617
+ "saml-user-property-mapper",
1618
+ "saml-role-list-mapper",
1619
+ "saml-user-attribute-mapper"
1620
+ ]
1621
+ }
1622
+ }
1623
+ ],
1624
+ "org.keycloak.keys.KeyProvider": [
1625
+ {
1626
+ "id": "b5030ed3-41e2-4b42-baa8-4471ee7c4891",
1627
+ "name": "aes-generated",
1628
+ "providerId": "aes-generated",
1629
+ "subComponents": {},
1630
+ "config": {
1631
+ "priority": [
1632
+ "100"
1633
+ ]
1634
+ }
1635
+ },
1636
+ {
1637
+ "id": "a686be9f-dcb4-45e2-b176-334045d571ef",
1638
+ "name": "rsa",
1639
+ "providerId": "rsa",
1640
+ "subComponents": {},
1641
+ "config": {
1642
+ "privateKey": [
1643
+ "-----BEGIN RSA PRIVATE KEY-----\nMIICWwIBAAKBgQDda1T6cyWogfG/xlUb3+gWZI0jsnlSGbf3PF89NCgS+n6HUJ0A\n2Ezmu/n9Gfkm8Rjyst914Vq9ebsueXHIc+Ad76+q3MASF1hRUTfnvH/v6rDguPvI\n6Jb/M9jGn5b2hglcg3B9Y7Tgv70bcV7oCweP68CPbIrTWjR9gyjmSHfYhwIDAQAB\nAoGAexcdAbIboEbE7xjB3aIm8rPpZovkOAkGJVKRm4OwN4S77FubPIoCjk631cWn\npcdoWBuqcGzcNfNDZL2szIPmdZU/Cx9I1wjFKRI1pKVS6E8giFLxKDg4KytLDUB2\nToU63yIGQ3lw2GL9Uj66AztAbcJcjsbWLPgtDiiEJlqFzVECQQDvr8pC1lChqgAQ\n8lWxh0LhuXBpGOpnnylWzloZ/kj9Xjh7ZNCRTRSGLDlANL040tzqOeJw3gvwLPtS\nKueUOCBZAkEA7H1B4dShqsXEKVMsy/7BqjT9EMUadYatJel47V5Hql9SO2Z0iK4f\nA22WWokXARb2bXk0awEw2lI6H2GgP3Oj3wJABM1PzxD+Io8GW1CPmPPtyhnt/50J\nLTRKHrwZoAWxLqpRlV9Ksm6J57pBF2E3HUlUNbkdKUe5k4FDM706UITjWQJAc4hp\n9Drd1EETqSCyROKrmEyUyWmRmJL36gqaglRJ7Kju0ogmLFPsYM9b4dURgP3H3AmX\nmyMUy8PaE1StZfJHvwJAA+SRSj+FFajdzrIlYFo7TirFWyQ/wdQ3+IKVGohOFQms\nYEi2xYZD4hWgztz4AbyHVFPLnS1mhwoO/uE2qbNHjw==\n-----END RSA PRIVATE KEY-----"
1644
+ ],
1645
+ "certificate": [
1646
+ "-----BEGIN CERTIFICATE-----\nMIICrDCCAhWgAwIBAgIUBQ88qYAqQ1+I+ISsaIgYPqbya9QwDQYJKoZIhvcNAQEL\nBQAwaDELMAkGA1UEBhMCVUsxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9u\nZG9uMREwDwYDVQQKDAhNb2R1c2JveDERMA8GA1UECwwITW9kdXNib3gxETAPBgNV\nBAMMCE1vZHVzYm94MB4XDTIwMDkzMDE3MDYwNloXDTIxMDkzMDE3MDYwNlowaDEL\nMAkGA1UEBhMCVUsxDzANBgNVBAgMBkxvbmRvbjEPMA0GA1UEBwwGTG9uZG9uMREw\nDwYDVQQKDAhNb2R1c2JveDERMA8GA1UECwwITW9kdXNib3gxETAPBgNVBAMMCE1v\nZHVzYm94MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDda1T6cyWogfG/xlUb\n3+gWZI0jsnlSGbf3PF89NCgS+n6HUJ0A2Ezmu/n9Gfkm8Rjyst914Vq9ebsueXHI\nc+Ad76+q3MASF1hRUTfnvH/v6rDguPvI6Jb/M9jGn5b2hglcg3B9Y7Tgv70bcV7o\nCweP68CPbIrTWjR9gyjmSHfYhwIDAQABo1MwUTAdBgNVHQ4EFgQUEE+og3aDjUzC\nywQo45Fhjp5S9EowHwYDVR0jBBgwFoAUEE+og3aDjUzCywQo45Fhjp5S9EowDwYD\nVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQC2a7sxisCTQa9oRGMZRmJs\nFMZjia126qlRYm6ljjM2wWlqIBdxjzLhLJbAiWMyzGKTZdMOG51Ujc+NapKRLS4K\nHVnzcbtgRNq6GZk5C1L8BEzR6NxU/CdOkm2Vx811CTOT/YijpjtjF01K1aIZE+z8\nmdzyVY9ZybXqbNclLU7rwA==\n-----END CERTIFICATE-----"
1647
+ ],
1648
+ "active": [
1649
+ "true"
1650
+ ],
1651
+ "priority": [
1652
+ "100"
1653
+ ],
1654
+ "enabled": [
1655
+ "true"
1656
+ ],
1657
+ "algorithm": [
1658
+ "RS256"
1659
+ ]
1660
+ }
1661
+ },
1662
+ {
1663
+ "id": "f1650d3c-e113-4080-9bbc-d4911128bca4",
1664
+ "name": "hmac-generated",
1665
+ "providerId": "hmac-generated",
1666
+ "subComponents": {},
1667
+ "config": {
1668
+ "priority": [
1669
+ "100"
1670
+ ],
1671
+ "algorithm": [
1672
+ "HS256"
1673
+ ]
1674
+ }
1675
+ }
1676
+ ]
1677
+ },
1678
+ "internationalizationEnabled": false,
1679
+ "supportedLocales": [],
1680
+ "authenticationFlows": [
1681
+ {
1682
+ "id": "fa656a38-6cac-47a0-b5df-5e6ff6bbdf7e",
1683
+ "alias": "Account verification options",
1684
+ "description": "Method with which to verity the existing account",
1685
+ "providerId": "basic-flow",
1686
+ "topLevel": false,
1687
+ "builtIn": true,
1688
+ "authenticationExecutions": [
1689
+ {
1690
+ "authenticator": "idp-email-verification",
1691
+ "requirement": "ALTERNATIVE",
1692
+ "priority": 10,
1693
+ "userSetupAllowed": false,
1694
+ "autheticatorFlow": false
1695
+ },
1696
+ {
1697
+ "requirement": "ALTERNATIVE",
1698
+ "priority": 20,
1699
+ "flowAlias": "Verify Existing Account by Re-authentication",
1700
+ "userSetupAllowed": false,
1701
+ "autheticatorFlow": true
1702
+ }
1703
+ ]
1704
+ },
1705
+ {
1706
+ "id": "e0af394d-a09c-4a39-8cc9-61c6e381ecdf",
1707
+ "alias": "Authentication Options",
1708
+ "description": "Authentication options.",
1709
+ "providerId": "basic-flow",
1710
+ "topLevel": false,
1711
+ "builtIn": true,
1712
+ "authenticationExecutions": [
1713
+ {
1714
+ "authenticator": "basic-auth",
1715
+ "requirement": "REQUIRED",
1716
+ "priority": 10,
1717
+ "userSetupAllowed": false,
1718
+ "autheticatorFlow": false
1719
+ },
1720
+ {
1721
+ "authenticator": "basic-auth-otp",
1722
+ "requirement": "DISABLED",
1723
+ "priority": 20,
1724
+ "userSetupAllowed": false,
1725
+ "autheticatorFlow": false
1726
+ },
1727
+ {
1728
+ "authenticator": "auth-spnego",
1729
+ "requirement": "DISABLED",
1730
+ "priority": 30,
1731
+ "userSetupAllowed": false,
1732
+ "autheticatorFlow": false
1733
+ }
1734
+ ]
1735
+ },
1736
+ {
1737
+ "id": "be6af95e-6832-404a-85a4-154c90d691c1",
1738
+ "alias": "Browser - Conditional OTP",
1739
+ "description": "Flow to determine if the OTP is required for the authentication",
1740
+ "providerId": "basic-flow",
1741
+ "topLevel": false,
1742
+ "builtIn": true,
1743
+ "authenticationExecutions": [
1744
+ {
1745
+ "authenticator": "conditional-user-configured",
1746
+ "requirement": "REQUIRED",
1747
+ "priority": 10,
1748
+ "userSetupAllowed": false,
1749
+ "autheticatorFlow": false
1750
+ },
1751
+ {
1752
+ "authenticator": "auth-otp-form",
1753
+ "requirement": "REQUIRED",
1754
+ "priority": 20,
1755
+ "userSetupAllowed": false,
1756
+ "autheticatorFlow": false
1757
+ }
1758
+ ]
1759
+ },
1760
+ {
1761
+ "id": "432339ec-1632-4d1e-a3d6-e8e0dfa40100",
1762
+ "alias": "Direct Grant - Conditional OTP",
1763
+ "description": "Flow to determine if the OTP is required for the authentication",
1764
+ "providerId": "basic-flow",
1765
+ "topLevel": false,
1766
+ "builtIn": true,
1767
+ "authenticationExecutions": [
1768
+ {
1769
+ "authenticator": "conditional-user-configured",
1770
+ "requirement": "REQUIRED",
1771
+ "priority": 10,
1772
+ "userSetupAllowed": false,
1773
+ "autheticatorFlow": false
1774
+ },
1775
+ {
1776
+ "authenticator": "direct-grant-validate-otp",
1777
+ "requirement": "REQUIRED",
1778
+ "priority": 20,
1779
+ "userSetupAllowed": false,
1780
+ "autheticatorFlow": false
1781
+ }
1782
+ ]
1783
+ },
1784
+ {
1785
+ "id": "a5c08382-9185-4807-ae3a-c61c2295d0c6",
1786
+ "alias": "First broker login - Conditional OTP",
1787
+ "description": "Flow to determine if the OTP is required for the authentication",
1788
+ "providerId": "basic-flow",
1789
+ "topLevel": false,
1790
+ "builtIn": true,
1791
+ "authenticationExecutions": [
1792
+ {
1793
+ "authenticator": "conditional-user-configured",
1794
+ "requirement": "REQUIRED",
1795
+ "priority": 10,
1796
+ "userSetupAllowed": false,
1797
+ "autheticatorFlow": false
1798
+ },
1799
+ {
1800
+ "authenticator": "auth-otp-form",
1801
+ "requirement": "REQUIRED",
1802
+ "priority": 20,
1803
+ "userSetupAllowed": false,
1804
+ "autheticatorFlow": false
1805
+ }
1806
+ ]
1807
+ },
1808
+ {
1809
+ "id": "c0b9cc99-66f0-4b14-b23c-d0e4b681e6d1",
1810
+ "alias": "Handle Existing Account",
1811
+ "description": "Handle what to do if there is existing account with same email/username like authenticated identity provider",
1812
+ "providerId": "basic-flow",
1813
+ "topLevel": false,
1814
+ "builtIn": true,
1815
+ "authenticationExecutions": [
1816
+ {
1817
+ "authenticator": "idp-confirm-link",
1818
+ "requirement": "REQUIRED",
1819
+ "priority": 10,
1820
+ "userSetupAllowed": false,
1821
+ "autheticatorFlow": false
1822
+ },
1823
+ {
1824
+ "requirement": "REQUIRED",
1825
+ "priority": 20,
1826
+ "flowAlias": "Account verification options",
1827
+ "userSetupAllowed": false,
1828
+ "autheticatorFlow": true
1829
+ }
1830
+ ]
1831
+ },
1832
+ {
1833
+ "id": "561eb47b-d483-4bf1-9592-e6a9a348fac0",
1834
+ "alias": "Reset - Conditional OTP",
1835
+ "description": "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.",
1836
+ "providerId": "basic-flow",
1837
+ "topLevel": false,
1838
+ "builtIn": true,
1839
+ "authenticationExecutions": [
1840
+ {
1841
+ "authenticator": "conditional-user-configured",
1842
+ "requirement": "REQUIRED",
1843
+ "priority": 10,
1844
+ "userSetupAllowed": false,
1845
+ "autheticatorFlow": false
1846
+ },
1847
+ {
1848
+ "authenticator": "reset-otp",
1849
+ "requirement": "REQUIRED",
1850
+ "priority": 20,
1851
+ "userSetupAllowed": false,
1852
+ "autheticatorFlow": false
1853
+ }
1854
+ ]
1855
+ },
1856
+ {
1857
+ "id": "f80bc1d3-1daf-4ca8-8ee9-96b4b4dd062c",
1858
+ "alias": "User creation or linking",
1859
+ "description": "Flow for the existing/non-existing user alternatives",
1860
+ "providerId": "basic-flow",
1861
+ "topLevel": false,
1862
+ "builtIn": true,
1863
+ "authenticationExecutions": [
1864
+ {
1865
+ "authenticatorConfig": "create unique user config",
1866
+ "authenticator": "idp-create-user-if-unique",
1867
+ "requirement": "ALTERNATIVE",
1868
+ "priority": 10,
1869
+ "userSetupAllowed": false,
1870
+ "autheticatorFlow": false
1871
+ },
1872
+ {
1873
+ "requirement": "ALTERNATIVE",
1874
+ "priority": 20,
1875
+ "flowAlias": "Handle Existing Account",
1876
+ "userSetupAllowed": false,
1877
+ "autheticatorFlow": true
1878
+ }
1879
+ ]
1880
+ },
1881
+ {
1882
+ "id": "e02390f9-a7fc-4195-9358-23445cce4939",
1883
+ "alias": "Verify Existing Account by Re-authentication",
1884
+ "description": "Reauthentication of existing account",
1885
+ "providerId": "basic-flow",
1886
+ "topLevel": false,
1887
+ "builtIn": true,
1888
+ "authenticationExecutions": [
1889
+ {
1890
+ "authenticator": "idp-username-password-form",
1891
+ "requirement": "REQUIRED",
1892
+ "priority": 10,
1893
+ "userSetupAllowed": false,
1894
+ "autheticatorFlow": false
1895
+ },
1896
+ {
1897
+ "requirement": "CONDITIONAL",
1898
+ "priority": 20,
1899
+ "flowAlias": "First broker login - Conditional OTP",
1900
+ "userSetupAllowed": false,
1901
+ "autheticatorFlow": true
1902
+ }
1903
+ ]
1904
+ },
1905
+ {
1906
+ "id": "d4b3931b-424b-4bcd-bb8f-7423cd637427",
1907
+ "alias": "browser",
1908
+ "description": "browser based authentication",
1909
+ "providerId": "basic-flow",
1910
+ "topLevel": true,
1911
+ "builtIn": true,
1912
+ "authenticationExecutions": [
1913
+ {
1914
+ "authenticator": "auth-cookie",
1915
+ "requirement": "ALTERNATIVE",
1916
+ "priority": 10,
1917
+ "userSetupAllowed": false,
1918
+ "autheticatorFlow": false
1919
+ },
1920
+ {
1921
+ "authenticator": "auth-spnego",
1922
+ "requirement": "DISABLED",
1923
+ "priority": 20,
1924
+ "userSetupAllowed": false,
1925
+ "autheticatorFlow": false
1926
+ },
1927
+ {
1928
+ "authenticator": "identity-provider-redirector",
1929
+ "requirement": "ALTERNATIVE",
1930
+ "priority": 25,
1931
+ "userSetupAllowed": false,
1932
+ "autheticatorFlow": false
1933
+ },
1934
+ {
1935
+ "requirement": "ALTERNATIVE",
1936
+ "priority": 30,
1937
+ "flowAlias": "forms",
1938
+ "userSetupAllowed": false,
1939
+ "autheticatorFlow": true
1940
+ }
1941
+ ]
1942
+ },
1943
+ {
1944
+ "id": "38f3c916-9257-426b-9485-b5b6c982c834",
1945
+ "alias": "clients",
1946
+ "description": "Base authentication for clients",
1947
+ "providerId": "client-flow",
1948
+ "topLevel": true,
1949
+ "builtIn": true,
1950
+ "authenticationExecutions": [
1951
+ {
1952
+ "authenticator": "client-secret",
1953
+ "requirement": "ALTERNATIVE",
1954
+ "priority": 10,
1955
+ "userSetupAllowed": false,
1956
+ "autheticatorFlow": false
1957
+ },
1958
+ {
1959
+ "authenticator": "client-jwt",
1960
+ "requirement": "ALTERNATIVE",
1961
+ "priority": 20,
1962
+ "userSetupAllowed": false,
1963
+ "autheticatorFlow": false
1964
+ },
1965
+ {
1966
+ "authenticator": "client-secret-jwt",
1967
+ "requirement": "ALTERNATIVE",
1968
+ "priority": 30,
1969
+ "userSetupAllowed": false,
1970
+ "autheticatorFlow": false
1971
+ },
1972
+ {
1973
+ "authenticator": "client-x509",
1974
+ "requirement": "ALTERNATIVE",
1975
+ "priority": 40,
1976
+ "userSetupAllowed": false,
1977
+ "autheticatorFlow": false
1978
+ }
1979
+ ]
1980
+ },
1981
+ {
1982
+ "id": "e6260e5c-441c-47f7-a3e3-f0bdf6a5dc6f",
1983
+ "alias": "direct grant",
1984
+ "description": "OpenID Connect Resource Owner Grant",
1985
+ "providerId": "basic-flow",
1986
+ "topLevel": true,
1987
+ "builtIn": true,
1988
+ "authenticationExecutions": [
1989
+ {
1990
+ "authenticator": "direct-grant-validate-username",
1991
+ "requirement": "REQUIRED",
1992
+ "priority": 10,
1993
+ "userSetupAllowed": false,
1994
+ "autheticatorFlow": false
1995
+ },
1996
+ {
1997
+ "authenticator": "direct-grant-validate-password",
1998
+ "requirement": "REQUIRED",
1999
+ "priority": 20,
2000
+ "userSetupAllowed": false,
2001
+ "autheticatorFlow": false
2002
+ },
2003
+ {
2004
+ "requirement": "CONDITIONAL",
2005
+ "priority": 30,
2006
+ "flowAlias": "Direct Grant - Conditional OTP",
2007
+ "userSetupAllowed": false,
2008
+ "autheticatorFlow": true
2009
+ }
2010
+ ]
2011
+ },
2012
+ {
2013
+ "id": "f68718a9-bf74-42ae-8775-29d8ed8d57de",
2014
+ "alias": "docker auth",
2015
+ "description": "Used by Docker clients to authenticate against the IDP",
2016
+ "providerId": "basic-flow",
2017
+ "topLevel": true,
2018
+ "builtIn": true,
2019
+ "authenticationExecutions": [
2020
+ {
2021
+ "authenticator": "docker-http-basic-authenticator",
2022
+ "requirement": "REQUIRED",
2023
+ "priority": 10,
2024
+ "userSetupAllowed": false,
2025
+ "autheticatorFlow": false
2026
+ }
2027
+ ]
2028
+ },
2029
+ {
2030
+ "id": "d0bfafbf-ae6f-469c-a581-4a8cc186418c",
2031
+ "alias": "first broker login",
2032
+ "description": "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account",
2033
+ "providerId": "basic-flow",
2034
+ "topLevel": true,
2035
+ "builtIn": true,
2036
+ "authenticationExecutions": [
2037
+ {
2038
+ "authenticatorConfig": "review profile config",
2039
+ "authenticator": "idp-review-profile",
2040
+ "requirement": "REQUIRED",
2041
+ "priority": 10,
2042
+ "userSetupAllowed": false,
2043
+ "autheticatorFlow": false
2044
+ },
2045
+ {
2046
+ "requirement": "REQUIRED",
2047
+ "priority": 20,
2048
+ "flowAlias": "User creation or linking",
2049
+ "userSetupAllowed": false,
2050
+ "autheticatorFlow": true
2051
+ }
2052
+ ]
2053
+ },
2054
+ {
2055
+ "id": "75c9ad2a-697e-4588-917e-8dbf51f494f0",
2056
+ "alias": "forms",
2057
+ "description": "Username, password, otp and other auth forms.",
2058
+ "providerId": "basic-flow",
2059
+ "topLevel": false,
2060
+ "builtIn": true,
2061
+ "authenticationExecutions": [
2062
+ {
2063
+ "authenticator": "auth-username-password-form",
2064
+ "requirement": "REQUIRED",
2065
+ "priority": 10,
2066
+ "userSetupAllowed": false,
2067
+ "autheticatorFlow": false
2068
+ },
2069
+ {
2070
+ "requirement": "CONDITIONAL",
2071
+ "priority": 20,
2072
+ "flowAlias": "Browser - Conditional OTP",
2073
+ "userSetupAllowed": false,
2074
+ "autheticatorFlow": true
2075
+ }
2076
+ ]
2077
+ },
2078
+ {
2079
+ "id": "0292e685-f784-4496-9b96-55fb1406bbe9",
2080
+ "alias": "http challenge",
2081
+ "description": "An authentication flow based on challenge-response HTTP Authentication Schemes",
2082
+ "providerId": "basic-flow",
2083
+ "topLevel": true,
2084
+ "builtIn": true,
2085
+ "authenticationExecutions": [
2086
+ {
2087
+ "authenticator": "no-cookie-redirect",
2088
+ "requirement": "REQUIRED",
2089
+ "priority": 10,
2090
+ "userSetupAllowed": false,
2091
+ "autheticatorFlow": false
2092
+ },
2093
+ {
2094
+ "requirement": "REQUIRED",
2095
+ "priority": 20,
2096
+ "flowAlias": "Authentication Options",
2097
+ "userSetupAllowed": false,
2098
+ "autheticatorFlow": true
2099
+ }
2100
+ ]
2101
+ },
2102
+ {
2103
+ "id": "c22f8a6c-c714-406e-89c2-14a5068daa13",
2104
+ "alias": "registration",
2105
+ "description": "registration flow",
2106
+ "providerId": "basic-flow",
2107
+ "topLevel": true,
2108
+ "builtIn": true,
2109
+ "authenticationExecutions": [
2110
+ {
2111
+ "authenticator": "registration-page-form",
2112
+ "requirement": "REQUIRED",
2113
+ "priority": 10,
2114
+ "flowAlias": "registration form",
2115
+ "userSetupAllowed": false,
2116
+ "autheticatorFlow": true
2117
+ }
2118
+ ]
2119
+ },
2120
+ {
2121
+ "id": "6e801b63-32d8-4231-8f6b-271a097d0bcd",
2122
+ "alias": "registration form",
2123
+ "description": "registration form",
2124
+ "providerId": "form-flow",
2125
+ "topLevel": false,
2126
+ "builtIn": true,
2127
+ "authenticationExecutions": [
2128
+ {
2129
+ "authenticator": "registration-user-creation",
2130
+ "requirement": "REQUIRED",
2131
+ "priority": 20,
2132
+ "userSetupAllowed": false,
2133
+ "autheticatorFlow": false
2134
+ },
2135
+ {
2136
+ "authenticator": "registration-profile-action",
2137
+ "requirement": "REQUIRED",
2138
+ "priority": 40,
2139
+ "userSetupAllowed": false,
2140
+ "autheticatorFlow": false
2141
+ },
2142
+ {
2143
+ "authenticator": "registration-password-action",
2144
+ "requirement": "REQUIRED",
2145
+ "priority": 50,
2146
+ "userSetupAllowed": false,
2147
+ "autheticatorFlow": false
2148
+ },
2149
+ {
2150
+ "authenticator": "registration-recaptcha-action",
2151
+ "requirement": "DISABLED",
2152
+ "priority": 60,
2153
+ "userSetupAllowed": false,
2154
+ "autheticatorFlow": false
2155
+ }
2156
+ ]
2157
+ },
2158
+ {
2159
+ "id": "c200660d-d834-43de-9ba9-94f5c2f587a3",
2160
+ "alias": "reset credentials",
2161
+ "description": "Reset credentials for a user if they forgot their password or something",
2162
+ "providerId": "basic-flow",
2163
+ "topLevel": true,
2164
+ "builtIn": true,
2165
+ "authenticationExecutions": [
2166
+ {
2167
+ "authenticator": "reset-credentials-choose-user",
2168
+ "requirement": "REQUIRED",
2169
+ "priority": 10,
2170
+ "userSetupAllowed": false,
2171
+ "autheticatorFlow": false
2172
+ },
2173
+ {
2174
+ "authenticator": "reset-credential-email",
2175
+ "requirement": "REQUIRED",
2176
+ "priority": 20,
2177
+ "userSetupAllowed": false,
2178
+ "autheticatorFlow": false
2179
+ },
2180
+ {
2181
+ "authenticator": "reset-password",
2182
+ "requirement": "REQUIRED",
2183
+ "priority": 30,
2184
+ "userSetupAllowed": false,
2185
+ "autheticatorFlow": false
2186
+ },
2187
+ {
2188
+ "requirement": "CONDITIONAL",
2189
+ "priority": 40,
2190
+ "flowAlias": "Reset - Conditional OTP",
2191
+ "userSetupAllowed": false,
2192
+ "autheticatorFlow": true
2193
+ }
2194
+ ]
2195
+ },
2196
+ {
2197
+ "id": "32600ebb-0a56-4234-9260-af15e77568cc",
2198
+ "alias": "saml ecp",
2199
+ "description": "SAML ECP Profile Authentication Flow",
2200
+ "providerId": "basic-flow",
2201
+ "topLevel": true,
2202
+ "builtIn": true,
2203
+ "authenticationExecutions": [
2204
+ {
2205
+ "authenticator": "http-basic-authenticator",
2206
+ "requirement": "REQUIRED",
2207
+ "priority": 10,
2208
+ "userSetupAllowed": false,
2209
+ "autheticatorFlow": false
2210
+ }
2211
+ ]
2212
+ }
2213
+ ],
2214
+ "authenticatorConfig": [
2215
+ {
2216
+ "id": "4ff8ec9f-1022-4a10-bfe2-bdef2be56e65",
2217
+ "alias": "create unique user config",
2218
+ "config": {
2219
+ "require.password.update.after.registration": "false"
2220
+ }
2221
+ },
2222
+ {
2223
+ "id": "b28ed6db-efa1-4491-96f2-4f773eb32ce3",
2224
+ "alias": "review profile config",
2225
+ "config": {
2226
+ "update.profile.on.first.login": "missing"
2227
+ }
2228
+ }
2229
+ ],
2230
+ "requiredActions": [
2231
+ {
2232
+ "alias": "CONFIGURE_TOTP",
2233
+ "name": "Configure OTP",
2234
+ "providerId": "CONFIGURE_TOTP",
2235
+ "enabled": true,
2236
+ "defaultAction": false,
2237
+ "priority": 10,
2238
+ "config": {}
2239
+ },
2240
+ {
2241
+ "alias": "terms_and_conditions",
2242
+ "name": "Terms and Conditions",
2243
+ "providerId": "terms_and_conditions",
2244
+ "enabled": false,
2245
+ "defaultAction": false,
2246
+ "priority": 20,
2247
+ "config": {}
2248
+ },
2249
+ {
2250
+ "alias": "UPDATE_PASSWORD",
2251
+ "name": "Update Password",
2252
+ "providerId": "UPDATE_PASSWORD",
2253
+ "enabled": true,
2254
+ "defaultAction": false,
2255
+ "priority": 30,
2256
+ "config": {}
2257
+ },
2258
+ {
2259
+ "alias": "UPDATE_PROFILE",
2260
+ "name": "Update Profile",
2261
+ "providerId": "UPDATE_PROFILE",
2262
+ "enabled": true,
2263
+ "defaultAction": false,
2264
+ "priority": 40,
2265
+ "config": {}
2266
+ },
2267
+ {
2268
+ "alias": "VERIFY_EMAIL",
2269
+ "name": "Verify Email",
2270
+ "providerId": "VERIFY_EMAIL",
2271
+ "enabled": true,
2272
+ "defaultAction": false,
2273
+ "priority": 50,
2274
+ "config": {}
2275
+ },
2276
+ {
2277
+ "alias": "update_user_locale",
2278
+ "name": "Update User Locale",
2279
+ "providerId": "update_user_locale",
2280
+ "enabled": true,
2281
+ "defaultAction": false,
2282
+ "priority": 1000,
2283
+ "config": {}
2284
+ }
2285
+ ],
2286
+ "browserFlow": "browser",
2287
+ "registrationFlow": "registration",
2288
+ "directGrantFlow": "direct grant",
2289
+ "resetCredentialsFlow": "reset credentials",
2290
+ "clientAuthenticationFlow": "clients",
2291
+ "dockerAuthenticationFlow": "docker auth",
2292
+ "attributes": {
2293
+ "clientSessionIdleTimeout": "0",
2294
+ "clientSessionMaxLifespan": "0"
2295
+ },
2296
+ "keycloakVersion": "10.0.2",
2297
+ "userManagedAccessAllowed": false
2298
+ }