From 9cbffbfb2560de85fcc14bca4c4d3872e108e4ba Mon Sep 17 00:00:00 2001 From: Selim Bensenouci Date: Wed, 11 Oct 2017 10:44:42 +0200 Subject: [PATCH] Adding keycloak import for initial configuration to docker-compose and update documentation --- api-gateway/src/config/docker.json | 5 +- api-gateway/src/config/local.json | 5 +- .../config-keycloak/keycloak-import.json | 3045 +++++++++++++++++ docker/docker-compose.yml | 8 + docs/en/tutorial.md | 35 +- docs/zh-cn/tutorial.zh-cn.md | 15 +- 6 files changed, 3067 insertions(+), 46 deletions(-) create mode 100644 docker/config-server/config-keycloak/keycloak-import.json diff --git a/api-gateway/src/config/docker.json b/api-gateway/src/config/docker.json index 2e4b785..d2c5bf0 100644 --- a/api-gateway/src/config/docker.json +++ b/api-gateway/src/config/docker.json @@ -8,12 +8,11 @@ "max-failures": 5 }, "realm": "Vert.x", - "realm-public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArFhuwIVRXG3RqtpS6JH7tCTt1iQv+Muqx+o+7/7KeLE0LTbXhOGcRcWoIkgQXKLE0wTYecJr6rLB3j/eWOFIKeYdrjBbVCInE0oJ2monrV0kPb2giCWrRcpDa6vwsUAOAWZ4HN5HHXu3RD/AFgictbkKQXl3AA1g7CU47gAiE5nxNh/vIVR+o5TBjyady0Sc5eXBZSGkSo1Aw1T7yDbGcuNhztBZ8bURDSBCP5GMXF9bhnln4rcT7PPiuNVbMbGIDs/qaPWAInUNGZUq9SmC/4kLV5YCEIavj3w+gA66nf+iJEKM7FEGCdULlomQHRUhYjmXNrSLMiR1JyNZPWBi9QIDAQAB", "auth-server-url": "http://keycloak-server:8080/auth", - "ssl-required": "external", + "ssl-required": "none", "resource": "vertx-blueprint", "credentials": { - "secret": "0c5a42df-48ce-40e3-986c-06bd4e91fadb" + "secret": "d822ebca-69ae-4fc0-9848-c347b2d4f69a" }, "use-resource-role-mappings": true } \ No newline at end of file diff --git a/api-gateway/src/config/local.json b/api-gateway/src/config/local.json index 8ef222a..292bf70 100644 --- a/api-gateway/src/config/local.json +++ b/api-gateway/src/config/local.json @@ -7,12 +7,11 @@ "max-failures": 5 }, "realm": "Vert.x", - "realm-public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkto9ZZm69cmdA9e7X4NUSo8T4CyvrYzlRiJdhr+LMqELdfN3ghEY0EBpaROiOueva//iUc/KViYGiAHVXEQ3nr3kytF6uZs9iwqkshKvltpxkOm2Qpj/FSRsCyHlB8Ahbt5xBmzH2mI1VDIxmVTdEBze4u6tLoi4ieo72b2q/dz09yrEokRm/sSYqzNgfE0i1JY6DI8C7FaKszKTK5DRGMIAib8wURrTyf8au0iiisKEXOHKEjo/g0uHCFGSOKqPOprNNIWYwedV+qaQa9oSah2IpwNgFNRLtHpvbcanftMLQOQIR0iufIJ+bHrNhH0RISZhTzcGX3pSIBw/HaERwQIDAQAB", "auth-server-url": "http://127.0.0.1:8180/auth", - "ssl-required": "external", + "ssl-required": "none", "resource": "vertx-blueprint", "credentials": { - "secret": "ea99a8e6-f503-4bdb-afbd-9ae322ee7089" + "secret": "d822ebca-69ae-4fc0-9848-c347b2d4f69a" }, "use-resource-role-mappings": true } \ No newline at end of file diff --git a/docker/config-server/config-keycloak/keycloak-import.json b/docker/config-server/config-keycloak/keycloak-import.json new file mode 100644 index 0000000..080f05a --- /dev/null +++ b/docker/config-server/config-keycloak/keycloak-import.json @@ -0,0 +1,3045 @@ +[ { + "id" : "Vert.x", + "realm" : "Vert.x", + "notBefore" : 0, + "revokeRefreshToken" : false, + "accessTokenLifespan" : 300, + "accessTokenLifespanForImplicitFlow" : 900, + "ssoSessionIdleTimeout" : 1800, + "ssoSessionMaxLifespan" : 36000, + "offlineSessionIdleTimeout" : 2592000, + "accessCodeLifespan" : 60, + "accessCodeLifespanUserAction" : 300, + "accessCodeLifespanLogin" : 1800, + "actionTokenGeneratedByAdminLifespan" : 43200, + "actionTokenGeneratedByUserLifespan" : 300, + "enabled" : true, + "sslRequired" : "none", + "registrationAllowed" : false, + "registrationEmailAsUsername" : false, + "rememberMe" : false, + "verifyEmail" : false, + "loginWithEmailAllowed" : true, + "duplicateEmailsAllowed" : false, + "resetPasswordAllowed" : false, + "editUsernameAllowed" : false, + "bruteForceProtected" : false, + "permanentLockout" : false, + "maxFailureWaitSeconds" : 900, + "minimumQuickLoginWaitSeconds" : 60, + "waitIncrementSeconds" : 60, + "quickLoginCheckMilliSeconds" : 1000, + "maxDeltaTimeSeconds" : 43200, + "failureFactor" : 30, + "roles" : { + "realm" : [ { + "id" : "13617e0e-0972-4659-b7f6-275f4ad569da", + "name" : "offline_access", + "description" : "${role_offline-access}", + "scopeParamRequired" : true, + "composite" : false, + "clientRole" : false, + "containerId" : "Vert.x" + }, { + "id" : "186e7f1a-8fd8-42a7-85ce-f3ef05430df0", + "name" : "uma_authorization", + "description" : "${role_uma_authorization}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : false, + "containerId" : "Vert.x" + } ], + "client" : { + "realm-management" : [ { + "id" : "5626ddf0-6a8c-4073-a7e0-4a461811bd24", + "name" : "view-realm", + "description" : "${role_view-realm}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "c73d8be4-3c8e-43ee-bd00-1d937fd3b807", + "name" : "manage-users", + "description" : "${role_manage-users}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "13f93dc2-93b4-4762-8f88-a7174b0040bb", + "name" : "manage-clients", + "description" : "${role_manage-clients}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "fde6320d-24d0-454b-8707-a34c0bcf6d8b", + "name" : "view-authorization", + "description" : "${role_view-authorization}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "914ca7ba-d7a8-4318-a2ff-69fa7cedca62", + "name" : "query-groups", + "description" : "${role_query-groups}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "33969e84-a81b-46a6-aa46-2c26c10a5cc3", + "name" : "impersonation", + "description" : "${role_impersonation}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "44141002-0eb4-45c5-bae3-b040691ddd2b", + "name" : "manage-realm", + "description" : "${role_manage-realm}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "6f117368-cd6d-4213-9b26-3f55f103e241", + "name" : "view-identity-providers", + "description" : "${role_view-identity-providers}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "f6bdfe16-077d-48d0-b473-1bfa15b5f52a", + "name" : "manage-authorization", + "description" : "${role_manage-authorization}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "39e0516d-feb1-4364-b646-8c6efe7c3a06", + "name" : "view-events", + "description" : "${role_view-events}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "7819cb9f-1c27-4da4-a8bc-db941c41df9d", + "name" : "create-client", + "description" : "${role_create-client}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "6ab5820d-af87-45d6-9029-c1b9d03b4240", + "name" : "view-clients", + "description" : "${role_view-clients}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "client" : { + "realm-management" : [ "query-clients" ] + } + }, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "9a32d344-33ca-407b-90a3-3914d03556f7", + "name" : "view-users", + "description" : "${role_view-users}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "client" : { + "realm-management" : [ "query-groups", "query-users" ] + } + }, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "f1f7879b-0af6-437d-b844-5e845e823875", + "name" : "manage-events", + "description" : "${role_manage-events}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "5b90e5db-5d42-49c0-887c-57e051c7fbb9", + "name" : "manage-identity-providers", + "description" : "${role_manage-identity-providers}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "d32b3012-2e43-479d-8b15-dcd4c2d6a2dc", + "name" : "query-realms", + "description" : "${role_query-realms}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "5d52be54-074d-4f7a-9851-6fa4384156f3", + "name" : "realm-admin", + "description" : "${role_realm-admin}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "client" : { + "realm-management" : [ "view-realm", "manage-users", "manage-clients", "view-authorization", "query-groups", "impersonation", "manage-realm", "view-identity-providers", "manage-authorization", "view-events", "create-client", "view-clients", "view-users", "manage-events", "manage-identity-providers", "query-realms", "query-users", "query-clients" ] + } + }, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "c7efa5eb-8023-4ae6-b979-8b2ff7b70aa0", + "name" : "query-users", + "description" : "${role_query-users}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + }, { + "id" : "f0ccb0fd-2ca5-4abd-bbe2-76d4f1df9ee4", + "name" : "query-clients", + "description" : "${role_query-clients}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "91d09816-578c-4123-b0b3-61e51dbe6373" + } ], + "security-admin-console" : [ ], + "vertx-blueprint" : [ ], + "admin-cli" : [ ], + "broker" : [ { + "id" : "04022173-00c7-4e0f-b256-04f7fade47c9", + "name" : "read-token", + "description" : "${role_read-token}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "19721217-c797-4fb6-9c0a-c90b08748278" + } ], + "account" : [ { + "id" : "f8a8fed7-9aa6-4ce2-8b38-778c6f408a1a", + "name" : "manage-account-links", + "description" : "${role_manage-account-links}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "708dbcaa-18d5-46ff-9c1d-7948b4cc4daa" + }, { + "id" : "12c94e8c-658a-417f-9452-611c7d1b80c5", + "name" : "manage-account", + "description" : "${role_manage-account}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "client" : { + "account" : [ "manage-account-links" ] + } + }, + "clientRole" : true, + "containerId" : "708dbcaa-18d5-46ff-9c1d-7948b4cc4daa" + }, { + "id" : "ecf34ccc-6920-4684-a7d3-6506452edb33", + "name" : "view-profile", + "description" : "${role_view-profile}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "708dbcaa-18d5-46ff-9c1d-7948b4cc4daa" + } ] + } + }, + "groups" : [ ], + "defaultRoles" : [ "offline_access", "uma_authorization" ], + "requiredCredentials" : [ "password" ], + "otpPolicyType" : "totp", + "otpPolicyAlgorithm" : "HmacSHA1", + "otpPolicyInitialCounter" : 0, + "otpPolicyDigits" : 6, + "otpPolicyLookAheadWindow" : 1, + "otpPolicyPeriod" : 30, + "users" : [ { + "id" : "49df26a9-56da-4881-9083-d8cdb06ab62e", + "createdTimestamp" : 1507706488572, + "username" : "john", + "enabled" : true, + "totp" : false, + "emailVerified" : false, + "firstName" : "john", + "lastName" : "Doe", + "email" : "john@doe.test", + "credentials" : [ { + "type" : "password", + "hashedSaltedValue" : "j3NjhNiK/dQ+9bLrMdWaCIoY09zhKUxNlOQyvQ37IchjtvgDX+bUFQJpNK++Z0v7GmCP8zzVg+IpENtzGTJuIg==", + "salt" : "kEvw8pITgu8mPvIMajDUNQ==", + "hashIterations" : 27500, + "counter" : 0, + "algorithm" : "pbkdf2-sha256", + "digits" : 0, + "period" : 0, + "createdDate" : 1507706493788, + "config" : { } + } ], + "disableableCredentialTypes" : [ "password" ], + "requiredActions" : [ ], + "realmRoles" : [ "offline_access", "uma_authorization" ], + "clientRoles" : { + "account" : [ "manage-account", "view-profile" ] + }, + "notBefore" : 0, + "groups" : [ ] + } ], + "clients" : [ { + "id" : "708dbcaa-18d5-46ff-9c1d-7948b4cc4daa", + "clientId" : "account", + "name" : "${client_account}", + "baseUrl" : "/auth/realms/Vert.x/account", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "9362f489-2295-43c4-a070-80e30998f78f", + "defaultRoles" : [ "view-profile", "manage-account" ], + "redirectUris" : [ "/auth/realms/Vert.x/account/*" ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : false, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : false, + "serviceAccountsEnabled" : false, + "publicClient" : false, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { }, + "fullScopeAllowed" : false, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "7d01daa7-4421-46b4-8b2b-217d87e273ae", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "b74ee8ea-27cc-4193-8982-598d1f417df7", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + }, { + "id" : "74e5592d-d06b-4f47-9e0c-1941e2a07126", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + }, { + "id" : "850e6775-a452-4ab7-a766-6327b18891c3", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "5884e429-810d-462d-8f59-256c880fdc03", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "dfccca32-d51a-42e5-bdf7-fa9ebae1c044", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "4097af2e-afce-4951-8613-a0e63a5b768f", + "clientId" : "admin-cli", + "name" : "${client_admin-cli}", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "b4b04eb9-9fc6-48da-9452-b28ad4a87982", + "redirectUris" : [ ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : false, + "consentRequired" : false, + "standardFlowEnabled" : false, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : true, + "serviceAccountsEnabled" : false, + "publicClient" : true, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { }, + "fullScopeAllowed" : false, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "79f538cf-a6de-4c9b-9ea1-a3f0f10d72e9", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + }, { + "id" : "62a9e367-87b3-41d9-a820-7a52073b7020", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "2aa450e4-3c50-43a0-a7b5-5b06f209cc7f", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "be938fb7-3fe6-4e5c-978b-088f41e7ba91", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + }, { + "id" : "ab5613ce-12a3-406d-9a31-3c89a4ae8c02", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + }, { + "id" : "cc432cc1-1c33-4d78-9c02-04032fb9e92a", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "19721217-c797-4fb6-9c0a-c90b08748278", + "clientId" : "broker", + "name" : "${client_broker}", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "f3f38b7c-6462-4f33-840c-e4f95d6c0c5d", + "redirectUris" : [ ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : false, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : false, + "serviceAccountsEnabled" : false, + "publicClient" : false, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { }, + "fullScopeAllowed" : false, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "04f16af8-557e-411e-b161-f6ee561a3b30", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + }, { + "id" : "c7492515-8bb5-45ef-9eb5-138aa3c68499", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "21389dcb-3f19-4542-a344-411b82fe0023", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + }, { + "id" : "903ade0d-7e08-497f-9f17-0aa1039f8421", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "b3f6e7a6-aaf5-40ae-b83a-208ece367124", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "c2d46dc2-e7ad-40aa-963e-073743d549b2", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "91d09816-578c-4123-b0b3-61e51dbe6373", + "clientId" : "realm-management", + "name" : "${client_realm-management}", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "8cda1eea-e9a7-4fd0-a365-e3639ccd2d20", + "redirectUris" : [ ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : true, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : false, + "serviceAccountsEnabled" : false, + "publicClient" : false, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { }, + "fullScopeAllowed" : false, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "1ba3a2f5-febd-4bbb-9ef2-4f024fccf1ff", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "4a0a9ef2-bc7a-4f24-938e-778766a1f2da", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + }, { + "id" : "71c5d4bb-e411-4f3a-a05e-7ef7780ede13", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "c879c23f-48fb-47b4-a428-f5b90c0939ee", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + }, { + "id" : "0d21c742-85a9-4b8c-a974-c847e19025c3", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "9999a28e-9902-403c-bf30-742c1ae3f364", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "cdb6ada0-e6ed-47de-8d61-c1384258c0c1", + "clientId" : "security-admin-console", + "name" : "${client_security-admin-console}", + "baseUrl" : "/auth/admin/Vert.x/console/index.html", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "f5121f12-f46f-4816-b333-6ee27de6f0a3", + "redirectUris" : [ "/auth/admin/Vert.x/console/*" ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : false, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : false, + "serviceAccountsEnabled" : false, + "publicClient" : true, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { }, + "fullScopeAllowed" : false, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "45aeb945-73c3-4e91-9b59-1982a70d57e1", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + }, { + "id" : "0aab79ac-b97f-40d4-8fe5-14e5b41fd696", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + }, { + "id" : "da11696f-9fae-4338-b113-4c35d0e67ff1", + "name" : "locale", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-attribute-mapper", + "consentRequired" : false, + "consentText" : "${locale}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "locale", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "locale", + "jsonType.label" : "String" + } + }, { + "id" : "28783dc8-04f1-477e-b9c4-545a1c2b438b", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "840bc128-25cc-403e-99e1-cbd82cca3ffc", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "73e5fba6-eeac-478b-9710-9c3630d786c1", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "96b38e9a-5495-4780-8d34-f1f7d9640b9b", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "1dcc7e85-1ed9-468b-9ab1-342de7c4bb12", + "clientId" : "vertx-blueprint", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "d822ebca-69ae-4fc0-9848-c347b2d4f69a", + "redirectUris" : [ "*" ], + "webOrigins" : [ "*" ], + "notBefore" : 0, + "bearerOnly" : false, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : true, + "serviceAccountsEnabled" : false, + "publicClient" : false, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { + "saml.assertion.signature" : "false", + "saml.force.post.binding" : "false", + "saml.multivalued.roles" : "false", + "saml.encrypt" : "false", + "saml_force_name_id_format" : "false", + "saml.client.signature" : "false", + "saml.authnstatement" : "false", + "saml.server.signature" : "false", + "saml.server.signature.keyinfo.ext" : "false", + "saml.onetimeuse.condition" : "false" + }, + "fullScopeAllowed" : true, + "nodeReRegistrationTimeout" : -1, + "protocolMappers" : [ { + "id" : "1337a30e-0da0-46d8-99e5-50757e364384", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + }, { + "id" : "17992c84-7e4f-412b-9f37-c296f4ba05e0", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "421dabe3-67f1-4e84-b856-3602d103c84c", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "d34d748a-fcd4-42cc-acb1-6e139f0b6712", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + }, { + "id" : "7e534f28-8a57-42f6-a619-953ee8ef3d93", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "56d737d4-f39a-4c97-a125-61bfa04dc5a6", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + } ], + "clientTemplates" : [ ], + "browserSecurityHeaders" : { + "xContentTypeOptions" : "nosniff", + "xRobotsTag" : "none", + "xFrameOptions" : "SAMEORIGIN", + "xXSSProtection" : "1; mode=block", + "contentSecurityPolicy" : "frame-src 'self'; frame-ancestors 'self'; object-src 'none';" + }, + "smtpServer" : { }, + "eventsEnabled" : false, + "eventsListeners" : [ "jboss-logging" ], + "enabledEventTypes" : [ ], + "adminEventsEnabled" : false, + "adminEventsDetailsEnabled" : false, + "components" : { + "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy" : [ { + "id" : "f2d3cc0b-6107-4f0f-9376-045601888f85", + "name" : "Full Scope Disabled", + "providerId" : "scope", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { } + }, { + "id" : "14e6900f-12f7-4061-98a6-ab3f66837010", + "name" : "Max Clients Limit", + "providerId" : "max-clients", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { + "max-clients" : [ "200" ] + } + }, { + "id" : "6ab89f6b-358d-4e1f-9696-02ca89b33d9c", + "name" : "Trusted Hosts", + "providerId" : "trusted-hosts", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { + "host-sending-registration-request-must-match" : [ "true" ], + "client-uris-must-match" : [ "true" ] + } + }, { + "id" : "6983a4e9-94cb-42b9-bcef-77f64d1aef0d", + "name" : "Consent Required", + "providerId" : "consent-required", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { } + }, { + "id" : "12efcc68-72fe-41f8-ab49-32b99144f3b1", + "name" : "Allowed Client Templates", + "providerId" : "allowed-client-templates", + "subType" : "authenticated", + "subComponents" : { }, + "config" : { } + }, { + "id" : "ef6e7ee3-7624-45fd-8d85-09b86979f8e7", + "name" : "Allowed Protocol Mapper Types", + "providerId" : "allowed-protocol-mappers", + "subType" : "authenticated", + "subComponents" : { }, + "config" : { + "allowed-protocol-mapper-types" : [ "saml-user-attribute-mapper", "oidc-usermodel-attribute-mapper", "oidc-usermodel-property-mapper", "saml-role-list-mapper", "saml-user-property-mapper", "oidc-sha256-pairwise-sub-mapper", "oidc-address-mapper", "oidc-full-name-mapper" ], + "consent-required-for-all-mappers" : [ "true" ] + } + }, { + "id" : "365d9e8e-0e85-4855-83e4-a57c281216ea", + "name" : "Allowed Client Templates", + "providerId" : "allowed-client-templates", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { } + }, { + "id" : "8d866db1-d441-4e99-bda5-106f80927038", + "name" : "Allowed Protocol Mapper Types", + "providerId" : "allowed-protocol-mappers", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { + "allowed-protocol-mapper-types" : [ "saml-user-attribute-mapper", "oidc-usermodel-attribute-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-role-list-mapper", "saml-user-property-mapper", "oidc-usermodel-property-mapper", "oidc-full-name-mapper", "oidc-address-mapper" ], + "consent-required-for-all-mappers" : [ "true" ] + } + } ], + "org.keycloak.keys.KeyProvider" : [ { + "id" : "620b8b0d-fff5-43b1-b05b-b6cc2d2471a1", + "name" : "rsa-generated", + "providerId" : "rsa-generated", + "subComponents" : { }, + "config" : { + "privateKey" : [ "MIIEowIBAAKCAQEAm3Edh2Wzk0V6Tbg2W61siur5Jmb/bLfQO0MSOhu14OfTnk+EGTRYf9spOxpi8sqI3fpdKsQYWS05JT/vzXSa2mx6nGMtfagJFMdjTytxjoHrk5XSZihptQsrWbqv8m8gLh7V0fp0Dq2GW6D5LmxAG+v4MbvAxQhpR6aFGaqTBUjgXmGniWKLpfc3a+5N4/XaG+hV4r5WLjOOwHGwwyv50++H5GwCGCdzYecwg2on3x7sWVPK3saym+HEmS1ebVkG8g2+YeToqkqTbVv74FRRkOovLXR8gr5I9K89vanQ3e+z6sRiRhwKQZjfdKCJobCq8jmslGabLBkxhw5qGtypPwIDAQABAoIBAQCVZgG4meIfwR5MxqnQMX3qgu7WnxYOWxkTbGJ/YRTNRmPZe5l+VBZfRLh7KuBBdLJZj4GuUe0JAPM0vx/ve4w+NRcfah9V74RS6VSkyh+JlYtjPROMxnja3hJbWpgzTeVDDrX57FtRpCxHsw7sNHTloUXaHxenCG+PwxeYVJ6b6yf3JW7Kq0W1nZG02vr8j80HDfXYBzQkDug7hjGw2jj/SOcEsnVqpZT56AYFrIOLC9TfVcFqGBBG0Ana1w/Pe1dy3GyUMbeNQr8absk3kn1hJeo82X/1AjNsM8jASub1Iuit650DVEVl+qYLmyDUkVyBqlNR9J4UXNQsc/LxLfnRAoGBAPeGQkGzFfufQGsDWDYuUNnr4tSDpUo5MoEYTOX/5VjovNx06YjPlRG1VF4ZhFXP0bSfyXNaCjOw+AZQnWv6G/1IJs882nlNaw7UO6zQQILwGr3yze05U1JxNrxaO6bH8oA4HEhpxaF18jmUFQrEUCvaN2zz0/RDmeeqb1ru3VmXAoGBAKDDrqH5hOlFwb8B1As7+8f/G+AI78MJPEq+e59yQ7cVNLd/8HVvK2Z3x5A4oy7Z8f0mm9wOigylHPlSDn3RSqQS9lPbbswlAFbHEYIpGhMHuAGtBLEEgSwLq159ITMYmEKW/Y0W1BA6N6aDoOAkhR9sIFHTWetuQz3oaDHrlpKZAoGAXnDGZOTcdVXssSfkhz+ir5L1x9m2vhwWrfTEmljJe+PI82BUHlP9b3U9DG419LvHKmBw72ciT1itOVOWzLTv6vKVhCqWvQOR3mWRoz0N8CeGPIUglutxZBo4JSNUcS0G1G8UM3jP4+vpkJh0ctg2MpUe4p4hd6g3V5HKzOooYF8CgYAlhYZ8x3/98goGSqby+E0LoL8gyvUq0D0CNPMlg8XKNWjYa0P0JL48bDhnsNBlXvjb3OcDtWEDEoZwqnY3Z2HEaaiUaeKyQvCRUGUFvBIZ3vNTcM5ngmWjohWdOBdHlbXz1MnY5DsajnvuoUorBlsLunDQqEOUb2fCSzwGarX6AQKBgHIK3ULvo7inFlFS9Btsv6intg4tNb18j56WNHJpBGZnvllDoJH8zYWAw9NKjfYn6gfHFS3V7rZEba16g23l+str6fplsr8s75eSDB0rIWr9cBxp5Zcomsof5Ce0jJ7l2PJC0vR7aj0uz79hwZVFFAUTQh0HNvYA//kCgAaqtfq1" ], + "certificate" : [ "MIICmzCCAYMCBgFfBhNSlDANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZWZXJ0LngwHhcNMTcxMDEwMTEzNTUwWhcNMjcxMDEwMTEzNzMwWjARMQ8wDQYDVQQDDAZWZXJ0LngwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCbcR2HZbOTRXpNuDZbrWyK6vkmZv9st9A7QxI6G7Xg59OeT4QZNFh/2yk7GmLyyojd+l0qxBhZLTklP+/NdJrabHqcYy19qAkUx2NPK3GOgeuTldJmKGm1CytZuq/ybyAuHtXR+nQOrYZboPkubEAb6/gxu8DFCGlHpoUZqpMFSOBeYaeJYoul9zdr7k3j9dob6FXivlYuM47AcbDDK/nT74fkbAIYJ3Nh5zCDaiffHuxZU8rexrKb4cSZLV5tWQbyDb5h5OiqSpNtW/vgVFGQ6i8tdHyCvkj0rz29qdDd77PqxGJGHApBmN90oImhsKryOayUZpssGTGHDmoa3Kk/AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAGkHT4Yug9CXfqBItwpezaSiqVrI6ewj7qCQ0HuDWTEMUcXXCFtrkeIp0kqeZBKMYwqifr6npxtVu2rJW5FRlwEMD9qAJ1MsfRSVckdcFgFS23W4X0+9poHMjnA/69jEFQrQ0Sjb0qMp917f0SbLI889NclZdUDAdtdoxZdRvOf0MRpE+pSy6veveyxC1Iu1DvMSNQHTCtArTtZLBiLL2Wmd33uL7iM4UAfpQ2PpCH68Sb98mn7qVb7i69Yo0W2BPhqUi0VQicilx/UCZciBVs0SM8SPHLw2U1JPDRaGRwI8aeVj04NmDN4FSxKubVcoEGPU7zyqS6+FVlxYfOMD4oA=" ], + "priority" : [ "100" ] + } + }, { + "id" : "9188a54f-4eff-4cdb-b23d-f233982473cb", + "name" : "hmac-generated", + "providerId" : "hmac-generated", + "subComponents" : { }, + "config" : { + "kid" : [ "49de54e6-eb60-4c45-925c-f622102224d2" ], + "secret" : [ "9C8IJLTA1lC8ZQ_6BgChpRD4RZwq2fxEDjCB7N43aQ8" ], + "priority" : [ "100" ] + } + } ] + }, + "internationalizationEnabled" : false, + "supportedLocales" : [ ], + "authenticationFlows" : [ { + "id" : "48017ec3-6d2f-4e5b-a8ab-1e9aabaf693a", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "idp-email-verification", + "requirement" : "ALTERNATIVE", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "requirement" : "ALTERNATIVE", + "priority" : 30, + "flowAlias" : "Verify Existing Account by Re-authentication", + "userSetupAllowed" : false, + "autheticatorFlow" : true + } ] + }, { + "id" : "4779b678-9061-4796-80e9-80997475ab20", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "auth-otp-form", + "requirement" : "OPTIONAL", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "8f198847-8501-4744-9648-8a0309371bc8", + "alias" : "browser", + "description" : "browser based authentication", + "providerId" : "basic-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "auth-cookie", + "requirement" : "ALTERNATIVE", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "auth-spnego", + "requirement" : "DISABLED", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "identity-provider-redirector", + "requirement" : "ALTERNATIVE", + "priority" : 25, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "requirement" : "ALTERNATIVE", + "priority" : 30, + "flowAlias" : "forms", + "userSetupAllowed" : false, + "autheticatorFlow" : true + } ] + }, { + "id" : "4022a2ea-9ed6-4694-a8d6-4df3388d5f61", + "alias" : "clients", + "description" : "Base authentication for clients", + "providerId" : "client-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "client-secret", + "requirement" : "ALTERNATIVE", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "client-jwt", + "requirement" : "ALTERNATIVE", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "cc0283b9-33bd-4e35-88ed-66cc8b9ac5c5", + "alias" : "direct grant", + "description" : "OpenID Connect Resource Owner Grant", + "providerId" : "basic-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "direct-grant-validate-username", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "direct-grant-validate-password", + "requirement" : "REQUIRED", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "direct-grant-validate-otp", + "requirement" : "OPTIONAL", + "priority" : 30, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "b9415970-52dc-4dd3-ba48-8bacb025d585", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "29c0cbdb-34b2-4011-aa58-922575ba44b2", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticatorConfig" : "create unique user config", + "authenticator" : "idp-create-user-if-unique", + "requirement" : "ALTERNATIVE", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "requirement" : "ALTERNATIVE", + "priority" : 30, + "flowAlias" : "Handle Existing Account", + "userSetupAllowed" : false, + "autheticatorFlow" : true + } ] + }, { + "id" : "902323d3-533e-4f1b-9cec-bc81de56a898", + "alias" : "forms", + "description" : "Username, password, otp and other auth forms.", + "providerId" : "basic-flow", + "topLevel" : false, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "auth-username-password-form", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "auth-otp-form", + "requirement" : "OPTIONAL", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "ce2db512-acb7-42cb-a6e6-924d8f7822c0", + "alias" : "registration", + "description" : "registration flow", + "providerId" : "basic-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "registration-page-form", + "requirement" : "REQUIRED", + "priority" : 10, + "flowAlias" : "registration form", + "userSetupAllowed" : false, + "autheticatorFlow" : true + } ] + }, { + "id" : "a076f072-c63d-4505-a716-24874b47f4bc", + "alias" : "registration form", + "description" : "registration form", + "providerId" : "form-flow", + "topLevel" : false, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "registration-user-creation", + "requirement" : "REQUIRED", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "registration-profile-action", + "requirement" : "REQUIRED", + "priority" : 40, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "registration-password-action", + "requirement" : "REQUIRED", + "priority" : 50, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "registration-recaptcha-action", + "requirement" : "DISABLED", + "priority" : 60, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "c195615e-c15d-4262-a1c2-c497063ae456", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "reset-credential-email", + "requirement" : "REQUIRED", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "reset-password", + "requirement" : "REQUIRED", + "priority" : 30, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "reset-otp", + "requirement" : "OPTIONAL", + "priority" : 40, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "c5cc4d84-7ab9-4ff0-96a4-11153951f94b", + "alias" : "saml ecp", + "description" : "SAML ECP Profile Authentication Flow", + "providerId" : "basic-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "http-basic-authenticator", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + } ], + "authenticatorConfig" : [ { + "id" : "d992992b-1ce7-458f-a558-a0ef3c8b3a9a", + "alias" : "create unique user config", + "config" : { + "require.password.update.after.registration" : "false" + } + }, { + "id" : "e7a29f94-4006-42f8-907f-9f672145d1b6", + "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, + "config" : { } + }, { + "alias" : "UPDATE_PASSWORD", + "name" : "Update Password", + "providerId" : "UPDATE_PASSWORD", + "enabled" : true, + "defaultAction" : false, + "config" : { } + }, { + "alias" : "UPDATE_PROFILE", + "name" : "Update Profile", + "providerId" : "UPDATE_PROFILE", + "enabled" : true, + "defaultAction" : false, + "config" : { } + }, { + "alias" : "VERIFY_EMAIL", + "name" : "Verify Email", + "providerId" : "VERIFY_EMAIL", + "enabled" : true, + "defaultAction" : false, + "config" : { } + }, { + "alias" : "terms_and_conditions", + "name" : "Terms and Conditions", + "providerId" : "terms_and_conditions", + "enabled" : false, + "defaultAction" : false, + "config" : { } + } ], + "browserFlow" : "browser", + "registrationFlow" : "registration", + "directGrantFlow" : "direct grant", + "resetCredentialsFlow" : "reset credentials", + "clientAuthenticationFlow" : "clients", + "dockerAuthenticationFlow" : "docker auth", + "attributes" : { + "_browser_header.xXSSProtection" : "1; mode=block", + "_browser_header.xFrameOptions" : "SAMEORIGIN", + "permanentLockout" : "false", + "quickLoginCheckMilliSeconds" : "1000", + "_browser_header.xRobotsTag" : "none", + "maxFailureWaitSeconds" : "900", + "minimumQuickLoginWaitSeconds" : "60", + "failureFactor" : "30", + "actionTokenGeneratedByUserLifespan" : "300", + "maxDeltaTimeSeconds" : "43200", + "_browser_header.xContentTypeOptions" : "nosniff", + "actionTokenGeneratedByAdminLifespan" : "43200", + "bruteForceProtected" : "false", + "_browser_header.contentSecurityPolicy" : "frame-src 'self'; frame-ancestors 'self'; object-src 'none';", + "waitIncrementSeconds" : "60" + }, + "keycloakVersion" : "3.3.0.CR2" +}, { + "id" : "master", + "realm" : "master", + "displayName" : "Keycloak", + "displayNameHtml" : "
Keycloak
", + "notBefore" : 0, + "revokeRefreshToken" : false, + "accessTokenLifespan" : 60, + "accessTokenLifespanForImplicitFlow" : 900, + "ssoSessionIdleTimeout" : 1800, + "ssoSessionMaxLifespan" : 36000, + "offlineSessionIdleTimeout" : 2592000, + "accessCodeLifespan" : 60, + "accessCodeLifespanUserAction" : 300, + "accessCodeLifespanLogin" : 1800, + "actionTokenGeneratedByAdminLifespan" : 43200, + "actionTokenGeneratedByUserLifespan" : 300, + "enabled" : true, + "sslRequired" : "external", + "registrationAllowed" : false, + "registrationEmailAsUsername" : false, + "rememberMe" : false, + "verifyEmail" : false, + "loginWithEmailAllowed" : true, + "duplicateEmailsAllowed" : false, + "resetPasswordAllowed" : false, + "editUsernameAllowed" : false, + "bruteForceProtected" : false, + "permanentLockout" : false, + "maxFailureWaitSeconds" : 900, + "minimumQuickLoginWaitSeconds" : 60, + "waitIncrementSeconds" : 60, + "quickLoginCheckMilliSeconds" : 1000, + "maxDeltaTimeSeconds" : 43200, + "failureFactor" : 30, + "roles" : { + "realm" : [ { + "id" : "92be909b-0423-4695-82d4-dc53a88d6944", + "name" : "create-realm", + "description" : "${role_create-realm}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : false, + "containerId" : "master" + }, { + "id" : "0e223087-be42-4b21-a5ae-6e9a8f08bc26", + "name" : "uma_authorization", + "description" : "${role_uma_authorization}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : false, + "containerId" : "master" + }, { + "id" : "81dbc99f-ad79-46ea-870c-9f5da693fc76", + "name" : "admin", + "description" : "${role_admin}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "realm" : [ "create-realm" ], + "client" : { + "master-realm" : [ "query-clients", "create-client", "impersonation", "manage-users", "view-identity-providers", "view-users", "query-realms", "view-clients", "manage-authorization", "view-realm", "manage-identity-providers", "view-events", "manage-realm", "manage-clients", "view-authorization", "query-users", "manage-events", "query-groups" ], + "Vert.x-realm" : [ "view-identity-providers", "manage-users", "view-authorization", "manage-clients", "manage-events", "query-users", "manage-authorization", "impersonation", "create-client", "view-clients", "view-events", "query-realms", "query-groups", "manage-realm", "view-users", "manage-identity-providers", "view-realm", "query-clients" ] + } + }, + "clientRole" : false, + "containerId" : "master" + }, { + "id" : "71eeeb3e-ea74-45c6-8c4e-7ada89685844", + "name" : "offline_access", + "description" : "${role_offline-access}", + "scopeParamRequired" : true, + "composite" : false, + "clientRole" : false, + "containerId" : "master" + } ], + "client" : { + "security-admin-console" : [ ], + "admin-cli" : [ ], + "broker" : [ { + "id" : "2d3a33cc-633b-4b59-a31a-666e94f0b719", + "name" : "read-token", + "description" : "${role_read-token}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "b0be575c-0685-46b7-9630-f29f9dbe589b" + } ], + "master-realm" : [ { + "id" : "7128df43-dd49-4985-aa48-9e4a5038330c", + "name" : "query-clients", + "description" : "${role_query-clients}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "b70f026e-219a-4d5f-85f3-d97d99c9430b", + "name" : "create-client", + "description" : "${role_create-client}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "6e566371-c7ec-43ad-9d2e-bfa495e07dbd", + "name" : "view-realm", + "description" : "${role_view-realm}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "48abcea8-fce0-4f49-9912-db83cffbc36a", + "name" : "manage-identity-providers", + "description" : "${role_manage-identity-providers}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "21347a85-1820-44ab-a3c0-e800baa9ed64", + "name" : "view-events", + "description" : "${role_view-events}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "88ccb0de-1f1d-4d05-9861-13e459df9d0e", + "name" : "impersonation", + "description" : "${role_impersonation}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "164a9ab1-e7af-4f41-ab06-65ac5d9bf9fb", + "name" : "manage-realm", + "description" : "${role_manage-realm}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "7df8b260-09f5-474f-b146-73e1a27a32d5", + "name" : "manage-clients", + "description" : "${role_manage-clients}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "99e72704-f35b-4282-a468-cf55fb63031d", + "name" : "manage-users", + "description" : "${role_manage-users}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "36e1f986-a1e5-4425-ac80-8666729842d0", + "name" : "view-identity-providers", + "description" : "${role_view-identity-providers}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "4f49f7a3-981d-4c2b-879e-ef0577f11fa3", + "name" : "view-authorization", + "description" : "${role_view-authorization}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "dc997a20-da73-4a68-a9fc-f2798e75e207", + "name" : "query-users", + "description" : "${role_query-users}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "e0d0d189-9b38-47e2-83f0-e6290dd26e34", + "name" : "view-users", + "description" : "${role_view-users}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "client" : { + "master-realm" : [ "query-users", "query-groups" ] + } + }, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "b9c7cf89-1f28-4fb0-8cf0-71c22b9a589c", + "name" : "manage-events", + "description" : "${role_manage-events}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "6211b247-177e-4160-8089-e19a67732699", + "name" : "query-realms", + "description" : "${role_query-realms}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "2dbd70b0-d960-42af-a79f-3b7696a8ec6d", + "name" : "query-groups", + "description" : "${role_query-groups}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "80154939-806d-42c7-8236-319cbcb6d7f5", + "name" : "view-clients", + "description" : "${role_view-clients}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "client" : { + "master-realm" : [ "query-clients" ] + } + }, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + }, { + "id" : "a58651e9-2859-4258-894b-93578d82498a", + "name" : "manage-authorization", + "description" : "${role_manage-authorization}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3" + } ], + "Vert.x-realm" : [ { + "id" : "c480d80f-4174-49fa-857f-2ac30b2a2c22", + "name" : "view-events", + "description" : "${role_view-events}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "b507d0de-1c4f-40bb-b574-a129bdb33284", + "name" : "view-identity-providers", + "description" : "${role_view-identity-providers}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "ad779249-2cec-441d-a80a-181624a66334", + "name" : "query-realms", + "description" : "${role_query-realms}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "86912d2a-c6b4-4d17-b69d-1edb742984f0", + "name" : "query-groups", + "description" : "${role_query-groups}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "1bbc0f6a-5130-4afb-af7a-851030fcfafe", + "name" : "manage-users", + "description" : "${role_manage-users}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "08076357-f165-4fd7-86b6-6d183551e67f", + "name" : "view-authorization", + "description" : "${role_view-authorization}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "a345f2a4-b0bb-4070-9a6c-c2fcfe164a5b", + "name" : "manage-clients", + "description" : "${role_manage-clients}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "8b2b4f5e-268b-48bd-9749-5c52bc19bef6", + "name" : "manage-events", + "description" : "${role_manage-events}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "76ffd56f-7b25-4222-b008-2e831baaf2ed", + "name" : "query-users", + "description" : "${role_query-users}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "4f7b017f-9a4f-48a7-89bc-88ffaf3b5344", + "name" : "manage-authorization", + "description" : "${role_manage-authorization}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "26698ba9-5359-456e-a849-6debe405b3ee", + "name" : "manage-realm", + "description" : "${role_manage-realm}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "ece63185-108e-49d9-b442-4e5a2c5ad76a", + "name" : "impersonation", + "description" : "${role_impersonation}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "5cd69676-bfe9-45e7-ba61-5debe49b5826", + "name" : "create-client", + "description" : "${role_create-client}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "3be56c50-be08-411f-af1f-943773e63abd", + "name" : "view-users", + "description" : "${role_view-users}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "client" : { + "Vert.x-realm" : [ "query-users", "query-groups" ] + } + }, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "ba912d18-b29c-4343-96a9-8968465edaec", + "name" : "view-clients", + "description" : "${role_view-clients}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "client" : { + "Vert.x-realm" : [ "query-clients" ] + } + }, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "1d6b1972-fb2a-4385-8e5c-3a65cbbec52e", + "name" : "manage-identity-providers", + "description" : "${role_manage-identity-providers}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "b50e9d97-9f60-4bed-8a15-1a79c7f64539", + "name" : "view-realm", + "description" : "${role_view-realm}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + }, { + "id" : "cb0be983-0e5d-479c-8e28-37d9652d1c9e", + "name" : "query-clients", + "description" : "${role_query-clients}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "33cb65e6-2226-433f-8165-3338b36920cd" + } ], + "account" : [ { + "id" : "bea1ebc8-d845-4622-bb31-e1a3c0e2c982", + "name" : "view-profile", + "description" : "${role_view-profile}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "d7edfcdf-75b3-4092-8785-d3ee55a53797" + }, { + "id" : "9763d2d5-75e0-4195-b3ce-3204f4e3d28e", + "name" : "manage-account-links", + "description" : "${role_manage-account-links}", + "scopeParamRequired" : false, + "composite" : false, + "clientRole" : true, + "containerId" : "d7edfcdf-75b3-4092-8785-d3ee55a53797" + }, { + "id" : "a8a57cc6-33bf-41d4-893b-feb89acd5d2c", + "name" : "manage-account", + "description" : "${role_manage-account}", + "scopeParamRequired" : false, + "composite" : true, + "composites" : { + "client" : { + "account" : [ "manage-account-links" ] + } + }, + "clientRole" : true, + "containerId" : "d7edfcdf-75b3-4092-8785-d3ee55a53797" + } ] + } + }, + "groups" : [ ], + "defaultRoles" : [ "offline_access", "uma_authorization" ], + "requiredCredentials" : [ "password" ], + "otpPolicyType" : "totp", + "otpPolicyAlgorithm" : "HmacSHA1", + "otpPolicyInitialCounter" : 0, + "otpPolicyDigits" : 6, + "otpPolicyLookAheadWindow" : 1, + "otpPolicyPeriod" : 30, + "users" : [ { + "id" : "fdc01120-1a08-4bb5-9893-c461ec28e3b7", + "createdTimestamp" : 1507634381071, + "username" : "admin", + "enabled" : true, + "totp" : false, + "emailVerified" : false, + "credentials" : [ { + "type" : "password", + "hashedSaltedValue" : "UrMbjRqWO3VkBD5ZPwAZnbk/1o03DlBNOuWuTghQob5kdN9UAEj9NEOUZX6FHdR8u0XxH9lz/x+HI25kbZyzzQ==", + "salt" : "5B3EBhBr995ruT05Dyq68A==", + "hashIterations" : 27500, + "counter" : 0, + "algorithm" : "pbkdf2-sha256", + "digits" : 0, + "period" : 0, + "config" : { } + } ], + "disableableCredentialTypes" : [ "password" ], + "requiredActions" : [ ], + "realmRoles" : [ "uma_authorization", "admin", "offline_access" ], + "clientRoles" : { + "account" : [ "view-profile", "manage-account" ] + }, + "notBefore" : 0, + "groups" : [ ] + } ], + "clients" : [ { + "id" : "33cb65e6-2226-433f-8165-3338b36920cd", + "clientId" : "Vert.x-realm", + "name" : "Vert.x Realm", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "fbf4cb90-bd76-4936-a137-e69410d5173b", + "redirectUris" : [ ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : true, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : false, + "serviceAccountsEnabled" : false, + "publicClient" : false, + "frontchannelLogout" : false, + "attributes" : { }, + "fullScopeAllowed" : true, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "ad14ceab-e6e6-44d1-aa55-934a4743d467", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + }, { + "id" : "1e6e1be9-7b0f-428a-bb14-7aaf77b4df22", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "7681f65b-571f-41ee-b235-f3aed21891ab", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + }, { + "id" : "4d26456e-37b3-49c5-a4fb-2a0d9e1b2369", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "7f6b70d9-56a7-4373-8400-56626160ebf8", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "331036c9-e707-4c48-a7d5-e750668ba788", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "d7edfcdf-75b3-4092-8785-d3ee55a53797", + "clientId" : "account", + "name" : "${client_account}", + "baseUrl" : "/auth/realms/master/account", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "07e0c26c-945e-4e07-8488-b472dffc88bf", + "defaultRoles" : [ "view-profile", "manage-account" ], + "redirectUris" : [ "/auth/realms/master/account/*" ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : false, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : false, + "serviceAccountsEnabled" : false, + "publicClient" : false, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { }, + "fullScopeAllowed" : false, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "59d76cda-0eb5-4439-9150-c2333a975d98", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "3e87befe-3ccf-4112-b693-a8ffbb6fe619", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "caef37fb-dcb1-4fd6-a316-b60126ce9338", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + }, { + "id" : "3cc8ad5a-371c-4e2c-93f4-5de947f55d5f", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + }, { + "id" : "4db4ef09-ec37-427f-afe6-a9fef0c7cc3c", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + }, { + "id" : "cef9f8d8-fe42-4133-ad49-23634235400b", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "65fd5699-e5b8-4af2-9f2a-e5e278bc05cf", + "clientId" : "admin-cli", + "name" : "${client_admin-cli}", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "fe68965a-6a0c-42b7-96ec-158b1abc297c", + "redirectUris" : [ ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : false, + "consentRequired" : false, + "standardFlowEnabled" : false, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : true, + "serviceAccountsEnabled" : false, + "publicClient" : true, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { }, + "fullScopeAllowed" : false, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "766adedf-98d5-4757-ae46-842ed86ea797", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "cc963081-8981-483d-accb-52049431d6ae", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "cf96da60-7de0-4acf-a2b9-333c4eddc988", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "079abd55-8810-46e6-9d56-3bc0c94ec7b1", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + }, { + "id" : "e2118b89-6019-4dbc-a85e-01216828404a", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + }, { + "id" : "923b04b6-fc09-4446-b8d0-dc0b563b054a", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "b0be575c-0685-46b7-9630-f29f9dbe589b", + "clientId" : "broker", + "name" : "${client_broker}", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "14cc2ec9-7eb3-47ed-8e4c-caec79cf7c73", + "redirectUris" : [ ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : false, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : false, + "serviceAccountsEnabled" : false, + "publicClient" : false, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { }, + "fullScopeAllowed" : false, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "118e5d9e-8cb6-4693-b91e-97b08c6f715a", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + }, { + "id" : "93a161eb-8e4b-4fbc-af5c-184a39c7c67d", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "e2e4338f-e4a3-41b5-b613-175da411c503", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + }, { + "id" : "7ab2234f-fcf4-49d2-81b0-5a6a61635da7", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "a69c4031-3498-4a05-ba87-87a40b3094c4", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "df8189e7-493b-43d6-a65d-2a0f36f4671d", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "024ff3b5-1ce7-464b-9125-aec15fc1f5e3", + "clientId" : "master-realm", + "name" : "master Realm", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "20e828a6-bdfb-4c00-8856-3eb4294f4b3a", + "redirectUris" : [ ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : true, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : false, + "serviceAccountsEnabled" : false, + "publicClient" : false, + "frontchannelLogout" : false, + "attributes" : { }, + "fullScopeAllowed" : true, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "29411f39-6001-4424-ac60-8a52db73e1e9", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + }, { + "id" : "16f86cde-d543-4d87-8983-890f2a3238ad", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "aa75db15-4474-4b88-9fc8-5ae86427752b", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + }, { + "id" : "a476c995-3b02-4726-b254-542c74515307", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + }, { + "id" : "c1e3c7f6-5d3f-4c4a-ac04-213a770f6f73", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "82ba0db4-f35e-4c87-b491-dc6a5117dd28", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + }, { + "id" : "b5bd4623-775c-4e2d-9c3f-cb3a3eacbd67", + "clientId" : "security-admin-console", + "name" : "${client_security-admin-console}", + "baseUrl" : "/auth/admin/master/console/index.html", + "surrogateAuthRequired" : false, + "enabled" : true, + "clientAuthenticatorType" : "client-secret", + "secret" : "d856bbf4-4da1-4c1e-a240-0eedeee80e90", + "redirectUris" : [ "/auth/admin/master/console/*" ], + "webOrigins" : [ ], + "notBefore" : 0, + "bearerOnly" : false, + "consentRequired" : false, + "standardFlowEnabled" : true, + "implicitFlowEnabled" : false, + "directAccessGrantsEnabled" : false, + "serviceAccountsEnabled" : false, + "publicClient" : true, + "frontchannelLogout" : false, + "protocol" : "openid-connect", + "attributes" : { }, + "fullScopeAllowed" : false, + "nodeReRegistrationTimeout" : 0, + "protocolMappers" : [ { + "id" : "0b1919ee-cc34-4013-8290-19fed7564bc0", + "name" : "full name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-full-name-mapper", + "consentRequired" : true, + "consentText" : "${fullName}", + "config" : { + "id.token.claim" : "true", + "access.token.claim" : "true" + } + }, { + "id" : "e8446c1b-64d7-4b9b-940a-888ca1ca8e1a", + "name" : "username", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${username}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "username", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "preferred_username", + "jsonType.label" : "String" + } + }, { + "id" : "29cd75cc-6bee-4269-b063-a0372ac0e0b4", + "name" : "role list", + "protocol" : "saml", + "protocolMapper" : "saml-role-list-mapper", + "consentRequired" : false, + "config" : { + "single" : "false", + "attribute.nameformat" : "Basic", + "attribute.name" : "Role" + } + }, { + "id" : "19c8e75f-caa9-4531-b630-6044088191bf", + "name" : "email", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${email}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "email", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "email", + "jsonType.label" : "String" + } + }, { + "id" : "782f8635-9f8b-4e57-8efb-dbf10bdd668a", + "name" : "given name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${givenName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "firstName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "given_name", + "jsonType.label" : "String" + } + }, { + "id" : "0b5ef9d6-5b29-494a-882b-7e416aab84fe", + "name" : "locale", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-attribute-mapper", + "consentRequired" : false, + "consentText" : "${locale}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "locale", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "locale", + "jsonType.label" : "String" + } + }, { + "id" : "cadef5f4-9bde-4f79-9cf5-3274e8c81f77", + "name" : "family name", + "protocol" : "openid-connect", + "protocolMapper" : "oidc-usermodel-property-mapper", + "consentRequired" : true, + "consentText" : "${familyName}", + "config" : { + "userinfo.token.claim" : "true", + "user.attribute" : "lastName", + "id.token.claim" : "true", + "access.token.claim" : "true", + "claim.name" : "family_name", + "jsonType.label" : "String" + } + } ], + "useTemplateConfig" : false, + "useTemplateScope" : false, + "useTemplateMappers" : false + } ], + "clientTemplates" : [ ], + "browserSecurityHeaders" : { + "xContentTypeOptions" : "nosniff", + "xRobotsTag" : "none", + "xFrameOptions" : "SAMEORIGIN", + "xXSSProtection" : "1; mode=block", + "contentSecurityPolicy" : "frame-src 'self'; frame-ancestors 'self'; object-src 'none';" + }, + "smtpServer" : { }, + "eventsEnabled" : false, + "eventsListeners" : [ "jboss-logging" ], + "enabledEventTypes" : [ ], + "adminEventsEnabled" : false, + "adminEventsDetailsEnabled" : false, + "components" : { + "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy" : [ { + "id" : "6acd4e0a-8105-439a-97b7-1f3001fb363e", + "name" : "Full Scope Disabled", + "providerId" : "scope", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { } + }, { + "id" : "0510eb90-7913-4fad-9580-3444ef24df8c", + "name" : "Allowed Client Templates", + "providerId" : "allowed-client-templates", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { } + }, { + "id" : "4529ff1e-2677-4735-83a9-fa010ddbc7aa", + "name" : "Consent Required", + "providerId" : "consent-required", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { } + }, { + "id" : "c37c2bdf-cae9-46c4-ac3d-87b69dae1f83", + "name" : "Allowed Protocol Mapper Types", + "providerId" : "allowed-protocol-mappers", + "subType" : "authenticated", + "subComponents" : { }, + "config" : { + "allowed-protocol-mapper-types" : [ "oidc-full-name-mapper", "saml-user-property-mapper", "oidc-address-mapper", "saml-role-list-mapper", "saml-user-attribute-mapper", "oidc-sha256-pairwise-sub-mapper", "oidc-usermodel-attribute-mapper", "oidc-usermodel-property-mapper" ], + "consent-required-for-all-mappers" : [ "true" ] + } + }, { + "id" : "37213451-2447-464f-b577-2081de679e28", + "name" : "Trusted Hosts", + "providerId" : "trusted-hosts", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { + "host-sending-registration-request-must-match" : [ "true" ], + "client-uris-must-match" : [ "true" ] + } + }, { + "id" : "91510667-61f4-4520-b851-943575d5a512", + "name" : "Allowed Client Templates", + "providerId" : "allowed-client-templates", + "subType" : "authenticated", + "subComponents" : { }, + "config" : { } + }, { + "id" : "ce2507b6-e7c5-4c1c-9e37-d94d4d1ce7e8", + "name" : "Max Clients Limit", + "providerId" : "max-clients", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { + "max-clients" : [ "200" ] + } + }, { + "id" : "ad9b7b50-ab1f-43fe-b269-6accdb6759d6", + "name" : "Allowed Protocol Mapper Types", + "providerId" : "allowed-protocol-mappers", + "subType" : "anonymous", + "subComponents" : { }, + "config" : { + "allowed-protocol-mapper-types" : [ "oidc-address-mapper", "saml-user-attribute-mapper", "saml-role-list-mapper", "oidc-sha256-pairwise-sub-mapper", "oidc-usermodel-attribute-mapper", "saml-user-property-mapper", "oidc-usermodel-property-mapper", "oidc-full-name-mapper" ], + "consent-required-for-all-mappers" : [ "true" ] + } + } ], + "org.keycloak.keys.KeyProvider" : [ { + "id" : "6f81af72-4beb-421f-983a-2be05b006c83", + "name" : "rsa-generated", + "providerId" : "rsa-generated", + "subComponents" : { }, + "config" : { + "privateKey" : [ "MIIEowIBAAKCAQEAqkSiFqpa1d2PcQZVcm5aK0iTbQZlqywl/3pqzvlAJSKURhdKNfoKV3yThYoHrsWFQbuv1UWDEJaki7yd4nKE8hBoNKg/dsnrGgYaFrLnV1qibtu7AyIxdysi6y1ZvqQl0GtC1Pbr1CPy7yro3AVHf2majVULfy+MzioaFuk9EuDtERC9nJebgx1Doyu+pgw1xK9U4r6LXQ3t35IT1tOmYUs0SI472vXyRyl7AQ5T7Y0G+mXVYaykbzbAHzoBmFNQOxJGcmyDNmbxVGT21SDXc+ogYOyY7KxCnzzDDAwccvOFXF+v8dkqqI8bRG9AdnfejnxNXK5sQiURv5CnE2LHkQIDAQABAoIBAD6TltapqVSsZwltAH5b3DvIIpaRIVB1m0l3nkWPCWoceU4BRT7tNFvO5xDPF9+9rCnqZscFExRHqRXKLmSJHh8wtHuV0i1ALG2WDISHH8rU/pmrm+Gc8X0Ql3bDZhZQka01noxSa3298IzBwm8KaaqED08eEGmf+inTA1+kPNPwxmCHjbMrU3N+n0kS/fJ2mfdchKNouaf1bs+lJcBERxO095mhlffkUXkYQ5SGoB1yuAf6OwfOUoboWpEo3LqzlgSPrTgG+LVvcVJIp75iQhauRbrvA9zKhy3vsDvYVBCIjT0lB4D1/hkCmTF9nhYx3et3S4+CyLp1b8gExOFRzqECgYEA+uPOyjNSU8o8QQxqebAGoG/hnOqQmir/o5ODOqcUM6QdhEpIyIwCjQ7tvBbRnuYlVChe+emSlSCPMrwE4auCOJzB3zbhJPESxgLI/WK431xnruXYYs6mbO3HKLx9gJJz4LgcxBPUJQeb/a11P3g476Eyoa80x+2AxOvht6MYxC0CgYEArbxyVGZj12P/kdKnmeOg56OvC2eS4ZBygnJy6YocmqOKt1eEe28m/kcH+jbNobSUC+bbJFEqYbq84PnSEUiUoRZADw+gBbr8TimEvXK5l3JhTItVL6LKdruGq6Prt1pxw759agdT3/NK4l3JRATbeEbJ7OhE0LlADHy8Vso9+3UCgYAhCJ+wpeNAHw+h7PWUAiZNN434MDZL5j90lTahIWCakBBG29ULesvXMNECg+qjxl/B3fLrauKe+gOAxZrK798cfx9TuZEZYRh8s98s5bO7zRnlwGOmVtk43HHtnivUIvRY8UTwWEAFhCP42b7nVXgBrTLScRQ9AruCsiAtIq9fHQKBgF6AYrAGAcjnW9y1+PR8HMni/xP1ArAvIhpSpq7hsS1sR8fykt2RWGR3vp8bsD6FOwI+UHUwsRz3tkWpndpI4I++yplmpmR3kUXyz4E9JjZ6wPIh1/RRWE+9MUOrpkvVpowS0aUa10S50cHPwep9ueNyneN/c+8U1QH113xeBdkBAoGBANg2AJQMnkpeeFZKuSb3loCf0ur+6WtoBg7utj0aaHov0yym7GOe9leMbMaRpGpr1G27t2/0bupzCs6GODgK0lAlKZuhRl2ypZURFW5t4vlSLX0Wcky9ah1sdn2/bsuBShlJvqNUCramMF97IxaSRoRTHxFXPmmqfOutkszKv5YV" ], + "certificate" : [ "MIICmzCCAYMCBgFfBgL/CDANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZtYXN0ZXIwHhcNMTcxMDEwMTExODAwWhcNMjcxMDEwMTExOTQwWjARMQ8wDQYDVQQDDAZtYXN0ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqRKIWqlrV3Y9xBlVyblorSJNtBmWrLCX/emrO+UAlIpRGF0o1+gpXfJOFigeuxYVBu6/VRYMQlqSLvJ3icoTyEGg0qD92yesaBhoWsudXWqJu27sDIjF3KyLrLVm+pCXQa0LU9uvUI/LvKujcBUd/aZqNVQt/L4zOKhoW6T0S4O0REL2cl5uDHUOjK76mDDXEr1TivotdDe3fkhPW06ZhSzRIjjva9fJHKXsBDlPtjQb6ZdVhrKRvNsAfOgGYU1A7EkZybIM2ZvFUZPbVINdz6iBg7JjsrEKfPMMMDBxy84VcX6/x2SqojxtEb0B2d96OfE1crmxCJRG/kKcTYseRAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAI7QM4Vo3x4qfQ2hva9gShU4yKvOmrP0ZqfvfFjwthhIlwHNZBMf1m3pgtGtoy++0WfCIQLiegGuZV70sIkX4qbTrA5jMQIYVpUxkik4jTxQGGM3aNqdGFXqNu3WFS/h1lNeRSKRXqAHS5g9w0CDii1X8Gnwb1TDYkubN8iwABltr9S9iVjdXeDQS6xd7lH4RhaCaLCbAvbAqqT25Ji2NmcaxVUWuHzLcpzIbTZDfbNRUjaJWlhYjirLLHmTCPzpegIpXjgNsjBaibjSQus2jXlgS50FrzuE0aWtRbHImBqhp+3BQ5S1oUUH6LqDou7dSanQr3ac9DnfpJffl/+GRbI=" ], + "priority" : [ "100" ] + } + }, { + "id" : "91bf8c51-91e2-4eec-9e82-26a34309a95f", + "name" : "hmac-generated", + "providerId" : "hmac-generated", + "subComponents" : { }, + "config" : { + "kid" : [ "683caa47-44e3-4e61-b6cd-87a2e22624db" ], + "secret" : [ "xVgnUgyk1ETm9VaIhbxd7HSIN8cQwk1enK7Dsy7s84g" ], + "priority" : [ "100" ] + } + } ] + }, + "internationalizationEnabled" : false, + "supportedLocales" : [ ], + "authenticationFlows" : [ { + "id" : "51b0a47d-665e-46ab-b799-8e8242e2f08e", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "idp-email-verification", + "requirement" : "ALTERNATIVE", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "requirement" : "ALTERNATIVE", + "priority" : 30, + "flowAlias" : "Verify Existing Account by Re-authentication", + "userSetupAllowed" : false, + "autheticatorFlow" : true + } ] + }, { + "id" : "3b838833-cecf-4514-ab80-bc3229dc1f38", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "auth-otp-form", + "requirement" : "OPTIONAL", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "bb22a564-df1d-4bd3-9574-a1974615b811", + "alias" : "browser", + "description" : "browser based authentication", + "providerId" : "basic-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "auth-cookie", + "requirement" : "ALTERNATIVE", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "auth-spnego", + "requirement" : "DISABLED", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "identity-provider-redirector", + "requirement" : "ALTERNATIVE", + "priority" : 25, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "requirement" : "ALTERNATIVE", + "priority" : 30, + "flowAlias" : "forms", + "userSetupAllowed" : false, + "autheticatorFlow" : true + } ] + }, { + "id" : "e2fd7a5e-e033-4cdc-9095-5b2abced97e5", + "alias" : "clients", + "description" : "Base authentication for clients", + "providerId" : "client-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "client-secret", + "requirement" : "ALTERNATIVE", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "client-jwt", + "requirement" : "ALTERNATIVE", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "a1d06f43-97ee-404a-858e-f1ac9dda542a", + "alias" : "direct grant", + "description" : "OpenID Connect Resource Owner Grant", + "providerId" : "basic-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "direct-grant-validate-username", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "direct-grant-validate-password", + "requirement" : "REQUIRED", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "direct-grant-validate-otp", + "requirement" : "OPTIONAL", + "priority" : 30, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "4086ab55-ceae-4ce9-8b26-255a8ed13771", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "4305dd8d-52c2-4e1b-bb3a-e2adf6502e60", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticatorConfig" : "create unique user config", + "authenticator" : "idp-create-user-if-unique", + "requirement" : "ALTERNATIVE", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "requirement" : "ALTERNATIVE", + "priority" : 30, + "flowAlias" : "Handle Existing Account", + "userSetupAllowed" : false, + "autheticatorFlow" : true + } ] + }, { + "id" : "15485de5-3779-44d8-a382-fd04c4ec4af7", + "alias" : "forms", + "description" : "Username, password, otp and other auth forms.", + "providerId" : "basic-flow", + "topLevel" : false, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "auth-username-password-form", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "auth-otp-form", + "requirement" : "OPTIONAL", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "1939264d-68b8-468b-aef4-ab803deaeb8b", + "alias" : "registration", + "description" : "registration flow", + "providerId" : "basic-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "registration-page-form", + "requirement" : "REQUIRED", + "priority" : 10, + "flowAlias" : "registration form", + "userSetupAllowed" : false, + "autheticatorFlow" : true + } ] + }, { + "id" : "98c04dd6-8674-46a2-8b08-f6bd30a7ff4b", + "alias" : "registration form", + "description" : "registration form", + "providerId" : "form-flow", + "topLevel" : false, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "registration-user-creation", + "requirement" : "REQUIRED", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "registration-profile-action", + "requirement" : "REQUIRED", + "priority" : 40, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "registration-password-action", + "requirement" : "REQUIRED", + "priority" : 50, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "registration-recaptcha-action", + "requirement" : "DISABLED", + "priority" : 60, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "9eb7b29e-0809-46af-9a17-9f41882aafdc", + "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", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "reset-credential-email", + "requirement" : "REQUIRED", + "priority" : 20, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "reset-password", + "requirement" : "REQUIRED", + "priority" : 30, + "userSetupAllowed" : false, + "autheticatorFlow" : false + }, { + "authenticator" : "reset-otp", + "requirement" : "OPTIONAL", + "priority" : 40, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + }, { + "id" : "f3ca9259-c4fa-455c-b356-a9ba150073d7", + "alias" : "saml ecp", + "description" : "SAML ECP Profile Authentication Flow", + "providerId" : "basic-flow", + "topLevel" : true, + "builtIn" : true, + "authenticationExecutions" : [ { + "authenticator" : "http-basic-authenticator", + "requirement" : "REQUIRED", + "priority" : 10, + "userSetupAllowed" : false, + "autheticatorFlow" : false + } ] + } ], + "authenticatorConfig" : [ { + "id" : "f4d8ade2-c062-4bd3-b7a6-0574e62b3c5d", + "alias" : "create unique user config", + "config" : { + "require.password.update.after.registration" : "false" + } + }, { + "id" : "ba1fba30-b0b9-434f-bd78-a762e4828b4a", + "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, + "config" : { } + }, { + "alias" : "UPDATE_PASSWORD", + "name" : "Update Password", + "providerId" : "UPDATE_PASSWORD", + "enabled" : true, + "defaultAction" : false, + "config" : { } + }, { + "alias" : "UPDATE_PROFILE", + "name" : "Update Profile", + "providerId" : "UPDATE_PROFILE", + "enabled" : true, + "defaultAction" : false, + "config" : { } + }, { + "alias" : "VERIFY_EMAIL", + "name" : "Verify Email", + "providerId" : "VERIFY_EMAIL", + "enabled" : true, + "defaultAction" : false, + "config" : { } + }, { + "alias" : "terms_and_conditions", + "name" : "Terms and Conditions", + "providerId" : "terms_and_conditions", + "enabled" : false, + "defaultAction" : false, + "config" : { } + } ], + "browserFlow" : "browser", + "registrationFlow" : "registration", + "directGrantFlow" : "direct grant", + "resetCredentialsFlow" : "reset credentials", + "clientAuthenticationFlow" : "clients", + "dockerAuthenticationFlow" : "docker auth", + "attributes" : { + "_browser_header.xXSSProtection" : "1; mode=block", + "_browser_header.xFrameOptions" : "SAMEORIGIN", + "permanentLockout" : "false", + "quickLoginCheckMilliSeconds" : "1000", + "displayName" : "Keycloak", + "_browser_header.xRobotsTag" : "none", + "maxFailureWaitSeconds" : "900", + "minimumQuickLoginWaitSeconds" : "60", + "displayNameHtml" : "
Keycloak
", + "failureFactor" : "30", + "maxDeltaTimeSeconds" : "43200", + "_browser_header.xContentTypeOptions" : "nosniff", + "bruteForceProtected" : "false", + "_browser_header.contentSecurityPolicy" : "frame-src 'self'; frame-ancestors 'self'; object-src 'none';", + "waitIncrementSeconds" : "60" + }, + "keycloakVersion" : "3.3.0.CR2" +} ] \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 7a31d10..25e7659 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -19,6 +19,14 @@ services: - "27017" keycloak-server: image: jboss/keycloak:latest + command: > + -b 0.0.0.0 \ + -Dkeycloak.migration.action=import \ + -Dkeycloak.migration.provider=singleFile \ + -Dkeycloak.migration.file=/mnt/config-keycloak/keycloak-import.json \ + -Dkeycloak.migration.strategy=IGNORE_EXISTING + volumes: + - ${DIR}/config-server/config-keycloak:/mnt/config-keycloak ports: - "8080:8080" environment: diff --git a/docs/en/tutorial.md b/docs/en/tutorial.md index 5114b81..f5869de 100644 --- a/docs/en/tutorial.md +++ b/docs/en/tutorial.md @@ -1777,46 +1777,17 @@ When the entire microservice is running successful, we can visit the shop SPA in ## Some configuration for the first time -If we run the microservice for the first time, we must configure the **Keycloak** server manually. First we need to map the `keycloak-server` to the local host. Modify the `hosts` file (for Linux it's in `/etc` directory) and add: +If we run the microservice for the first time, we need to map the `keycloak-server` to the local host. Modify the `hosts` file (for Linux it's in `/etc` directory) and add: ``` 0.0.0.0 keycloak-server ``` -Then we should visit `http://keycloak-server:8080` and enter the admin console. By default the user and password is all **admin**. Now we enter into the admin dashboard. First we should create a new realm with any name. Then in this realm, we create a new client like this: - -![Keycloak configuration](https://raw.githubusercontent.com/sczyh30/vertx-blueprint-microservice/master/docs/images/keycloak-client-config.png) - -After created, we shep into the **Installation** tab and copy the JSON configuration. Replace the corresponding part of `api-gateway/src/config/docker.json` file with the copied configuration. For example: - -```json -{ - "api.gateway.http.port": 8787, - "api.gateway.http.address": "localhost", - "circuit-breaker": { - "name": "api-gateway-cb", - "timeout": 10000, - "max-failures": 5 - }, - // from here is the config of keycloak - "realm": "Vert.x", - "realm-public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkto9ZZm69cmdA9e7X4NUSo8T4CyvrYzlRiJdhr+LMqELdfN3ghEY0EBpaROiOueva//iUc/KViYGiAHVXEQ3nr3kytF6uZs9iwqkshKvltpxkOm2Qpj/FSRsCyHlB8Ahbt5xBmzH2mI1VDIxmVTdEBze4u6tLoi4ieo72b2q/dz09yrEokRm/sSYqzNgfE0i1JY6DI8C7FaKszKTK5DRGMIAib8wURrTyf8au0iiisKEXOHKEjo/g0uHCFGSOKqPOprNNIWYwedV+qaQa9oSah2IpwNgFNRLtHpvbcanftMLQOQIR0iufIJ+bHrNhH0RISZhTzcGX3pSIBw/HaERwQIDAQAB", - "auth-server-url": "http://127.0.0.1:8180/auth", - "ssl-required": "external", - "resource": "vertx-blueprint", - "credentials": { - "secret": "ea99a8e6-f503-4bdb-afbd-9ae322ee7089" - }, - "use-resource-role-mappings": true -} -``` - -You should also create a user or allow user register so that you can login as the user later. +Then we should visit `http://keycloak-server:8080` and enter the admin console. By default the user and password is all **admin**. Now we enter into the admin dashboard. +at the first startup a realm named "Vert.x" is created automatically, it contain a unique user named **john** with password **a** For the details of configuring Keycloak, here is a wonderful tutorial: [Vertx 3 and Keycloak tutorial](http://vertx.io/blog/vertx-3-and-keycloak-tutorial/). -After modifying the config file, you have to rebuild the container of `api-gateway` and then restart with `docker-compose`. - ## Enjoy our shopping! As soon as you have finished the configuration, you can visit the URL of the frontend. By default it is `https://localhost:8787`: diff --git a/docs/zh-cn/tutorial.zh-cn.md b/docs/zh-cn/tutorial.zh-cn.md index 06cbde1..fdfc54c 100644 --- a/docs/zh-cn/tutorial.zh-cn.md +++ b/docs/zh-cn/tutorial.zh-cn.md @@ -1699,14 +1699,13 @@ sudo ./run.sh "max-failures": 5 }, // 下面的都是Keycloak相关的配置 - "realm": "Vert.x", - "realm-public-key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkto9ZZm69cmdA9e7X4NUSo8T4CyvrYzlRiJdhr+LMqELdfN3ghEY0EBpaROiOueva//iUc/KViYGiAHVXEQ3nr3kytF6uZs9iwqkshKvltpxkOm2Qpj/FSRsCyHlB8Ahbt5xBmzH2mI1VDIxmVTdEBze4u6tLoi4ieo72b2q/dz09yrEokRm/sSYqzNgfE0i1JY6DI8C7FaKszKTK5DRGMIAib8wURrTyf8au0iiisKEXOHKEjo/g0uHCFGSOKqPOprNNIWYwedV+qaQa9oSah2IpwNgFNRLtHpvbcanftMLQOQIR0iufIJ+bHrNhH0RISZhTzcGX3pSIBw/HaERwQIDAQAB", - "auth-server-url": "http://127.0.0.1:8180/auth", - "ssl-required": "external", - "resource": "vertx-blueprint", - "credentials": { - "secret": "ea99a8e6-f503-4bdb-afbd-9ae322ee7089" - }, + "realm": "Vert.x", + "auth-server-url": "http://127.0.0.1:8180/auth", + "ssl-required": "none", + "resource": "vertx-blueprint", + "credentials": { + "secret": "d822ebca-69ae-4fc0-9848-c347b2d4f69a" + }, "use-resource-role-mappings": true } ```