diff --git a/tests/WebApi.Tests.System/ComposeService.cs b/tests/WebApi.Tests.System/ComposeService.cs
deleted file mode 100644
index 05483c4..0000000
--- a/tests/WebApi.Tests.System/ComposeService.cs
+++ /dev/null
@@ -1,166 +0,0 @@
-using Ductus.FluentDocker.Services;
-using Ductus.FluentDocker.Services.Extensions;
-using System.Diagnostics.CodeAnalysis;
-
-namespace WebApi.Tests.System;
-
-public abstract class ComposeService : IDisposable
-{
- public string ServiceName { get; init; }
- public string ServiceInternalPort { get; init; }
- public string ServiceInternalProtocol { get; init; }
- public string ServiceInternalPortAndProtocol => $"{ServiceInternalPort}/{ServiceInternalProtocol}";
-
- private readonly ICompositeService _dockerService;
- private readonly bool _isTestRunningInContainer;
-
- private IContainerService? _container;
- private bool _hasCheckedForContainer;
-
- ///
- /// Not null, if is true.
- ///
- public IContainerService? Container
- {
- get
- {
- if (_hasCheckedForContainer)
- {
- return _container;
- }
-
- _container ??= _dockerService.Containers.First(x => x.Name == ServiceName);
- _hasCheckedForContainer = true;
-
- return _container;
- }
- }
-
- [MemberNotNullWhen(returnValue: true, nameof(Container))]
- public bool ContainerExists => Container is not null;
-
- public ComposeService(
- ICompositeService dockerService,
- bool isTestRunningInContainer,
- string serviceName,
- string serviceInternalPort,
- string serviceInternalProtocol = "tcp")
- {
- _dockerService = dockerService;
- _isTestRunningInContainer = isTestRunningInContainer;
- ServiceName = serviceName;
- ServiceInternalPort = serviceInternalPort;
- ServiceInternalProtocol = serviceInternalProtocol;
- }
-
- public string? GetServiceUrl()
- {
- if (!ContainerExists)
- {
- return null;
- }
-
- return _isTestRunningInContainer
- ? GetServiceUrlWhenRunningInsideContainer()
- : GetUrlFromOutsideContainer(Container, ServiceInternalPortAndProtocol);
- }
-
- private string GetServiceUrlWhenRunningInsideContainer()
- {
- return $"http://{ServiceName}:{ServiceInternalPort}";
- }
-
- private static string GetUrlFromOutsideContainer(IContainerService container, string portAndProto)
- {
- var ipEndpoint = container.ToHostExposedEndpoint(portAndProto);
- return $"http://{ipEndpoint.Address}:{ipEndpoint.Port}";
- }
-
- protected virtual void Dispose(bool disposing)
- {
- if (disposing)
- {
- _container?.Dispose();
- }
- }
-
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-}
-
-public sealed class AppContainer : ComposeService
-{
- public AppContainer(ICompositeService dockerService, bool isTestRunningInContainer)
- : base(dockerService, isTestRunningInContainer, "app", "8080")
- {
- }
-}
-
-public sealed class LoginContainer : ComposeService
-{
- public LoginContainer(ICompositeService dockerService, bool isTestRunningInContainer)
- : base(dockerService, isTestRunningInContainer, "login", "8080")
- {
- }
-}
-
-
-public sealed class TestAppContainer : IDisposable
-{
- private IContainerService? _testApplicationContainer;
- private bool _hasCheckedForThisContainer;
- public IContainerService? Container
- {
- get
- {
- if (!_hasCheckedForThisContainer)
- {
- _testApplicationContainer = _dockerHost.GetRunningContainers()
- .FirstOrDefault(x => x.Id.StartsWith(Environment.MachineName));
-
- if (_testApplicationContainer is not null)
- {
- // If the test is running inside a container (i.e. usually in a pipeline), we do not want to mess with the container, just release the resources held by this program
- _testApplicationContainer.RemoveOnDispose = false;
- _testApplicationContainer.StopOnDispose = false;
- }
-
- _hasCheckedForThisContainer = true;
- }
-
- return _testApplicationContainer;
- }
- }
-
- private bool _hasCheckedIfTestRunInContainer;
- private bool _isTestRunningInContainer;
- public bool IsTestRunningInContainer
- {
- get
- {
- if (!_hasCheckedIfTestRunInContainer)
- {
- _isTestRunningInContainer = Container is not null;
- _hasCheckedIfTestRunInContainer = true;
- }
-
- return _isTestRunningInContainer;
- }
- }
-
-
- private readonly IHostService _dockerHost;
-
- public TestAppContainer(IHostService dockerHost)
- {
- _dockerHost = dockerHost;
- }
-
- public void Dispose()
- {
- _testApplicationContainer?.Dispose();
- }
-}
\ No newline at end of file
diff --git a/tests/WebApi.Tests.System/Constants.cs b/tests/WebApi.Tests.System/Constants.cs
deleted file mode 100644
index 4f05ff6..0000000
--- a/tests/WebApi.Tests.System/Constants.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace WebApi.Tests.System;
-
-public static class Constants
-{
- public static class Login
- {
- public const string ClientId = "vegasco";
- public const string ClientSecret = "siIgnkijkkIxeQ9BDNwnGGUb60S53QZh";
- public const string Username = "test.user";
- public const string Password = "T3sttest.";
- public const string Realm = "development";
- }
-}
\ No newline at end of file
diff --git a/tests/WebApi.Tests.System/DockerComposeFixture.cs b/tests/WebApi.Tests.System/DockerComposeFixture.cs
deleted file mode 100644
index 8922f73..0000000
--- a/tests/WebApi.Tests.System/DockerComposeFixture.cs
+++ /dev/null
@@ -1,301 +0,0 @@
-using Ductus.FluentDocker.Builders;
-using Ductus.FluentDocker.Extensions;
-using Ductus.FluentDocker.Model.Common;
-using Ductus.FluentDocker.Model.Compose;
-using Ductus.FluentDocker.Services;
-using Ductus.FluentDocker.Services.Extensions;
-
-namespace WebApi.Tests.System;
-
-public sealed class DockerComposeFixture : IDisposable
-{
- private const string ComposeFileName = "compose.system.yaml";
-
- private const string AppServiceName = "app";
- private const string AppServiceInternalPort = "8080";
- private const string AppServiceInternalPortAndProtocol = $"{AppServiceInternalPort}/tcp";
-
- private const string LoginServiceName = "login";
- private const string LoginServiceInternalPort = "8080";
- private const string LoginServiceInternalPortAndProtocol = $"{LoginServiceInternalPort}/tcp";
-
- private static readonly string ComposeFilePath = Path.GetFullPath(Path.Combine("../../..", ComposeFileName));
-
- private readonly ICompositeService _dockerService;
-
-
- private bool _hasCheckedForThisContainer;
- private bool _hasCheckedIfTestRunInContainer;
-
- private IHostService? _host;
-
- private bool _isTestRunningInContainer;
- private INetworkService? _networkService;
- private IContainerService? _testApplicationContainer;
-
- public DockerComposeFixture()
- {
- _dockerService = GetDockerComposeServices();
- _dockerService.Start();
- AttachDockerNetworksIfRunningInContainer();
- }
-
- private IContainerService? _appContainer;
- public IContainerService AppContainer
- {
- get
- {
- _appContainer ??= _dockerService.Containers.First(x => x.Name == AppServiceName);
- return _appContainer;
- }
- }
-
- private IContainerService? _loginContainer;
- public IContainerService LoginContainer
- {
- get
- {
- _loginContainer ??= _dockerService.Containers.First(x => x.Name == LoginServiceName);
- return _loginContainer;
- }
- }
-
- public IContainerService? TestApplicationContainer
- {
- get
- {
- if (!_hasCheckedForThisContainer)
- {
- _testApplicationContainer = DockerHost.GetRunningContainers()
- .FirstOrDefault(x => x.Id.StartsWith(Environment.MachineName));
-
- if (_testApplicationContainer is not null)
- {
- // If the test is running inside a container (i.e. usually in a pipeline), we do not want to mess with the container, just release the resources held by this program
- _testApplicationContainer.RemoveOnDispose = false;
- _testApplicationContainer.StopOnDispose = false;
- }
-
- _hasCheckedForThisContainer = true;
- }
-
- return _testApplicationContainer;
- }
- }
-
- public IHostService DockerHost
- {
- get
- {
- var hosts = new Hosts().Discover();
- _host = hosts.FirstOrDefault(x => x.IsNative) ??
- hosts.FirstOrDefault(x => x.Name == "default") ??
- hosts.FirstOrDefault();
-
- if (_host is null) throw new InvalidOperationException("No docker host found");
-
- return _host;
- }
- }
-
- public bool IsTestRunningInContainer
- {
- get
- {
- if (!_hasCheckedIfTestRunInContainer)
- {
- _isTestRunningInContainer = TestApplicationContainer is not null;
- _hasCheckedIfTestRunInContainer = true;
- }
-
- return _isTestRunningInContainer;
- }
- }
-
- public void Dispose()
- {
- _networkService?.Dispose();
-
- _testApplicationContainer?.Dispose();
- _appContainer?.Dispose();
- _loginContainer?.Dispose();
-
- // Kill container because otherwise the _dockerService.Dispose() takes much longer
- KillDockerComposeServices();
-
- _dockerService.Dispose();
-
- _host?.Dispose();
- }
-
- private ICompositeService GetDockerComposeServices()
- {
- var services = new Builder()
- .UseContainer()
- .UseCompose()
- .AssumeComposeVersion(ComposeVersion.V2)
- .FromFile((TemplateString)ComposeFilePath)
- .ForceBuild()
- .RemoveOrphans()
- .Wait("app", WaitForApplicationToListenToRequests)
- .Build();
-
- return services;
- }
-
- private int WaitForApplicationToListenToRequests(IContainerService container, int iteration)
- {
- const int maxTryCount = 15;
- ArgumentOutOfRangeException.ThrowIfGreaterThan(iteration, maxTryCount);
-
- var isStarted = container.Logs().ReadToEnd().Reverse().Any(x => x.Contains("Now listening on:"));
- return isStarted ? 0 : 500;
- }
-
- private void AttachDockerNetworksIfRunningInContainer()
- {
- if (!IsTestRunningInContainer) return;
-
- var randomNetworkName = Guid.NewGuid().ToString("N");
- _networkService = DockerHost.CreateNetwork(randomNetworkName, removeOnDispose: true);
-
- _networkService.Attach(AppContainer, true, AppServiceName);
- _networkService.Attach(TestApplicationContainer, true);
- }
-
- public string GetAppUrl()
- {
- return IsTestRunningInContainer
- ? GetAppUrlWhenRunningInsideContainer()
- : GetUrlFromOutsideContainer(AppContainer, AppServiceInternalPortAndProtocol);
- }
-
- private static string GetAppUrlWhenRunningInsideContainer()
- {
- return $"http://{AppServiceName}:{AppServiceInternalPort}";
- }
-
- public string GetLoginUrl()
- {
- return IsTestRunningInContainer
- ? GetLoginUrlWhenRunningInsideContainer()
- : GetUrlFromOutsideContainer(LoginContainer, LoginServiceInternalPortAndProtocol);
- }
-
- private static string GetLoginUrlWhenRunningInsideContainer()
- {
- return $"http://{LoginServiceName}:{LoginServiceInternalPort}";
- }
-
- private static string GetUrlFromOutsideContainer(IContainerService container, string portAndProto)
- {
- var ipEndpoint = container.ToHostExposedEndpoint(portAndProto);
- return $"http://{ipEndpoint.Address}:{ipEndpoint.Port}";
- }
-
- private void KillDockerComposeServices()
- {
- foreach (var container in _dockerService.Containers) container.Remove(true);
- }
-}
-
-
-public sealed class DockerComposeFixture2 : IDisposable
-{
- private const string ComposeFileName = "compose.system.yaml";
-
- private static readonly string ComposeFilePath = Path.GetFullPath(Path.Combine("../../..", ComposeFileName));
-
- private readonly ICompositeService _dockerService;
-
- private IHostService? _host;
-
- private INetworkService? _networkService;
-
- public AppContainer AppContainer { get; init; }
- public LoginContainer LoginContainer { get; init; }
- public TestAppContainer TestApplicationContainer { get; init; }
-
- public DockerComposeFixture2()
- {
- _dockerService = GetDockerComposeServices();
- _dockerService.Start();
-
- TestApplicationContainer = new TestAppContainer(DockerHost);
- AppContainer = new AppContainer(_dockerService, TestApplicationContainer.IsTestRunningInContainer);
- LoginContainer = new LoginContainer(_dockerService, TestApplicationContainer.IsTestRunningInContainer);
-
- AttachDockerNetworksIfRunningInContainer();
- }
-
- public IHostService DockerHost
- {
- get
- {
- var hosts = new Hosts().Discover();
- _host = hosts.FirstOrDefault(x => x.IsNative) ??
- hosts.FirstOrDefault(x => x.Name == "default") ??
- hosts.FirstOrDefault();
-
- if (_host is null) throw new InvalidOperationException("No docker host found");
-
- return _host;
- }
- }
-
- public void Dispose()
- {
- _networkService?.Dispose();
-
- TestApplicationContainer.Dispose();
- AppContainer.Dispose();
- LoginContainer.Dispose();
-
- // Kill container because otherwise the _dockerService.Dispose() takes much longer
- KillDockerComposeServices();
-
- _dockerService.Dispose();
-
- _host?.Dispose();
- }
-
- private ICompositeService GetDockerComposeServices()
- {
- var services = new Builder()
- .UseContainer()
- .UseCompose()
- .AssumeComposeVersion(ComposeVersion.V2)
- .FromFile((TemplateString)ComposeFilePath)
- .ForceBuild()
- .RemoveOrphans()
- .Wait("app", WaitForApplicationToListenToRequests)
- .Build();
-
- return services;
- }
-
- private int WaitForApplicationToListenToRequests(IContainerService container, int iteration)
- {
- const int maxTryCount = 15;
- ArgumentOutOfRangeException.ThrowIfGreaterThan(iteration, maxTryCount);
-
- var isStarted = container.Logs().ReadToEnd().Reverse().Any(x => x.Contains("Now listening on:"));
- return isStarted ? 0 : 500;
- }
-
- private void AttachDockerNetworksIfRunningInContainer()
- {
- if (!TestApplicationContainer.IsTestRunningInContainer) return;
-
- var randomNetworkName = Guid.NewGuid().ToString("N");
- _networkService = DockerHost.CreateNetwork(randomNetworkName, removeOnDispose: true);
-
- _networkService.Attach(AppContainer.Container!, true, AppContainer.ServiceName);
- _networkService.Attach(TestApplicationContainer.Container, true);
- }
-
- private void KillDockerComposeServices()
- {
- foreach (var container in _dockerService.Containers) container.Remove(true);
- }
-}
\ No newline at end of file
diff --git a/tests/WebApi.Tests.System/Dockerfile.keycloak b/tests/WebApi.Tests.System/Dockerfile.keycloak
deleted file mode 100644
index c71c02f..0000000
--- a/tests/WebApi.Tests.System/Dockerfile.keycloak
+++ /dev/null
@@ -1,8 +0,0 @@
-FROM registry.access.redhat.com/ubi9 AS ubi-micro-build
-RUN mkdir -p /mnt/rootfs
-RUN dnf install --installroot /mnt/rootfs curl --releasever 9 --setopt install_weak_deps=false --nodocs -y && \
- dnf --installroot /mnt/rootfs clean all && \
- rpm --root /mnt/rootfs -e --nodeps setup
-
-FROM quay.io/keycloak/keycloak
-COPY --from=ubi-micro-build /mnt/rootfs /
\ No newline at end of file
diff --git a/tests/WebApi.Tests.System/SharedTestCollection.cs b/tests/WebApi.Tests.System/SharedTestCollection.cs
deleted file mode 100644
index 94787b7..0000000
--- a/tests/WebApi.Tests.System/SharedTestCollection.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-namespace WebApi.Tests.System;
-
-[CollectionDefinition(Name)]
-public class SharedTestCollection : ICollectionFixture
-{
- public const string Name = nameof(SharedTestCollection);
-}
diff --git a/tests/WebApi.Tests.System/SharedTestContext.cs b/tests/WebApi.Tests.System/SharedTestContext.cs
deleted file mode 100644
index aca0b6d..0000000
--- a/tests/WebApi.Tests.System/SharedTestContext.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace WebApi.Tests.System;
-
-public sealed class SharedTestContext : IDisposable
-{
- public DockerComposeFixture2 DockerComposeFixture { get; set; } = new();
-
- public void Dispose()
- {
- DockerComposeFixture.Dispose();
- }
-}
diff --git a/tests/WebApi.Tests.System/Test.cs b/tests/WebApi.Tests.System/Test.cs
deleted file mode 100644
index 38aaf15..0000000
--- a/tests/WebApi.Tests.System/Test.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using System.Net.Http.Headers;
-using System.Text;
-using System.Text.Json;
-
-namespace WebApi.Tests.System;
-
-[Collection(SharedTestCollection.Name)]
-public class Test
-{
- private readonly SharedTestContext _context;
-
- public Test(SharedTestContext context)
- {
- _context = context;
- }
-
- //[Fact]
- public async Task Test1()
- {
- var loginUrl = _context.DockerComposeFixture.LoginContainer.GetServiceUrl();
- var baseUrl = new Uri(loginUrl!, UriKind.Absolute);
- var relativeUrl = new Uri($"/realms/{Constants.Login.Realm}/protocol/openid-connect/token", UriKind.Relative);
- var uri = new Uri(baseUrl, relativeUrl);
- var request = new HttpRequestMessage(HttpMethod.Post, uri);
-
- var data = new Dictionary
- {
- { "grant_type", "password" },
- { "audience", Constants.Login.ClientId },
- { "username", Constants.Login.Username },
- { "password", Constants.Login.Password }
- };
- request.Content = new FormUrlEncodedContent(data);
-
- request.Headers.Authorization = new AuthenticationHeaderValue("Basic",
- Convert.ToBase64String(Encoding.UTF8.GetBytes($"{Constants.Login.ClientId}:{Constants.Login.ClientSecret}")));
-
- using var client = new HttpClient();
- using var response = await client.SendAsync(request);
-
- var content = await response.Content.ReadAsStringAsync();
- var tokenResponse = JsonSerializer.Deserialize(content);
-
- var appUrl = _context.DockerComposeFixture.AppContainer.GetServiceUrl();
- baseUrl = new Uri(appUrl!, UriKind.Absolute);
- relativeUrl = new Uri("/v1/cars", UriKind.Relative);
- uri = new Uri(baseUrl, relativeUrl);
-
- request = new HttpRequestMessage(HttpMethod.Get, uri);
- request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", tokenResponse!.AccessToken);
-
- using var response2 = await client.SendAsync(request);
-
- var content2 = await response2.Content.ReadAsStringAsync();
-
- }
-}
\ No newline at end of file
diff --git a/tests/WebApi.Tests.System/TokenResponse.cs b/tests/WebApi.Tests.System/TokenResponse.cs
deleted file mode 100644
index 58b157a..0000000
--- a/tests/WebApi.Tests.System/TokenResponse.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System.Text.Json.Serialization;
-
-namespace WebApi.Tests.System;
-
-public class TokenResponse
-{
- [JsonPropertyName("access_token")]
- public required string AccessToken { get; init; }
-}
\ No newline at end of file
diff --git a/tests/WebApi.Tests.System/WebApi.Tests.System.csproj b/tests/WebApi.Tests.System/WebApi.Tests.System.csproj
deleted file mode 100644
index a49cc70..0000000
--- a/tests/WebApi.Tests.System/WebApi.Tests.System.csproj
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
- net9.0
- enable
- enable
-
- false
- true
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/WebApi.Tests.System/compose.system.yaml b/tests/WebApi.Tests.System/compose.system.yaml
deleted file mode 100644
index 9c15fa0..0000000
--- a/tests/WebApi.Tests.System/compose.system.yaml
+++ /dev/null
@@ -1,72 +0,0 @@
-services:
- app:
- build: ../../src/WebApi
- environment:
- Vegasco_ConnectionStrings__Default: "Host=db;Port=5432;Database=postgres;Username=postgres;Password=postgres"
- Vegasco_JWT__MetadataUrl: http://login:8080/realms/development/.well-known/openid-configuration
- Vegasco_JWT__ValidAudience: vegasco
- Vegasco_JWT__NameClaimType: name
- Vegasco_JWT__AllowHttpMetadataUrl: "true"
- ports:
- - "8080"
- depends_on:
- db:
- condition: service_healthy
- login:
- condition: service_healthy
-
- db:
- image: postgres:16.3-alpine
- environment:
- POSTGRES_USER: postgres
- POSTGRES_PASSWORD: postgres
- healthcheck:
- test: pg_isready -d postgres
- interval: 5s
- timeout: 2s
- retries: 3
- start_period: 5s
-
- login:
- build:
- context: .
- dockerfile: Dockerfile.keycloak
- command: start --import-realm
- environment:
- KC_DB: postgres
- KC_DB_URL_HOST: login-db
- KC_DB_URL_PORT: 5432
- KC_DB_URL_DATABASE: keycloak
- KC_DB_USERNAME: keycloak
- KC_DB_PASSWORD: keycloak
- KEYCLOAK_ADMIN: admin
- KEYCLOAK_ADMIN_PASSWORD: admin1!
- KC_HOSTNAME_STRICT: false
- KC_HEALTH_ENABLED: true
- KC_METRICS_ENABLED: true
- KC_HTTP_ENABLED: true
- ports:
- - "8080"
- volumes:
- - ./test-realm.json:/opt/keycloak/data/import/test-realm.json:ro
- depends_on:
- login-db:
- condition: service_healthy
- healthcheck:
- test: curl --head -fsS http://localhost:9000/health/ready || exit 1
- interval: 5s
- timeout: 2s
- retries: 6
- start_period: 5s
-
- login-db:
- image: postgres:16-alpine
- environment:
- POSTGRES_USER: keycloak
- POSTGRES_PASSWORD: keycloak
- healthcheck:
- test: pg_isready -d keycloak
- interval: 5s
- timeout: 2s
- retries: 3
- start_period: 5s
diff --git a/tests/WebApi.Tests.System/test-realm.json b/tests/WebApi.Tests.System/test-realm.json
deleted file mode 100644
index 46481f5..0000000
--- a/tests/WebApi.Tests.System/test-realm.json
+++ /dev/null
@@ -1,1960 +0,0 @@
-{
- "id" : "59058b68-b3dd-408a-a0cc-8be9ec080347",
- "realm" : "development",
- "notBefore" : 0,
- "defaultSignatureAlgorithm" : "RS256",
- "revokeRefreshToken" : false,
- "refreshTokenMaxReuse" : 0,
- "accessTokenLifespan" : 300,
- "accessTokenLifespanForImplicitFlow" : 900,
- "ssoSessionIdleTimeout" : 1800,
- "ssoSessionMaxLifespan" : 36000,
- "ssoSessionIdleTimeoutRememberMe" : 0,
- "ssoSessionMaxLifespanRememberMe" : 0,
- "offlineSessionIdleTimeout" : 2592000,
- "offlineSessionMaxLifespanEnabled" : false,
- "offlineSessionMaxLifespan" : 5184000,
- "clientSessionIdleTimeout" : 0,
- "clientSessionMaxLifespan" : 0,
- "clientOfflineSessionIdleTimeout" : 0,
- "clientOfflineSessionMaxLifespan" : 0,
- "accessCodeLifespan" : 60,
- "accessCodeLifespanUserAction" : 300,
- "accessCodeLifespanLogin" : 1800,
- "actionTokenGeneratedByAdminLifespan" : 43200,
- "actionTokenGeneratedByUserLifespan" : 300,
- "oauth2DeviceCodeLifespan" : 600,
- "oauth2DevicePollingInterval" : 5,
- "enabled" : true,
- "sslRequired" : "external",
- "registrationAllowed" : false,
- "registrationEmailAsUsername" : false,
- "rememberMe" : false,
- "verifyEmail" : false,
- "loginWithEmailAllowed" : true,
- "duplicateEmailsAllowed" : false,
- "resetPasswordAllowed" : false,
- "editUsernameAllowed" : false,
- "bruteForceProtected" : false,
- "permanentLockout" : false,
- "maxTemporaryLockouts" : 0,
- "maxFailureWaitSeconds" : 900,
- "minimumQuickLoginWaitSeconds" : 60,
- "waitIncrementSeconds" : 60,
- "quickLoginCheckMilliSeconds" : 1000,
- "maxDeltaTimeSeconds" : 43200,
- "failureFactor" : 30,
- "roles" : {
- "realm" : [ {
- "id" : "99223865-08d1-446f-986d-2fb8cff0730b",
- "name" : "offline_access",
- "description" : "${role_offline-access}",
- "composite" : false,
- "clientRole" : false,
- "containerId" : "59058b68-b3dd-408a-a0cc-8be9ec080347",
- "attributes" : { }
- }, {
- "id" : "f9f1c2d3-dd92-4527-82d1-5d4a9b2ced66",
- "name" : "default-roles-development",
- "description" : "${role_default-roles}",
- "composite" : true,
- "composites" : {
- "realm" : [ "offline_access", "uma_authorization" ],
- "client" : {
- "account" : [ "view-profile", "manage-account" ]
- }
- },
- "clientRole" : false,
- "containerId" : "59058b68-b3dd-408a-a0cc-8be9ec080347",
- "attributes" : { }
- }, {
- "id" : "8986fd0e-4c10-4fb7-a8f6-83e408c29e95",
- "name" : "uma_authorization",
- "description" : "${role_uma_authorization}",
- "composite" : false,
- "clientRole" : false,
- "containerId" : "59058b68-b3dd-408a-a0cc-8be9ec080347",
- "attributes" : { }
- } ],
- "client" : {
- "realm-management" : [ {
- "id" : "5964f7e7-3702-4499-b3f6-7aa1d3e80f11",
- "name" : "create-client",
- "description" : "${role_create-client}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "4f2daa75-e42b-41bb-aa10-22aa64936a93",
- "name" : "realm-admin",
- "description" : "${role_realm-admin}",
- "composite" : true,
- "composites" : {
- "client" : {
- "realm-management" : [ "create-client", "manage-authorization", "manage-users", "view-authorization", "view-users", "manage-identity-providers", "impersonation", "manage-realm", "view-realm", "query-users", "manage-events", "query-clients", "query-groups", "manage-clients", "view-clients", "view-identity-providers", "query-realms", "view-events" ]
- }
- },
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "f64e7de4-fc10-491c-8f7f-817b70c53cbc",
- "name" : "manage-authorization",
- "description" : "${role_manage-authorization}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "64bdb656-58fc-4059-83f5-6af88e0d2d94",
- "name" : "manage-users",
- "description" : "${role_manage-users}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "9acf79b8-6026-426a-b788-078833c96046",
- "name" : "view-authorization",
- "description" : "${role_view-authorization}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "00172343-72d7-46f8-b1bb-30c98d062335",
- "name" : "view-users",
- "description" : "${role_view-users}",
- "composite" : true,
- "composites" : {
- "client" : {
- "realm-management" : [ "query-users", "query-groups" ]
- }
- },
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "aaf57855-d18e-4ebf-a89f-8479d6584c78",
- "name" : "manage-identity-providers",
- "description" : "${role_manage-identity-providers}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "843a9a47-a4d6-46b7-bd15-56134419df36",
- "name" : "impersonation",
- "description" : "${role_impersonation}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "83d6dabe-adf4-4921-b84f-0cb6d67c8524",
- "name" : "manage-realm",
- "description" : "${role_manage-realm}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "4f8fbeb9-2150-48d3-9ff0-fadb9f952dec",
- "name" : "view-realm",
- "description" : "${role_view-realm}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "da835590-2ff2-47a3-8eda-9ddd27f1f55e",
- "name" : "query-users",
- "description" : "${role_query-users}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "9dd8eac9-f0b8-47eb-aa16-fdbcb716ffa8",
- "name" : "manage-events",
- "description" : "${role_manage-events}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "7fdafa52-5875-4f1c-bc2f-bcfe56214329",
- "name" : "query-clients",
- "description" : "${role_query-clients}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "9d4ecec1-6b73-42dc-a7ec-fc9b89e35cec",
- "name" : "query-groups",
- "description" : "${role_query-groups}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "125ca24f-fde8-4340-9c59-ff8b605a89e6",
- "name" : "manage-clients",
- "description" : "${role_manage-clients}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "7a45ba95-b3e3-4b84-a1d4-1b725a182667",
- "name" : "view-clients",
- "description" : "${role_view-clients}",
- "composite" : true,
- "composites" : {
- "client" : {
- "realm-management" : [ "query-clients" ]
- }
- },
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "ecf9933f-de72-4917-8553-7e18332d217d",
- "name" : "view-identity-providers",
- "description" : "${role_view-identity-providers}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "c51ed824-8455-4584-883e-135d9af5ee4b",
- "name" : "query-realms",
- "description" : "${role_query-realms}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- }, {
- "id" : "5c72a2e9-bc45-4ae0-a5cf-d09e70c1b61c",
- "name" : "view-events",
- "description" : "${role_view-events}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "attributes" : { }
- } ],
- "vegasco" : [ ],
- "security-admin-console" : [ ],
- "admin-cli" : [ ],
- "account-console" : [ ],
- "broker" : [ {
- "id" : "386764da-c0c3-46c8-ae18-518eff6b6b84",
- "name" : "read-token",
- "description" : "${role_read-token}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "1f8df246-a2f8-4f21-8c20-eda7dcdae2b6",
- "attributes" : { }
- } ],
- "account" : [ {
- "id" : "c6e146aa-1a5c-4fcc-9a65-7033c5ec1c95",
- "name" : "manage-account-links",
- "description" : "${role_manage-account-links}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "cc404b9b-7c8d-49f9-a299-f1bd4477193f",
- "attributes" : { }
- }, {
- "id" : "3141a4ac-31b6-4eb4-9b13-29ea1317b721",
- "name" : "manage-consent",
- "description" : "${role_manage-consent}",
- "composite" : true,
- "composites" : {
- "client" : {
- "account" : [ "view-consent" ]
- }
- },
- "clientRole" : true,
- "containerId" : "cc404b9b-7c8d-49f9-a299-f1bd4477193f",
- "attributes" : { }
- }, {
- "id" : "7f7e8345-2e96-40af-94c8-f1b4e3d0314a",
- "name" : "view-profile",
- "description" : "${role_view-profile}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "cc404b9b-7c8d-49f9-a299-f1bd4477193f",
- "attributes" : { }
- }, {
- "id" : "18e3cd14-4705-4f5d-ab70-c368cab6434e",
- "name" : "delete-account",
- "description" : "${role_delete-account}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "cc404b9b-7c8d-49f9-a299-f1bd4477193f",
- "attributes" : { }
- }, {
- "id" : "68a0330a-0c0a-480c-80b4-2d7a11905741",
- "name" : "view-groups",
- "description" : "${role_view-groups}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "cc404b9b-7c8d-49f9-a299-f1bd4477193f",
- "attributes" : { }
- }, {
- "id" : "7ee101f9-fab5-4cf2-ab0c-f8d8b2eea394",
- "name" : "manage-account",
- "description" : "${role_manage-account}",
- "composite" : true,
- "composites" : {
- "client" : {
- "account" : [ "manage-account-links" ]
- }
- },
- "clientRole" : true,
- "containerId" : "cc404b9b-7c8d-49f9-a299-f1bd4477193f",
- "attributes" : { }
- }, {
- "id" : "c0b24a71-4f3c-4ed1-9eee-84e3cbba9adb",
- "name" : "view-consent",
- "description" : "${role_view-consent}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "cc404b9b-7c8d-49f9-a299-f1bd4477193f",
- "attributes" : { }
- }, {
- "id" : "e06cb945-b1d9-4013-ba54-c5e72ad08d65",
- "name" : "view-applications",
- "description" : "${role_view-applications}",
- "composite" : false,
- "clientRole" : true,
- "containerId" : "cc404b9b-7c8d-49f9-a299-f1bd4477193f",
- "attributes" : { }
- } ]
- }
- },
- "groups" : [ ],
- "defaultRole" : {
- "id" : "f9f1c2d3-dd92-4527-82d1-5d4a9b2ced66",
- "name" : "default-roles-development",
- "description" : "${role_default-roles}",
- "composite" : true,
- "clientRole" : false,
- "containerId" : "59058b68-b3dd-408a-a0cc-8be9ec080347"
- },
- "requiredCredentials" : [ "password" ],
- "otpPolicyType" : "totp",
- "otpPolicyAlgorithm" : "HmacSHA1",
- "otpPolicyInitialCounter" : 0,
- "otpPolicyDigits" : 6,
- "otpPolicyLookAheadWindow" : 1,
- "otpPolicyPeriod" : 30,
- "otpPolicyCodeReusable" : false,
- "otpSupportedApplications" : [ "totpAppFreeOTPName", "totpAppGoogleName", "totpAppMicrosoftAuthenticatorName" ],
- "localizationTexts" : { },
- "webAuthnPolicyRpEntityName" : "keycloak",
- "webAuthnPolicySignatureAlgorithms" : [ "ES256" ],
- "webAuthnPolicyRpId" : "",
- "webAuthnPolicyAttestationConveyancePreference" : "not specified",
- "webAuthnPolicyAuthenticatorAttachment" : "not specified",
- "webAuthnPolicyRequireResidentKey" : "not specified",
- "webAuthnPolicyUserVerificationRequirement" : "not specified",
- "webAuthnPolicyCreateTimeout" : 0,
- "webAuthnPolicyAvoidSameAuthenticatorRegister" : false,
- "webAuthnPolicyAcceptableAaguids" : [ ],
- "webAuthnPolicyExtraOrigins" : [ ],
- "webAuthnPolicyPasswordlessRpEntityName" : "keycloak",
- "webAuthnPolicyPasswordlessSignatureAlgorithms" : [ "ES256" ],
- "webAuthnPolicyPasswordlessRpId" : "",
- "webAuthnPolicyPasswordlessAttestationConveyancePreference" : "not specified",
- "webAuthnPolicyPasswordlessAuthenticatorAttachment" : "not specified",
- "webAuthnPolicyPasswordlessRequireResidentKey" : "not specified",
- "webAuthnPolicyPasswordlessUserVerificationRequirement" : "not specified",
- "webAuthnPolicyPasswordlessCreateTimeout" : 0,
- "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister" : false,
- "webAuthnPolicyPasswordlessAcceptableAaguids" : [ ],
- "webAuthnPolicyPasswordlessExtraOrigins" : [ ],
- "users" : [ {
- "id" : "c5404b32-c20e-4af1-859b-18e2df6998a2",
- "username" : "test.user",
- "firstName" : "test",
- "lastName" : "user",
- "email" : "test.user@example.com",
- "emailVerified" : true,
- "createdTimestamp" : 1722885095042,
- "enabled" : true,
- "totp" : false,
- "credentials" : [ {
- "id" : "55a67bcf-b7df-4e10-840c-8cedc2e263af",
- "type" : "password",
- "createdDate" : 1722885095911,
- "secretData" : "{\"value\":\"A9/c6FWaGkk7fC9qQmiiH3FlFFpWBjg9ZSvgnJIkd68=\",\"salt\":\"ec93soiRD3MWjohp8XWxfw==\",\"additionalParameters\":{}}",
- "credentialData" : "{\"hashIterations\":5,\"algorithm\":\"argon2\",\"additionalParameters\":{\"hashLength\":[\"32\"],\"memory\":[\"7168\"],\"type\":[\"id\"],\"version\":[\"1.3\"],\"parallelism\":[\"1\"]}}"
- } ],
- "disableableCredentialTypes" : [ ],
- "requiredActions" : [ ],
- "realmRoles" : [ "default-roles-development" ],
- "notBefore" : 0,
- "groups" : [ ]
- } ],
- "scopeMappings" : [ {
- "clientScope" : "offline_access",
- "roles" : [ "offline_access" ]
- } ],
- "clientScopeMappings" : {
- "account" : [ {
- "client" : "account-console",
- "roles" : [ "manage-account", "view-groups" ]
- } ]
- },
- "clients" : [ {
- "id" : "cc404b9b-7c8d-49f9-a299-f1bd4477193f",
- "clientId" : "account",
- "name" : "${client_account}",
- "rootUrl" : "${authBaseUrl}",
- "baseUrl" : "/realms/development/account/",
- "surrogateAuthRequired" : false,
- "enabled" : true,
- "alwaysDisplayInConsole" : false,
- "clientAuthenticatorType" : "client-secret",
- "redirectUris" : [ "/realms/development/account/*" ],
- "webOrigins" : [ ],
- "notBefore" : 0,
- "bearerOnly" : false,
- "consentRequired" : false,
- "standardFlowEnabled" : true,
- "implicitFlowEnabled" : false,
- "directAccessGrantsEnabled" : false,
- "serviceAccountsEnabled" : false,
- "publicClient" : true,
- "frontchannelLogout" : false,
- "protocol" : "openid-connect",
- "attributes" : {
- "post.logout.redirect.uris" : "+"
- },
- "authenticationFlowBindingOverrides" : { },
- "fullScopeAllowed" : false,
- "nodeReRegistrationTimeout" : 0,
- "protocolMappers" : [ {
- "id" : "422b7172-a668-43e2-a00b-3f153793e4a1",
- "name" : "docker-v2-allow-all-mapper",
- "protocol" : "docker-v2",
- "protocolMapper" : "docker-v2-allow-all-mapper",
- "consentRequired" : false,
- "config" : { }
- } ],
- "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "basic", "email" ],
- "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
- }, {
- "id" : "7c4aaabb-f092-4ace-9bc8-6f728336cf26",
- "clientId" : "account-console",
- "name" : "${client_account-console}",
- "rootUrl" : "${authBaseUrl}",
- "baseUrl" : "/realms/development/account/",
- "surrogateAuthRequired" : false,
- "enabled" : true,
- "alwaysDisplayInConsole" : false,
- "clientAuthenticatorType" : "client-secret",
- "redirectUris" : [ "/realms/development/account/*" ],
- "webOrigins" : [ ],
- "notBefore" : 0,
- "bearerOnly" : false,
- "consentRequired" : false,
- "standardFlowEnabled" : true,
- "implicitFlowEnabled" : false,
- "directAccessGrantsEnabled" : false,
- "serviceAccountsEnabled" : false,
- "publicClient" : true,
- "frontchannelLogout" : false,
- "protocol" : "openid-connect",
- "attributes" : {
- "post.logout.redirect.uris" : "+",
- "pkce.code.challenge.method" : "S256"
- },
- "authenticationFlowBindingOverrides" : { },
- "fullScopeAllowed" : false,
- "nodeReRegistrationTimeout" : 0,
- "protocolMappers" : [ {
- "id" : "a6215df7-0c5e-4347-ba79-4df4fb588b06",
- "name" : "docker-v2-allow-all-mapper",
- "protocol" : "docker-v2",
- "protocolMapper" : "docker-v2-allow-all-mapper",
- "consentRequired" : false,
- "config" : { }
- }, {
- "id" : "5a0023ed-d354-4c0d-b8c6-a3eeada27299",
- "name" : "audience resolve",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-audience-resolve-mapper",
- "consentRequired" : false,
- "config" : { }
- } ],
- "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "basic", "email" ],
- "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
- }, {
- "id" : "2cbd4c50-560a-4a30-8dd8-ce69000ad431",
- "clientId" : "admin-cli",
- "name" : "${client_admin-cli}",
- "surrogateAuthRequired" : false,
- "enabled" : true,
- "alwaysDisplayInConsole" : false,
- "clientAuthenticatorType" : "client-secret",
- "redirectUris" : [ ],
- "webOrigins" : [ ],
- "notBefore" : 0,
- "bearerOnly" : false,
- "consentRequired" : false,
- "standardFlowEnabled" : false,
- "implicitFlowEnabled" : false,
- "directAccessGrantsEnabled" : true,
- "serviceAccountsEnabled" : false,
- "publicClient" : true,
- "frontchannelLogout" : false,
- "protocol" : "openid-connect",
- "attributes" : {
- "post.logout.redirect.uris" : "+"
- },
- "authenticationFlowBindingOverrides" : { },
- "fullScopeAllowed" : false,
- "nodeReRegistrationTimeout" : 0,
- "protocolMappers" : [ {
- "id" : "a3476370-00d3-44f5-882f-6bf8cdcf64c5",
- "name" : "docker-v2-allow-all-mapper",
- "protocol" : "docker-v2",
- "protocolMapper" : "docker-v2-allow-all-mapper",
- "consentRequired" : false,
- "config" : { }
- } ],
- "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "basic", "email" ],
- "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
- }, {
- "id" : "1f8df246-a2f8-4f21-8c20-eda7dcdae2b6",
- "clientId" : "broker",
- "name" : "${client_broker}",
- "surrogateAuthRequired" : false,
- "enabled" : true,
- "alwaysDisplayInConsole" : false,
- "clientAuthenticatorType" : "client-secret",
- "redirectUris" : [ ],
- "webOrigins" : [ ],
- "notBefore" : 0,
- "bearerOnly" : true,
- "consentRequired" : false,
- "standardFlowEnabled" : true,
- "implicitFlowEnabled" : false,
- "directAccessGrantsEnabled" : false,
- "serviceAccountsEnabled" : false,
- "publicClient" : false,
- "frontchannelLogout" : false,
- "protocol" : "openid-connect",
- "attributes" : {
- "post.logout.redirect.uris" : "+"
- },
- "authenticationFlowBindingOverrides" : { },
- "fullScopeAllowed" : false,
- "nodeReRegistrationTimeout" : 0,
- "protocolMappers" : [ {
- "id" : "ad293b7e-096d-48a0-9ac9-27e357f50bdb",
- "name" : "docker-v2-allow-all-mapper",
- "protocol" : "docker-v2",
- "protocolMapper" : "docker-v2-allow-all-mapper",
- "consentRequired" : false,
- "config" : { }
- } ],
- "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "basic", "email" ],
- "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
- }, {
- "id" : "beea0490-5673-465b-8bd9-2bb7dd546429",
- "clientId" : "realm-management",
- "name" : "${client_realm-management}",
- "surrogateAuthRequired" : false,
- "enabled" : true,
- "alwaysDisplayInConsole" : false,
- "clientAuthenticatorType" : "client-secret",
- "redirectUris" : [ ],
- "webOrigins" : [ ],
- "notBefore" : 0,
- "bearerOnly" : true,
- "consentRequired" : false,
- "standardFlowEnabled" : true,
- "implicitFlowEnabled" : false,
- "directAccessGrantsEnabled" : false,
- "serviceAccountsEnabled" : false,
- "publicClient" : false,
- "frontchannelLogout" : false,
- "protocol" : "openid-connect",
- "attributes" : {
- "post.logout.redirect.uris" : "+"
- },
- "authenticationFlowBindingOverrides" : { },
- "fullScopeAllowed" : false,
- "nodeReRegistrationTimeout" : 0,
- "protocolMappers" : [ {
- "id" : "de0cbd5d-29f7-49e8-8f72-dccbea133782",
- "name" : "docker-v2-allow-all-mapper",
- "protocol" : "docker-v2",
- "protocolMapper" : "docker-v2-allow-all-mapper",
- "consentRequired" : false,
- "config" : { }
- } ],
- "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "basic", "email" ],
- "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
- }, {
- "id" : "c8e21e7a-7616-4309-9061-793ffda8936a",
- "clientId" : "security-admin-console",
- "name" : "${client_security-admin-console}",
- "rootUrl" : "${authAdminUrl}",
- "baseUrl" : "/admin/development/console/",
- "surrogateAuthRequired" : false,
- "enabled" : true,
- "alwaysDisplayInConsole" : false,
- "clientAuthenticatorType" : "client-secret",
- "redirectUris" : [ "/admin/development/console/*" ],
- "webOrigins" : [ "+" ],
- "notBefore" : 0,
- "bearerOnly" : false,
- "consentRequired" : false,
- "standardFlowEnabled" : true,
- "implicitFlowEnabled" : false,
- "directAccessGrantsEnabled" : false,
- "serviceAccountsEnabled" : false,
- "publicClient" : true,
- "frontchannelLogout" : false,
- "protocol" : "openid-connect",
- "attributes" : {
- "post.logout.redirect.uris" : "+",
- "pkce.code.challenge.method" : "S256"
- },
- "authenticationFlowBindingOverrides" : { },
- "fullScopeAllowed" : false,
- "nodeReRegistrationTimeout" : 0,
- "protocolMappers" : [ {
- "id" : "f2f24f2c-7f00-4c1b-862c-a1d821965330",
- "name" : "locale",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "locale",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "locale",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "14db6a94-fd3f-40b2-95a2-139e329e51cf",
- "name" : "docker-v2-allow-all-mapper",
- "protocol" : "docker-v2",
- "protocolMapper" : "docker-v2-allow-all-mapper",
- "consentRequired" : false,
- "config" : { }
- } ],
- "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "basic", "email" ],
- "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
- }, {
- "id" : "d6877a14-f114-453c-a88c-dbe2472e4ed8",
- "clientId" : "vegasco",
- "name" : "Vegasco",
- "description" : "",
- "rootUrl" : "http://localhost/",
- "adminUrl" : "",
- "baseUrl" : "",
- "surrogateAuthRequired" : false,
- "enabled" : true,
- "alwaysDisplayInConsole" : false,
- "clientAuthenticatorType" : "client-secret",
- "secret" : "siIgnkijkkIxeQ9BDNwnGGUb60S53QZh",
- "redirectUris" : [ "*" ],
- "webOrigins" : [ ],
- "notBefore" : 0,
- "bearerOnly" : false,
- "consentRequired" : false,
- "standardFlowEnabled" : true,
- "implicitFlowEnabled" : false,
- "directAccessGrantsEnabled" : true,
- "serviceAccountsEnabled" : false,
- "publicClient" : false,
- "frontchannelLogout" : true,
- "protocol" : "openid-connect",
- "attributes" : {
- "oidc.ciba.grant.enabled" : "false",
- "client.secret.creation.time" : "1723219692",
- "backchannel.logout.session.required" : "true",
- "post.logout.redirect.uris" : "*",
- "display.on.consent.screen" : "false",
- "oauth2.device.authorization.grant.enabled" : "false",
- "backchannel.logout.revoke.offline.tokens" : "false"
- },
- "authenticationFlowBindingOverrides" : { },
- "fullScopeAllowed" : false,
- "nodeReRegistrationTimeout" : -1,
- "protocolMappers" : [ {
- "id" : "514219d4-0807-44c2-90e8-310634357c0e",
- "name" : "Vegasco_Audience_Mapper",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-audience-mapper",
- "consentRequired" : false,
- "config" : {
- "included.client.audience" : "vegasco",
- "id.token.claim" : "false",
- "lightweight.claim" : "false",
- "introspection.token.claim" : "true",
- "access.token.claim" : "true",
- "userinfo.token.claim" : "false"
- }
- }, {
- "id" : "de5204df-ee72-4105-9640-cc01ddf08b18",
- "name" : "docker-v2-allow-all-mapper",
- "protocol" : "docker-v2",
- "protocolMapper" : "docker-v2-allow-all-mapper",
- "consentRequired" : false,
- "config" : { }
- } ],
- "defaultClientScopes" : [ "web-origins", "acr", "roles", "profile", "basic", "email" ],
- "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
- } ],
- "clientScopes" : [ {
- "id" : "029c8cc4-a0b9-4c90-9f5f-63a408c7ee49",
- "name" : "offline_access",
- "description" : "OpenID Connect built-in scope: offline_access",
- "protocol" : "openid-connect",
- "attributes" : {
- "consent.screen.text" : "${offlineAccessScopeConsentText}",
- "display.on.consent.screen" : "true"
- }
- }, {
- "id" : "daf886da-43dc-424d-a089-bb564085b128",
- "name" : "roles",
- "description" : "OpenID Connect scope for add user roles to the access token",
- "protocol" : "openid-connect",
- "attributes" : {
- "include.in.token.scope" : "false",
- "consent.screen.text" : "${rolesScopeConsentText}",
- "display.on.consent.screen" : "true"
- },
- "protocolMappers" : [ {
- "id" : "485ebff8-7f64-444a-aa59-446ab3e02c20",
- "name" : "audience resolve",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-audience-resolve-mapper",
- "consentRequired" : false,
- "config" : {
- "access.token.claim" : "true",
- "introspection.token.claim" : "true"
- }
- }, {
- "id" : "7e276de2-892a-457e-8437-0fa8d9029549",
- "name" : "client roles",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-client-role-mapper",
- "consentRequired" : false,
- "config" : {
- "user.attribute" : "foo",
- "introspection.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "resource_access.${client_id}.roles",
- "jsonType.label" : "String",
- "multivalued" : "true"
- }
- }, {
- "id" : "35b0b4fb-9f6d-4695-9cf6-c2fc99581d4c",
- "name" : "realm roles",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-realm-role-mapper",
- "consentRequired" : false,
- "config" : {
- "user.attribute" : "foo",
- "introspection.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "realm_access.roles",
- "jsonType.label" : "String",
- "multivalued" : "true"
- }
- } ]
- }, {
- "id" : "167dfb37-d340-4fe9-ae50-6e7cbaac4f31",
- "name" : "acr",
- "description" : "OpenID Connect scope for add acr (authentication context class reference) to the token",
- "protocol" : "openid-connect",
- "attributes" : {
- "include.in.token.scope" : "false",
- "display.on.consent.screen" : "false"
- },
- "protocolMappers" : [ {
- "id" : "09fc2f1e-8c67-44f8-b9fd-a837db569332",
- "name" : "acr loa level",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-acr-mapper",
- "consentRequired" : false,
- "config" : {
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true"
- }
- } ]
- }, {
- "id" : "c79fc776-2b2d-43d6-b12c-f57262311b6a",
- "name" : "profile",
- "description" : "OpenID Connect built-in scope: profile",
- "protocol" : "openid-connect",
- "attributes" : {
- "include.in.token.scope" : "true",
- "consent.screen.text" : "${profileScopeConsentText}",
- "display.on.consent.screen" : "true"
- },
- "protocolMappers" : [ {
- "id" : "2cd6cd74-4a6a-4221-adc6-804b7227e1e5",
- "name" : "birthdate",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "birthdate",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "birthdate",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "0f7d36bb-7540-4063-8dcc-26c6408f6d94",
- "name" : "nickname",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "nickname",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "nickname",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "ce756133-7f49-43e9-8b32-ca358eddf877",
- "name" : "profile",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "profile",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "profile",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "1729b872-9632-4f52-8726-8d5a8e77d2ca",
- "name" : "middle name",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "middleName",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "middle_name",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "4db87e96-0bfd-4f05-91d1-ca675db6f74e",
- "name" : "website",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "website",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "website",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "0c589f3d-02ae-4584-b5d2-95c18c2c93be",
- "name" : "gender",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "gender",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "gender",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "985d5281-c952-47df-8ed4-6e34ba87e518",
- "name" : "picture",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "picture",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "picture",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "cd7d78c6-7eaa-4b92-8d70-d077d4bcee6c",
- "name" : "family name",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "lastName",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "family_name",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "5a0fd3a1-ab3a-4428-bb7c-de529a1021dc",
- "name" : "updated at",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "updatedAt",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "updated_at",
- "jsonType.label" : "long"
- }
- }, {
- "id" : "7303fd26-77bc-45d6-8810-27e22706d3ff",
- "name" : "given name",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "firstName",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "given_name",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "1b9ef4aa-bd49-444c-9ba0-aa2178237beb",
- "name" : "full name",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-full-name-mapper",
- "consentRequired" : false,
- "config" : {
- "id.token.claim" : "true",
- "introspection.token.claim" : "true",
- "access.token.claim" : "true",
- "userinfo.token.claim" : "true"
- }
- }, {
- "id" : "aba2eec9-c04b-453a-95b7-001700e91eed",
- "name" : "username",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "username",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "preferred_username",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "cd17207d-9f14-4c36-991d-55eb4ef2825e",
- "name" : "zoneinfo",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "zoneinfo",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "zoneinfo",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "4aa38a97-aaaf-49bc-9f50-4b6c85bf8051",
- "name" : "locale",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "locale",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "locale",
- "jsonType.label" : "String"
- }
- } ]
- }, {
- "id" : "90531319-c512-4266-9a2c-39ca2d6c4d19",
- "name" : "email",
- "description" : "OpenID Connect built-in scope: email",
- "protocol" : "openid-connect",
- "attributes" : {
- "include.in.token.scope" : "true",
- "consent.screen.text" : "${emailScopeConsentText}",
- "display.on.consent.screen" : "true"
- },
- "protocolMappers" : [ {
- "id" : "3e138a1b-7dbf-4ac2-a8b4-300a0951ccb3",
- "name" : "email verified",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-property-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "emailVerified",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "email_verified",
- "jsonType.label" : "boolean"
- }
- }, {
- "id" : "e50753c5-bfc5-400f-87b8-be7be8c23a87",
- "name" : "email",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "email",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "email",
- "jsonType.label" : "String"
- }
- } ]
- }, {
- "id" : "26fc7ca8-3561-4b0f-a79e-e983ffac13c0",
- "name" : "phone",
- "description" : "OpenID Connect built-in scope: phone",
- "protocol" : "openid-connect",
- "attributes" : {
- "include.in.token.scope" : "true",
- "consent.screen.text" : "${phoneScopeConsentText}",
- "display.on.consent.screen" : "true"
- },
- "protocolMappers" : [ {
- "id" : "5afe3ea6-523f-4619-bafa-02c8516af419",
- "name" : "phone number verified",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "phoneNumberVerified",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "phone_number_verified",
- "jsonType.label" : "boolean"
- }
- }, {
- "id" : "7ce91fbe-4392-4126-a0df-18a6fb19c461",
- "name" : "phone number",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "phoneNumber",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "phone_number",
- "jsonType.label" : "String"
- }
- } ]
- }, {
- "id" : "bfc650b4-2065-47df-807d-bd0efdb59a84",
- "name" : "web-origins",
- "description" : "OpenID Connect scope for add allowed web origins to the access token",
- "protocol" : "openid-connect",
- "attributes" : {
- "include.in.token.scope" : "false",
- "consent.screen.text" : "",
- "display.on.consent.screen" : "false"
- },
- "protocolMappers" : [ {
- "id" : "ebafee7b-5762-45ff-8054-fad86428a70e",
- "name" : "allowed web origins",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-allowed-origins-mapper",
- "consentRequired" : false,
- "config" : {
- "access.token.claim" : "true",
- "introspection.token.claim" : "true"
- }
- } ]
- }, {
- "id" : "1ef07288-a201-466e-ad80-a1160ec4d84c",
- "name" : "basic",
- "description" : "OpenID Connect scope for add all basic claims to the token",
- "protocol" : "openid-connect",
- "attributes" : {
- "include.in.token.scope" : "false",
- "display.on.consent.screen" : "false"
- },
- "protocolMappers" : [ {
- "id" : "264e35b8-e5c6-4607-a412-a4b021ade86d",
- "name" : "auth_time",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usersessionmodel-note-mapper",
- "consentRequired" : false,
- "config" : {
- "user.session.note" : "AUTH_TIME",
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "auth_time",
- "jsonType.label" : "long"
- }
- }, {
- "id" : "e2d85430-984e-4933-ab8a-095018599676",
- "name" : "sub",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-sub-mapper",
- "consentRequired" : false,
- "config" : {
- "access.token.claim" : "true",
- "introspection.token.claim" : "true"
- }
- } ]
- }, {
- "id" : "c2825d61-d98b-4200-9b7c-699635e4822e",
- "name" : "microprofile-jwt",
- "description" : "Microprofile - JWT built-in scope",
- "protocol" : "openid-connect",
- "attributes" : {
- "include.in.token.scope" : "true",
- "display.on.consent.screen" : "false"
- },
- "protocolMappers" : [ {
- "id" : "02aef283-5cf6-4a5b-8879-0973efd8dd01",
- "name" : "groups",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-realm-role-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "multivalued" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "foo",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "groups",
- "jsonType.label" : "String"
- }
- }, {
- "id" : "8938588f-e269-49c2-ad52-afe54224cdaf",
- "name" : "upn",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-usermodel-attribute-mapper",
- "consentRequired" : false,
- "config" : {
- "introspection.token.claim" : "true",
- "userinfo.token.claim" : "true",
- "user.attribute" : "username",
- "id.token.claim" : "true",
- "access.token.claim" : "true",
- "claim.name" : "upn",
- "jsonType.label" : "String"
- }
- } ]
- }, {
- "id" : "bfee5f0c-7b97-4569-bf06-942e6865e14c",
- "name" : "role_list",
- "description" : "SAML role list",
- "protocol" : "saml",
- "attributes" : {
- "consent.screen.text" : "${samlRoleListScopeConsentText}",
- "display.on.consent.screen" : "true"
- },
- "protocolMappers" : [ {
- "id" : "09dddeb4-9b2f-45b4-8c60-3c1d62e64d75",
- "name" : "role list",
- "protocol" : "saml",
- "protocolMapper" : "saml-role-list-mapper",
- "consentRequired" : false,
- "config" : {
- "single" : "false",
- "attribute.nameformat" : "Basic",
- "attribute.name" : "Role"
- }
- } ]
- }, {
- "id" : "773e90cb-bad8-438b-98c5-0174c799a37a",
- "name" : "address",
- "description" : "OpenID Connect built-in scope: address",
- "protocol" : "openid-connect",
- "attributes" : {
- "include.in.token.scope" : "true",
- "consent.screen.text" : "${addressScopeConsentText}",
- "display.on.consent.screen" : "true"
- },
- "protocolMappers" : [ {
- "id" : "94842824-7c55-4576-ab27-e03079620f39",
- "name" : "address",
- "protocol" : "openid-connect",
- "protocolMapper" : "oidc-address-mapper",
- "consentRequired" : false,
- "config" : {
- "user.attribute.formatted" : "formatted",
- "user.attribute.country" : "country",
- "introspection.token.claim" : "true",
- "user.attribute.postal_code" : "postal_code",
- "userinfo.token.claim" : "true",
- "user.attribute.street" : "street",
- "id.token.claim" : "true",
- "user.attribute.region" : "region",
- "access.token.claim" : "true",
- "user.attribute.locality" : "locality"
- }
- } ]
- } ],
- "defaultDefaultClientScopes" : [ "role_list", "profile", "email", "roles", "web-origins", "acr", "basic" ],
- "defaultOptionalClientScopes" : [ "offline_access", "address", "phone", "microprofile-jwt" ],
- "browserSecurityHeaders" : {
- "contentSecurityPolicyReportOnly" : "",
- "xContentTypeOptions" : "nosniff",
- "referrerPolicy" : "no-referrer",
- "xRobotsTag" : "none",
- "xFrameOptions" : "SAMEORIGIN",
- "contentSecurityPolicy" : "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
- "xXSSProtection" : "1; mode=block",
- "strictTransportSecurity" : "max-age=31536000; includeSubDomains"
- },
- "smtpServer" : { },
- "eventsEnabled" : false,
- "eventsListeners" : [ "jboss-logging" ],
- "enabledEventTypes" : [ ],
- "adminEventsEnabled" : false,
- "adminEventsDetailsEnabled" : false,
- "identityProviders" : [ ],
- "identityProviderMappers" : [ ],
- "components" : {
- "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy" : [ {
- "id" : "87c77663-33a5-41fa-805e-ad6e16ac693a",
- "name" : "Allowed Client Scopes",
- "providerId" : "allowed-client-templates",
- "subType" : "anonymous",
- "subComponents" : { },
- "config" : {
- "allow-default-scopes" : [ "true" ]
- }
- }, {
- "id" : "93b727d6-92be-4ae7-9436-cd8a67e13576",
- "name" : "Allowed Protocol Mapper Types",
- "providerId" : "allowed-protocol-mappers",
- "subType" : "authenticated",
- "subComponents" : { },
- "config" : {
- "allowed-protocol-mapper-types" : [ "oidc-usermodel-attribute-mapper", "oidc-full-name-mapper", "oidc-address-mapper", "oidc-sha256-pairwise-sub-mapper", "oidc-usermodel-property-mapper", "saml-user-attribute-mapper", "saml-role-list-mapper", "saml-user-property-mapper" ]
- }
- }, {
- "id" : "b099d087-5954-460d-902f-def7799cb005",
- "name" : "Allowed Client Scopes",
- "providerId" : "allowed-client-templates",
- "subType" : "authenticated",
- "subComponents" : { },
- "config" : {
- "allow-default-scopes" : [ "true" ]
- }
- }, {
- "id" : "16f67ef8-1431-4241-a7a3-0849513dd422",
- "name" : "Allowed Protocol Mapper Types",
- "providerId" : "allowed-protocol-mappers",
- "subType" : "anonymous",
- "subComponents" : { },
- "config" : {
- "allowed-protocol-mapper-types" : [ "oidc-sha256-pairwise-sub-mapper", "oidc-address-mapper", "saml-user-property-mapper", "saml-role-list-mapper", "oidc-usermodel-property-mapper", "oidc-full-name-mapper", "oidc-usermodel-attribute-mapper", "saml-user-attribute-mapper" ]
- }
- }, {
- "id" : "e86226d6-0944-4c08-b809-d72e6c7991c4",
- "name" : "Max Clients Limit",
- "providerId" : "max-clients",
- "subType" : "anonymous",
- "subComponents" : { },
- "config" : {
- "max-clients" : [ "200" ]
- }
- }, {
- "id" : "c796a096-9c20-4983-b7bc-cb282936040f",
- "name" : "Consent Required",
- "providerId" : "consent-required",
- "subType" : "anonymous",
- "subComponents" : { },
- "config" : { }
- }, {
- "id" : "76051f4c-b020-449d-a40f-664f918d0082",
- "name" : "Trusted Hosts",
- "providerId" : "trusted-hosts",
- "subType" : "anonymous",
- "subComponents" : { },
- "config" : {
- "host-sending-registration-request-must-match" : [ "true" ],
- "client-uris-must-match" : [ "true" ]
- }
- }, {
- "id" : "055d0fd2-9546-466d-b945-914f5ce84272",
- "name" : "Full Scope Disabled",
- "providerId" : "scope",
- "subType" : "anonymous",
- "subComponents" : { },
- "config" : { }
- } ],
- "org.keycloak.keys.KeyProvider" : [ {
- "id" : "bb2e382d-8ed7-41ab-b545-defd7cf035dd",
- "name" : "rsa-enc-generated",
- "providerId" : "rsa-enc-generated",
- "subComponents" : { },
- "config" : {
- "privateKey" : [ "MIIEowIBAAKCAQEAp+k3VByvA2qSCFXXxzJpeEUlzZiqHhWbNYy2dbd/VIBNOsaFr97fSpL1bOdEqJ20Q2xfcrI/u+Ep3CbZoHswGpfJfNU4d+yvbIFDFFavBNmtAeTxw6NiIIIvJGwnxfzed6AD7VRLDDUTLseawSesnwVWtJcF/NNiKED+CZzaXhmQBqwOrwVDlQMRUwmOhoOQWoKxnqWcvO0Gg/DFZCMT9GMwfnMRKRJE2aABix6b90aDK9AoIGtAILALOiprd2qcm5NMh9ztdSP3RpTWpvO1WqkDuxkTAL7lsc2/CymH3IQtCrQkI6f+aLZ7Xk4U9EOeq4V5HLDbHB/0fwAfyytoxwIDAQABAoIBAACllioTr0AHVsSiXzi467uH0IA+8867lLHcscPNZ3UlLNKBrjDCBzZgHEVmtNQ5Di43HEdq7mgKkzqGqKq3+aVS0cO99kpD+eMFniH0Q8VVgyv2b7dDwcyiD0VZybWD9f8wp269HWinsJDjRFEMNRkWNDK4+X4R+iZxWNnRTxYed0pdOTfWFX+iyQRefhOzReZjyxoM8xUmehiMpl4X/wYo6QxOW28ZKAtgZKDfiBymXmG1hMbk75Ktm5z5iy1vceZn19CfK56kTA4Y3OtOFwHaBu5Oq+4fgByS+EVv4dVAcR5mtKJV3z34L8xjg/J4dnosn7ZXMmCC5UWxb944Zu0CgYEA2q0zGuBaAwjjwE7AUtd+lpKJrEtm/3FzUXCSxpcgr6yGMcOaZlQKPNp+QnFOHo59O0CQqsDU7t/TRyNDKhtc4r1KYR+n8KHnW/l/bA3GIZtydFW+OcUL4lQGm1ZyVo3UsFaTCRa59TeFpDIX5gWS+/CeqgGuUdBNLlbg5D4LItsCgYEAxJHg4yhEDNpHf8oH7IlUB1NYwMX1pv0xgK9RYksCB2Z+Dec8JI9bheeb6S0pb0rkbLrwjVyNbV4/dZn6oYfLzI5gdu5/qKDxy5g+tg3C2VkLyT3ONM4IPKoCt86ZokFdzqItPPVWYZ0DUr78yzpJDjgnB84Y6HbOGx95IneT94UCgYAkIucFE/oL8lYgm2Lwzaefnkud6z/0Cn1yAdZfdu3x2eK7KoXDTzP55mli9XJhXk6Xkg3WCdOmPdqeMNeSh78LwRgfgKmx/C9NZaeG5afOOe/qBZlP1p4mIpiM5vYyE3IISeY2ZEkKmsg84AJPArDNbW/qzChQYMnAVJ8JWK9ibQKBgHBqnRpMJN7U1p8Wg4Ga6BtoZxGYJOzjUDQwD3MPQpHI474/x/2Anu7tjhTEZzXmtswX/QpbK+aoR9KRxOwsJTlPE4vwycE+ignNf8/N/ukeK8djOVKpobxP3k4QMXzBtUw/I3ABPu2ERipEX346Tx16r5efHk+T4jtQvI4hpNWhAoGBAK493H9KZQdjlMcoMvHS2wH26vLRIOA1/urC5KKMSHqcTdFneXFdz55u78uuCCRC9Qmv89RvWyfp7asadymtaFYKQGZnGUvNpNOm+c/nPy2bywrCHcUWU8OYUyrJM3m2AQuSwQVyKjWCJrAtclomd2fLvpJ1KF26l0fq1BNF23DS" ],
- "certificate" : [ "MIICpTCCAY0CBgGRI/HPRTANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtkZXZlbG9wbWVudDAeFw0yNDA4MDUxOTA3MTVaFw0zNDA4MDUxOTA4NTVaMBYxFDASBgNVBAMMC2RldmVsb3BtZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp+k3VByvA2qSCFXXxzJpeEUlzZiqHhWbNYy2dbd/VIBNOsaFr97fSpL1bOdEqJ20Q2xfcrI/u+Ep3CbZoHswGpfJfNU4d+yvbIFDFFavBNmtAeTxw6NiIIIvJGwnxfzed6AD7VRLDDUTLseawSesnwVWtJcF/NNiKED+CZzaXhmQBqwOrwVDlQMRUwmOhoOQWoKxnqWcvO0Gg/DFZCMT9GMwfnMRKRJE2aABix6b90aDK9AoIGtAILALOiprd2qcm5NMh9ztdSP3RpTWpvO1WqkDuxkTAL7lsc2/CymH3IQtCrQkI6f+aLZ7Xk4U9EOeq4V5HLDbHB/0fwAfyytoxwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCUtjMYZWBiildDYkd2iI8b8G1n6qvZ1q+x/JIYUNVbFWUfC7lfiCIua6YwgJluI4RcZ5hFpHWWxzW/Cz8RTymsM7oCwGa3Nv5cUZLGOB4B6FC3nDNdJm1WP2ICqsu9HpS6BReS8WCTQ+r+zgE/hO9SCtffuEAmib+ICKOE7KhYkqveN835la9rlfVbgbKl7aHdtJz+JqFEdgAM+kdpuT+csINuoXQpn5MWBs1wvdQNu7tA7m01vCaJg00a43FxSXJjq/lxUGXLdRoAqe0SFqkMnpdqfV8XZClA9Kgs6FBFG6xKikJLeD5M61UA/P8WXHEgPbWcy1chFYQyeimmxEzl" ],
- "priority" : [ "100" ],
- "algorithm" : [ "RSA-OAEP" ]
- }
- }, {
- "id" : "ca7e3c60-4007-4fbd-bb58-80989d4ef95f",
- "name" : "aes-generated",
- "providerId" : "aes-generated",
- "subComponents" : { },
- "config" : {
- "kid" : [ "40b90151-b1ef-4e82-a179-7dbc45ed2db3" ],
- "secret" : [ "o1R5W3Ez-r_9PK6xtUJfFg" ],
- "priority" : [ "100" ]
- }
- }, {
- "id" : "5ddf1462-4890-492a-919d-5a4cf34d8e74",
- "name" : "rsa-generated",
- "providerId" : "rsa-generated",
- "subComponents" : { },
- "config" : {
- "privateKey" : [ "MIIEowIBAAKCAQEAuPtq+FpY5j7YFdxxNRcpNooCMqYcU7h2s2DZs3fpBURAR3WTQ/kq9KuNnlub8GSGuoKKZGL6dE6cQmfGyB+7OAHuwc19R/mVfTFC8SFLQHbdPfPtZJai2PR0OuW7zM6XY/lItaUN0+b8qSzQ1ymSakC6vY8//A+ZGpta55vveJCdx3gTI7BowvOE1HBRM/2cl1I6MwQ9Wb7AJHIcoaDUcv5PX7iW3gP7CcMbyLR6fkIvPZ85IldSjJu/k4uSKH5Xpv0sDen9YJjvWubjnisAoLVjNmky78KWcZ7xxPXIHRuZv6OsHl2KrkQEOJHL2EU2S7GlgNFCGMfo9wQrvPwyiQIDAQABAoIBAFqdjsEqQPJJRsEuw6YmOmIlKP52sNmyOzOT9hEcZGHYFUTsK7/Yh1pjz3QLnFAeboFfATw74ESpXZKKE65lHOlKyRLW/tALS1eQkiJdFOf3UlnO7DOiNxPgbC+N6nlhmne23g9dU3DCbnLRKVy9WKQEIXZKfiWT3oRSJi3fDWgZWc3Ds72D/T4Oy8go1zMbHIe5kpzhScoL72YwaefsqwNFtY0sqts0uQF2mVXXeFfq2lvgcrob9sfiDx+NW5m3In8Qa0+VL/oeYvgbUPi3oi2LxH6xDHbQUKq4DUKBlPMuaSW18E1xXV6qUu4DxMA8+eqo4KLAVDyudSmPQj3gsCECgYEA68Seb4NUvfGRfSMGouEfAJfYf2MoEW5VdIbgVoVYlJ9mI3zjdLsHsfmXmrMnvQWBx9YGL+XRjcpTsPzH0DAD2+JjFzIukv7l6osG67JA3i5GHYXuFL3Ml0MHCWvbSgrHdDAm2/HroifZEbPBjFsq8Kb1wFQ0AR7ClMdgxrDMJOcCgYEAyNsgkIrtB11gKlc8pf/LByWjfsueXfhhHk5G0RSCyZ6DXlK1C55te9tJ+Y2Z5VjUaqsRbIqNKVRL1CRZQzjSzYAxYPaFYvy6gXmTukQB5/i8D/TSjXNfxOpEBTnKX4psas51TS4ncJg35oXoh+zahqawczYs7Ein254n3J4vjw8CgYBn1Jlpxs7FL+PA1nIPvVDn8/d2cnas5ohf3x5hPCx8l45lxpRtTgjfimoHySqRBiHXnhvvcCjPZvFgmpJszxiD97ln98OnHPaoSj3sAv6qWnqqedcV71hwrSYmMgfLHeAk/Se/6VS6fw4Ly7xLUcMhZIYKA4s7iw5qczvdhPMCtQKBgQCbLCc5ZAsA4JO1wlW5jSeGKv7nq1l7EbO+HQ065BSyvQKSsWTrSAcfY+f/ovTdKcZZbjX03Al4f4Zhq39GnrTFTJ9ZYLrmIYfZFVsa0QWD+DcaQLMV0qePUskgHGiLbT6bOUuIR/ryUrcFIjjmIgcldcvmBlmoZe1AjywOlir54wKBgAuPjALJsstfSbI7ER+acyTNTTlVxVn9CqKWv5UTeLNpIBBjSi36jYVAGmpCY2rgHVZE5EZCejiCn18mdMVQS3+G5Dmb9vAldoxaRim5oMSbnyJt3btszf29iM2nFzw/aGKzHVKDWI473SA8krDtvvHsBEDEEKHNPlF4TE+aowUV" ],
- "certificate" : [ "MIICpTCCAY0CBgGRI/HPwjANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtkZXZlbG9wbWVudDAeFw0yNDA4MDUxOTA3MTVaFw0zNDA4MDUxOTA4NTVaMBYxFDASBgNVBAMMC2RldmVsb3BtZW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuPtq+FpY5j7YFdxxNRcpNooCMqYcU7h2s2DZs3fpBURAR3WTQ/kq9KuNnlub8GSGuoKKZGL6dE6cQmfGyB+7OAHuwc19R/mVfTFC8SFLQHbdPfPtZJai2PR0OuW7zM6XY/lItaUN0+b8qSzQ1ymSakC6vY8//A+ZGpta55vveJCdx3gTI7BowvOE1HBRM/2cl1I6MwQ9Wb7AJHIcoaDUcv5PX7iW3gP7CcMbyLR6fkIvPZ85IldSjJu/k4uSKH5Xpv0sDen9YJjvWubjnisAoLVjNmky78KWcZ7xxPXIHRuZv6OsHl2KrkQEOJHL2EU2S7GlgNFCGMfo9wQrvPwyiQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBqMz0QkjIrMnmF3VrYqdfHsgZptyI6jj1GQ0MR4qJu4Dl5ojhGXFukbAu8xBjnVhv1uc6IWjfWT7YJbUc6n752uQH3//bK46K/vXhbGMP+lCpyc5CT69FOJtutT+/A7R6/8WS6M91BwYF9pX3XHQ1109ylAzhW+qV1LqdJMipy4FB7yYDImLsf6Z8JtmSveopwMQ8A/GJTG5LEPnoYqJ8BY85yG/GszgXcn63f6iTT/7BceKOu7kp0l+Np6qooMddniV4917P+aCU/T7dkz+afj0JURf1fnsITXu02iyi+aHmHihOuYzqobeXDJU0FqGg0qQGJU9QLye5jbZqFM2yf" ],
- "priority" : [ "100" ]
- }
- }, {
- "id" : "64782b75-6f52-4f1d-af06-09ad6bfcdfb9",
- "name" : "hmac-generated-hs512",
- "providerId" : "hmac-generated",
- "subComponents" : { },
- "config" : {
- "kid" : [ "1c986f4a-6e05-43e1-97a8-d756aed963ff" ],
- "secret" : [ "EWGJDe4oUzHqg-arMOUMeEIqb1k0l8O_RpYsmhHl0oiTDqVFnlHB3cBAyhPQYdEkkeFoVnjBA5t46zxj4sOLAMZ9McOgifAe_WBe4_RrxQDhMFMLMNyWnCnFP_jDAFj98P0xyv8atwZCG5xPRFDrO9pJKxO472kG6ws0CZ-CpdY" ],
- "priority" : [ "100" ],
- "algorithm" : [ "HS512" ]
- }
- } ]
- },
- "internationalizationEnabled" : false,
- "supportedLocales" : [ ],
- "authenticationFlows" : [ {
- "id" : "17180a8f-635e-42e3-9870-88b7b61fb915",
- "alias" : "Account verification options",
- "description" : "Method with which to verity the existing account",
- "providerId" : "basic-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "idp-email-verification",
- "authenticatorFlow" : false,
- "requirement" : "ALTERNATIVE",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticatorFlow" : true,
- "requirement" : "ALTERNATIVE",
- "priority" : 20,
- "autheticatorFlow" : true,
- "flowAlias" : "Verify Existing Account by Re-authentication",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "c416b7a7-45c8-4f68-99b9-0fd7d817fe18",
- "alias" : "Browser - Conditional OTP",
- "description" : "Flow to determine if the OTP is required for the authentication",
- "providerId" : "basic-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "conditional-user-configured",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "auth-otp-form",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 20,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "7d9a6e6e-6a2e-4453-aac4-fd2e0f158f4b",
- "alias" : "Direct Grant - Conditional OTP",
- "description" : "Flow to determine if the OTP is required for the authentication",
- "providerId" : "basic-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "conditional-user-configured",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "direct-grant-validate-otp",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 20,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "5a9053a6-432c-4380-b267-96f86cfac2a7",
- "alias" : "First broker login - Conditional OTP",
- "description" : "Flow to determine if the OTP is required for the authentication",
- "providerId" : "basic-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "conditional-user-configured",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "auth-otp-form",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 20,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "f12fa4ea-704b-4f25-8a50-2b6c011d0249",
- "alias" : "Handle Existing Account",
- "description" : "Handle what to do if there is existing account with same email/username like authenticated identity provider",
- "providerId" : "basic-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "idp-confirm-link",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticatorFlow" : true,
- "requirement" : "REQUIRED",
- "priority" : 20,
- "autheticatorFlow" : true,
- "flowAlias" : "Account verification options",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "1fe6bf4e-f2f8-4631-b024-6e8a5bd8c42e",
- "alias" : "Reset - Conditional OTP",
- "description" : "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.",
- "providerId" : "basic-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "conditional-user-configured",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "reset-otp",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 20,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "6246dbfb-a619-4635-ab3e-b394f0ed4af3",
- "alias" : "User creation or linking",
- "description" : "Flow for the existing/non-existing user alternatives",
- "providerId" : "basic-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticatorConfig" : "create unique user config",
- "authenticator" : "idp-create-user-if-unique",
- "authenticatorFlow" : false,
- "requirement" : "ALTERNATIVE",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticatorFlow" : true,
- "requirement" : "ALTERNATIVE",
- "priority" : 20,
- "autheticatorFlow" : true,
- "flowAlias" : "Handle Existing Account",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "efa63a87-ea5c-4519-a323-11099438f81e",
- "alias" : "Verify Existing Account by Re-authentication",
- "description" : "Reauthentication of existing account",
- "providerId" : "basic-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "idp-username-password-form",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticatorFlow" : true,
- "requirement" : "CONDITIONAL",
- "priority" : 20,
- "autheticatorFlow" : true,
- "flowAlias" : "First broker login - Conditional OTP",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "2cd74a88-7aff-42ad-a94e-776089c0aaca",
- "alias" : "browser",
- "description" : "browser based authentication",
- "providerId" : "basic-flow",
- "topLevel" : true,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "auth-cookie",
- "authenticatorFlow" : false,
- "requirement" : "ALTERNATIVE",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "auth-spnego",
- "authenticatorFlow" : false,
- "requirement" : "DISABLED",
- "priority" : 20,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "identity-provider-redirector",
- "authenticatorFlow" : false,
- "requirement" : "ALTERNATIVE",
- "priority" : 25,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticatorFlow" : true,
- "requirement" : "ALTERNATIVE",
- "priority" : 30,
- "autheticatorFlow" : true,
- "flowAlias" : "forms",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "f14b6e2e-bf4f-4dc3-906e-8e417cb8a96b",
- "alias" : "clients",
- "description" : "Base authentication for clients",
- "providerId" : "client-flow",
- "topLevel" : true,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "client-secret",
- "authenticatorFlow" : false,
- "requirement" : "ALTERNATIVE",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "client-jwt",
- "authenticatorFlow" : false,
- "requirement" : "ALTERNATIVE",
- "priority" : 20,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "client-secret-jwt",
- "authenticatorFlow" : false,
- "requirement" : "ALTERNATIVE",
- "priority" : 30,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "client-x509",
- "authenticatorFlow" : false,
- "requirement" : "ALTERNATIVE",
- "priority" : 40,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "704eac4a-0f3f-42b1-8326-ed8193f7c5e0",
- "alias" : "direct grant",
- "description" : "OpenID Connect Resource Owner Grant",
- "providerId" : "basic-flow",
- "topLevel" : true,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "direct-grant-validate-username",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "direct-grant-validate-password",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 20,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticatorFlow" : true,
- "requirement" : "CONDITIONAL",
- "priority" : 30,
- "autheticatorFlow" : true,
- "flowAlias" : "Direct Grant - Conditional OTP",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "ea358460-4bdb-4926-8bdb-9ae28b76a73a",
- "alias" : "docker auth",
- "description" : "Used by Docker clients to authenticate against the IDP",
- "providerId" : "basic-flow",
- "topLevel" : true,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "docker-http-basic-authenticator",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "064b83a9-eff4-47c0-a885-5a2552a390b7",
- "alias" : "first broker login",
- "description" : "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account",
- "providerId" : "basic-flow",
- "topLevel" : true,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticatorConfig" : "review profile config",
- "authenticator" : "idp-review-profile",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticatorFlow" : true,
- "requirement" : "REQUIRED",
- "priority" : 20,
- "autheticatorFlow" : true,
- "flowAlias" : "User creation or linking",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "224e3374-9c81-437a-9abb-557eba90dcea",
- "alias" : "forms",
- "description" : "Username, password, otp and other auth forms.",
- "providerId" : "basic-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "auth-username-password-form",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticatorFlow" : true,
- "requirement" : "CONDITIONAL",
- "priority" : 20,
- "autheticatorFlow" : true,
- "flowAlias" : "Browser - Conditional OTP",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "ccfe54ac-0522-45a5-8cf5-a3bd89396ea8",
- "alias" : "registration",
- "description" : "registration flow",
- "providerId" : "basic-flow",
- "topLevel" : true,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "registration-page-form",
- "authenticatorFlow" : true,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : true,
- "flowAlias" : "registration form",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "09319bf1-dc33-4d5a-9866-20ef01e3364e",
- "alias" : "registration form",
- "description" : "registration form",
- "providerId" : "form-flow",
- "topLevel" : false,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "registration-user-creation",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 20,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "registration-password-action",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 50,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "registration-recaptcha-action",
- "authenticatorFlow" : false,
- "requirement" : "DISABLED",
- "priority" : 60,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "registration-terms-and-conditions",
- "authenticatorFlow" : false,
- "requirement" : "DISABLED",
- "priority" : 70,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "e55eed94-e227-4edc-af34-5d8595fb2379",
- "alias" : "reset credentials",
- "description" : "Reset credentials for a user if they forgot their password or something",
- "providerId" : "basic-flow",
- "topLevel" : true,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "reset-credentials-choose-user",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "reset-credential-email",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 20,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticator" : "reset-password",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 30,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- }, {
- "authenticatorFlow" : true,
- "requirement" : "CONDITIONAL",
- "priority" : 40,
- "autheticatorFlow" : true,
- "flowAlias" : "Reset - Conditional OTP",
- "userSetupAllowed" : false
- } ]
- }, {
- "id" : "4ce089cb-31f2-4c4c-99a8-fd7f2c6b458e",
- "alias" : "saml ecp",
- "description" : "SAML ECP Profile Authentication Flow",
- "providerId" : "basic-flow",
- "topLevel" : true,
- "builtIn" : true,
- "authenticationExecutions" : [ {
- "authenticator" : "http-basic-authenticator",
- "authenticatorFlow" : false,
- "requirement" : "REQUIRED",
- "priority" : 10,
- "autheticatorFlow" : false,
- "userSetupAllowed" : false
- } ]
- } ],
- "authenticatorConfig" : [ {
- "id" : "ca32fd2e-b807-49d6-aa2a-ece90de7c6d1",
- "alias" : "create unique user config",
- "config" : {
- "require.password.update.after.registration" : "false"
- }
- }, {
- "id" : "87fbbfb1-9fad-4954-85be-84d15d6f8bc6",
- "alias" : "review profile config",
- "config" : {
- "update.profile.on.first.login" : "missing"
- }
- } ],
- "requiredActions" : [ {
- "alias" : "CONFIGURE_TOTP",
- "name" : "Configure OTP",
- "providerId" : "CONFIGURE_TOTP",
- "enabled" : true,
- "defaultAction" : false,
- "priority" : 10,
- "config" : { }
- }, {
- "alias" : "TERMS_AND_CONDITIONS",
- "name" : "Terms and Conditions",
- "providerId" : "TERMS_AND_CONDITIONS",
- "enabled" : false,
- "defaultAction" : false,
- "priority" : 20,
- "config" : { }
- }, {
- "alias" : "UPDATE_PASSWORD",
- "name" : "Update Password",
- "providerId" : "UPDATE_PASSWORD",
- "enabled" : true,
- "defaultAction" : false,
- "priority" : 30,
- "config" : { }
- }, {
- "alias" : "UPDATE_PROFILE",
- "name" : "Update Profile",
- "providerId" : "UPDATE_PROFILE",
- "enabled" : true,
- "defaultAction" : false,
- "priority" : 40,
- "config" : { }
- }, {
- "alias" : "VERIFY_EMAIL",
- "name" : "Verify Email",
- "providerId" : "VERIFY_EMAIL",
- "enabled" : true,
- "defaultAction" : false,
- "priority" : 50,
- "config" : { }
- }, {
- "alias" : "delete_account",
- "name" : "Delete Account",
- "providerId" : "delete_account",
- "enabled" : false,
- "defaultAction" : false,
- "priority" : 60,
- "config" : { }
- }, {
- "alias" : "webauthn-register",
- "name" : "Webauthn Register",
- "providerId" : "webauthn-register",
- "enabled" : true,
- "defaultAction" : false,
- "priority" : 70,
- "config" : { }
- }, {
- "alias" : "webauthn-register-passwordless",
- "name" : "Webauthn Register Passwordless",
- "providerId" : "webauthn-register-passwordless",
- "enabled" : true,
- "defaultAction" : false,
- "priority" : 80,
- "config" : { }
- }, {
- "alias" : "VERIFY_PROFILE",
- "name" : "Verify Profile",
- "providerId" : "VERIFY_PROFILE",
- "enabled" : true,
- "defaultAction" : false,
- "priority" : 90,
- "config" : { }
- }, {
- "alias" : "delete_credential",
- "name" : "Delete Credential",
- "providerId" : "delete_credential",
- "enabled" : true,
- "defaultAction" : false,
- "priority" : 100,
- "config" : { }
- }, {
- "alias" : "update_user_locale",
- "name" : "Update User Locale",
- "providerId" : "update_user_locale",
- "enabled" : true,
- "defaultAction" : false,
- "priority" : 1000,
- "config" : { }
- } ],
- "browserFlow" : "browser",
- "registrationFlow" : "registration",
- "directGrantFlow" : "direct grant",
- "resetCredentialsFlow" : "reset credentials",
- "clientAuthenticationFlow" : "clients",
- "dockerAuthenticationFlow" : "docker auth",
- "firstBrokerLoginFlow" : "first broker login",
- "attributes" : {
- "cibaBackchannelTokenDeliveryMode" : "poll",
- "cibaAuthRequestedUserHint" : "login_hint",
- "clientOfflineSessionMaxLifespan" : "0",
- "oauth2DevicePollingInterval" : "5",
- "clientSessionIdleTimeout" : "0",
- "clientOfflineSessionIdleTimeout" : "0",
- "cibaInterval" : "5",
- "realmReusableOtpCode" : "false",
- "cibaExpiresIn" : "120",
- "oauth2DeviceCodeLifespan" : "600",
- "parRequestUriLifespan" : "60",
- "clientSessionMaxLifespan" : "0",
- "organizationsEnabled" : "false"
- },
- "keycloakVersion" : "25.0.2",
- "userManagedAccessAllowed" : false,
- "organizationsEnabled" : false,
- "clientProfiles" : {
- "profiles" : [ ]
- },
- "clientPolicies" : {
- "policies" : [ ]
- }
-}
\ No newline at end of file
diff --git a/vegasco-server.slnx b/vegasco-server.slnx
index 3aaf43d..ce8d932 100644
--- a/vegasco-server.slnx
+++ b/vegasco-server.slnx
@@ -10,7 +10,6 @@
-