git.iko.soy/typeable/oauth2-proxy
on master help sign in
Merge pull request #2472 from kvanzuijlen/renovate-config

chore: Added renovate configuration

commit5a058471861260533160ef26c5093ff34a976f45 authorJoel Speed <Joel.speed@hotmail.co.uk> dateMon 11 Mar 2024, 13:35 (3 years ago) parentc6b723fd60b846
20 files changed+2112−2245
.github/labeler.yml+1−1 .github/renovate.json5+36−2 .github/workflows/ci.yaml+12−6 .github/workflows/create-release.yml+1−1 .github/workflows/docs.yaml+2 .github/workflows/publish-release.yml+4−2 contrib/local-environment/docker-compose-gitea.yaml+2−2 contrib/local-environment/docker-compose-keycloak.yaml+1−1 contrib/local-environment/docker-compose-nginx.yaml+1−1 contrib/local-environment/docker-compose-traefik.yaml+1−1 contrib/local-environment/docker-compose.yaml+2−2 contrib/local-environment/keycloak/master-realm.json+1989−1602 contrib/local-environment/keycloak/master-users-0.json+36−25 contrib/local-environment/kubernetes/Chart.lock+8−8 contrib/local-environment/kubernetes/Chart.yaml+7−8 contrib/local-environment/kubernetes/Makefile+2−10 contrib/local-environment/kubernetes/README.md+2−4 contrib/local-environment/kubernetes/custom-dns.yaml+4−4 contrib/local-environment/kubernetes/kind-cluster.yaml+1−1 contrib/local-environment/kubernetes/oauth2-proxy-example-full.yaml−564
.github/labeler.yml+1−1
@@ -9,7 +9,7 @@ docs:
99 - '**/*.md'
1010
1111changelog:
12− - cNhanged-files:
12+ - changed-files:
1313 - any-glob-to-any-file:
1414 - 'CHAGELOG.md'
1515
.github/renovate.json5+36−2
@@ -1,18 +1,44 @@
11{
22 $schema: "https://docs.renovatebot.com/renovate-schema.json",
3− semanticCommits: "auto",
3+ semanticCommits: "enabled",
4+ schedule: [
5+ "after 8am on sunday"
6+ ],
7+ prConcurrentLimit: 0,
8+ prHourlyLimit: 0,
49 enabledManagers: [
510 "dockerfile",
11+ "docker-compose",
612 "gomod",
713 "github-actions",
14+ "helmv3",
815 "npm",
916 "regex",
1017 ],
18+ packageRules: [
19+ {
20+ matchManagers: [
21+ "dockerfile",
22+ "docker-compose",
23+ "gomod",
24+ "helmv3",
25+ "npm",
26+ ],
27+ groupName: "{{{manager}}}",
28+ },
29+ {
30+ matchDepNames: [
31+ "docker.io/library/golang",
32+ "mcr.microsoft.com/vscode/devcontainers/go",
33+ ],
34+ groupName: "golang",
35+ },
36+ ],
1137 customManagers: [
1238 {
1339 customType: "regex",
1440 fileMatch: [
15− "^Makefile"
41+ "^Makefile",
1642 ],
1743 matchStrings: [
1844 "DOCKER_BUILD_RUNTIME_IMAGE_ALPINE\\s+?\\?= alpine:(?<currentValue>.*)\\s"
@@ -20,5 +46,13 @@
2046 depNameTemplate: "alpine",
2147 datasourceTemplate: "docker",
2248 },
49+ {
50+ customType: "regex",
51+ fileMatch: ["(^|/)\\.github/workflows/[^/]+\\.ya?ml$"],
52+ matchStrings: [
53+ "# renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)( versioning=(?<versioning>.*?))?\\s+?[\\w\\s-]*?version: (?<currentValue>.*)\\s",
54+ "# renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)( versioning=(?<versioning>.*?))?\\s+?[\\w\\s]*?_VERSION: (?<currentValue>.*)\\s",
55+ ],
56+ },
2357 ],
2458}
.github/workflows/ci.yaml+12−6
@@ -14,22 +14,28 @@ jobs:
1414 build:
1515 env:
1616 COVER: true
17− runs-on: ubuntu-22.04
17+ runs-on: ubuntu-latest
1818 steps:
1919
2020 - name: Check out code
2121 uses: actions/checkout@v4
2222
23− - name: Set up Go 1.21
23+ - name: Set up Go
2424 uses: actions/setup-go@v5
2525 with:
26− go-version: 1.21
26+ # renovate: datasource=golang-version depName=golang
27+ go-version: 1.21.6
2728 id: go
2829
2930 - name: Get dependencies
31+ env:
32+ # renovate: datasource=github-tags depName=golangci/golangci-lint
33+ GOLANGCI_LINT_VERSION: v1.55.2
34+ # renovate: datasource=github-tags depName=codeclimate/test-reporter
35+ CODECLIMATE_VERSION: v0.11.1
3036 run: |
31− curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.55.2
32− curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
37+ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin ${GOLANGCI_LINT_VERSION}
38+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-${CODECLIMATE_VERSION}-linux-amd64 > ./cc-test-reporter
3339 chmod +x ./cc-test-reporter
3440
3541 - name: Verify Code Generation
@@ -51,7 +57,7 @@ jobs:
5157 ./.github/workflows/test.sh
5258
5359 docker:
54− runs-on: ubuntu-22.04
60+ runs-on: ubuntu-latest
5561 steps:
5662
5763 - name: Check out code
.github/workflows/create-release.yml+1−1
@@ -56,7 +56,7 @@ jobs:
5656 - name: Setup node
5757 uses: actions/setup-node@v4
5858 with:
59− node-version: latest
59+ node-version-file: docs/package.json
6060
6161 - name: Update documentation
6262 run: |
.github/workflows/docs.yaml+2
@@ -22,6 +22,7 @@ jobs:
2222
2323 - uses: actions/setup-node@v4
2424 with:
25+ # renovate: datasource=node-version depName=node
2526 node-version: 20
2627 cache: npm
2728 cache-dependency-path: "./docs/package-lock.json"
@@ -40,6 +41,7 @@ jobs:
4041
4142 - uses: actions/setup-node@v4
4243 with:
44+ # renovate: datasource=node-version depName=node
4345 node-version: 20
4446
4547 - name: Build docusaurus
.github/workflows/publish-release.yml+4−2
@@ -45,11 +45,13 @@ jobs:
4545 - name: Set up go
4646 uses: actions/setup-go@v5
4747 with:
48− go-version: 1.21
48+ go-version-file: go.mod
4949
5050 - name: Get dependencies
51+ env:
52+ GOLANGCI_LINT_VERSION: v1.55.2
5153 run: |
52− curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.55.2
54+ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin ${GOLANGCI_LINT_VERSION}
5355 curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
5456 chmod +x ./cc-test-reporter
5557
contrib/local-environment/docker-compose-gitea.yaml+2−2
@@ -14,7 +14,7 @@ version: '3.0'
1414services:
1515 oauth2-proxy:
1616 container_name: oauth2-proxy
17− image: gitea-oauth #quay.io/oauth2-proxy/oauth2-proxy:v7.6.0
17+ image: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0
1818 command: --config /oauth2-proxy.cfg
1919 hostname: oauth2-proxy
2020 volumes:
@@ -42,7 +42,7 @@ services:
4242 - httpbin.localtest.me
4343
4444 gitea:
45− image: gitea/gitea:latest
45+ image: gitea/gitea:1.21.4
4646 container_name: gitea
4747 environment:
4848 - USER_UID=1000
contrib/local-environment/docker-compose-keycloak.yaml+1−1
@@ -43,7 +43,7 @@ services:
4343
4444 keycloak:
4545 container_name: keycloak
46− image: jboss/keycloak:10.0.0
46+ image: jboss/keycloak:10.0.2
4747 hostname: keycloak
4848 command:
4949 [
contrib/local-environment/docker-compose-nginx.yaml+1−1
@@ -30,7 +30,7 @@ services:
3030 oauth2-proxy: {}
3131 nginx:
3232 container_name: nginx
33− image: nginx:1.18
33+ image: nginx:1.25
3434 restart: unless-stopped
3535 ports:
3636 - 80:80/tcp
contrib/local-environment/docker-compose-traefik.yaml+1−1
@@ -33,7 +33,7 @@ services:
3333 # Reverse proxy
3434 gateway:
3535 container_name: traefik
36− image: traefik:2.4.2
36+ image: traefik:2.10.7
3737 volumes:
3838 - "./traefik:/etc/traefik"
3939 ports:
contrib/local-environment/docker-compose.yaml+2−2
@@ -29,7 +29,7 @@ services:
2929 - httpbin
3030 dex:
3131 container_name: dex
32− image: ghcr.io/dexidp/dex:v2.30.3
32+ image: ghcr.io/dexidp/dex:v2.38.0
3333 command: dex serve /dex.yaml
3434 hostname: dex
3535 volumes:
@@ -55,7 +55,7 @@ services:
5555 - httpbin.localtest.me
5656 etcd:
5757 container_name: etcd
58− image: gcr.io/etcd-development/etcd:v3.4.7
58+ image: gcr.io/etcd-development/etcd:v3.5.11
5959 entrypoint: /usr/local/bin/etcd
6060 command:
6161 - --listen-client-urls=http://0.0.0.0:2379
contrib/local-environment/keycloak/master-realm.json+1989−1602
@@ -1,505 +1,657 @@
11{
2− "id" : "master",
3− "realm" : "master",
4− "displayName" : "Keycloak",
5− "displayNameHtml" : "<div class=\"kc-logo-text\"><span>Keycloak</span></div>",
6− "notBefore" : 0,
7− "revokeRefreshToken" : false,
8− "refreshTokenMaxReuse" : 0,
9− "accessTokenLifespan" : 60,
10− "accessTokenLifespanForImplicitFlow" : 900,
11− "ssoSessionIdleTimeout" : 1800,
12− "ssoSessionMaxLifespan" : 36000,
13− "ssoSessionIdleTimeoutRememberMe" : 0,
14− "ssoSessionMaxLifespanRememberMe" : 0,
15− "offlineSessionIdleTimeout" : 2592000,
16− "offlineSessionMaxLifespanEnabled" : false,
17− "offlineSessionMaxLifespan" : 5184000,
18− "clientSessionIdleTimeout" : 0,
19− "clientSessionMaxLifespan" : 0,
20− "accessCodeLifespan" : 60,
21− "accessCodeLifespanUserAction" : 300,
22− "accessCodeLifespanLogin" : 1800,
23− "actionTokenGeneratedByAdminLifespan" : 43200,
24− "actionTokenGeneratedByUserLifespan" : 300,
25− "enabled" : true,
26− "sslRequired" : "external",
27− "registrationAllowed" : false,
28− "registrationEmailAsUsername" : false,
29− "rememberMe" : false,
30− "verifyEmail" : false,
31− "loginWithEmailAllowed" : true,
32− "duplicateEmailsAllowed" : false,
33− "resetPasswordAllowed" : false,
34− "editUsernameAllowed" : false,
35− "bruteForceProtected" : false,
36− "permanentLockout" : false,
37− "maxFailureWaitSeconds" : 900,
38− "minimumQuickLoginWaitSeconds" : 60,
39− "waitIncrementSeconds" : 60,
40− "quickLoginCheckMilliSeconds" : 1000,
41− "maxDeltaTimeSeconds" : 43200,
42− "failureFactor" : 30,
43− "roles" : {
44− "realm" : [ {
45− "id" : "32626c92-4327-40f1-b318-76a6b5c7eee5",
46− "name" : "offline_access",
47− "description" : "${role_offline-access}",
48− "composite" : false,
49− "clientRole" : false,
50− "containerId" : "master",
51− "attributes" : { }
52− }, {
53− "id" : "e36da570-7ae0-4323-8b39-73eb92ce722f",
54− "name" : "admin",
55− "description" : "${role_admin}",
56− "composite" : true,
57− "composites" : {
58− "realm" : [ "create-realm" ],
59− "client" : {
60− "master-realm" : [ "query-groups", "create-client", "query-realms", "view-authorization", "view-realm", "manage-clients", "query-users", "manage-realm", "view-events", "manage-events", "view-identity-providers", "view-users", "manage-identity-providers", "manage-authorization", "manage-users", "view-clients", "query-clients", "impersonation" ]
61− }
2+ "id": "master",
3+ "realm": "master",
4+ "displayName": "Keycloak",
5+ "displayNameHtml": "<div class=\"kc-logo-text\"><span>Keycloak</span></div>",
6+ "notBefore": 0,
7+ "revokeRefreshToken": false,
8+ "refreshTokenMaxReuse": 0,
9+ "accessTokenLifespan": 60,
10+ "accessTokenLifespanForImplicitFlow": 900,
11+ "ssoSessionIdleTimeout": 1800,
12+ "ssoSessionMaxLifespan": 36000,
13+ "ssoSessionIdleTimeoutRememberMe": 0,
14+ "ssoSessionMaxLifespanRememberMe": 0,
15+ "offlineSessionIdleTimeout": 2592000,
16+ "offlineSessionMaxLifespanEnabled": false,
17+ "offlineSessionMaxLifespan": 5184000,
18+ "clientSessionIdleTimeout": 0,
19+ "clientSessionMaxLifespan": 0,
20+ "accessCodeLifespan": 60,
21+ "accessCodeLifespanUserAction": 300,
22+ "accessCodeLifespanLogin": 1800,
23+ "actionTokenGeneratedByAdminLifespan": 43200,
24+ "actionTokenGeneratedByUserLifespan": 300,
25+ "enabled": true,
26+ "sslRequired": "external",
27+ "registrationAllowed": false,
28+ "registrationEmailAsUsername": false,
29+ "rememberMe": false,
30+ "verifyEmail": false,
31+ "loginWithEmailAllowed": true,
32+ "duplicateEmailsAllowed": false,
33+ "resetPasswordAllowed": false,
34+ "editUsernameAllowed": false,
35+ "bruteForceProtected": false,
36+ "permanentLockout": false,
37+ "maxFailureWaitSeconds": 900,
38+ "minimumQuickLoginWaitSeconds": 60,
39+ "waitIncrementSeconds": 60,
40+ "quickLoginCheckMilliSeconds": 1000,
41+ "maxDeltaTimeSeconds": 43200,
42+ "failureFactor": 30,
43+ "roles": {
44+ "realm": [
45+ {
46+ "id": "32626c92-4327-40f1-b318-76a6b5c7eee5",
47+ "name": "offline_access",
48+ "description": "${role_offline-access}",
49+ "composite": false,
50+ "clientRole": false,
51+ "containerId": "master",
52+ "attributes": {}
6253 },
63− "clientRole" : false,
64− "containerId" : "master",
65− "attributes" : { }
66− }, {
67− "id" : "71aca46c-6fcf-4456-ba87-6374e70108a2",
68− "name" : "uma_authorization",
69− "description" : "${role_uma_authorization}",
70− "composite" : false,
71− "clientRole" : false,
72− "containerId" : "master",
73− "attributes" : { }
74− }, {
75− "id" : "6ca3fee8-1a3f-4068-a311-6e81223a884b",
76− "name" : "create-realm",
77− "description" : "${role_create-realm}",
78− "composite" : false,
79− "clientRole" : false,
80− "containerId" : "master",
81− "attributes" : { }
82− } ],
83− "client" : {
84− "oauth2-proxy" : [ ],
85− "security-admin-console" : [ ],
86− "admin-cli" : [ ],
87− "account-console" : [ ],
88− "broker" : [ {
89− "id" : "2cc5e40c-0a28-4c09-85eb-20cd47ac1351",
90− "name" : "read-token",
91− "description" : "${role_read-token}",
92− "composite" : false,
93− "clientRole" : true,
94− "containerId" : "380985f1-61c7-4940-93ae-7a09458071ca",
95− "attributes" : { }
96− } ],
97− "master-realm" : [ {
98− "id" : "a8271c2c-6437-4ca5-ae83-49ea5fe1318d",
99− "name" : "query-groups",
100− "description" : "${role_query-groups}",
101− "composite" : false,
102− "clientRole" : true,
103− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
104− "attributes" : { }
105− }, {
106− "id" : "5a7cb1ae-7dac-486b-bf7b-4d7fbc5adb31",
107− "name" : "create-client",
108− "description" : "${role_create-client}",
109− "composite" : false,
110− "clientRole" : true,
111− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
112− "attributes" : { }
113− }, {
114− "id" : "a9e6a2fa-c31b-4959-bf8a-a46fcc9c65ec",
115− "name" : "view-authorization",
116− "description" : "${role_view-authorization}",
117− "composite" : false,
118− "clientRole" : true,
119− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
120− "attributes" : { }
121− }, {
122− "id" : "1cef34e3-569a-4d2b-ba5c-aafe5c7ab423",
123− "name" : "query-realms",
124− "description" : "${role_query-realms}",
125− "composite" : false,
126− "clientRole" : true,
127− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
128− "attributes" : { }
129− }, {
130− "id" : "efc46075-30cd-4600-aa92-2ae4a171d0c2",
131− "name" : "view-realm",
132− "description" : "${role_view-realm}",
133− "composite" : false,
134− "clientRole" : true,
135− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
136− "attributes" : { }
137− }, {
138− "id" : "9ffacaf0-afc6-49e9-8708-ef35ac40f3f8",
139− "name" : "manage-clients",
140− "description" : "${role_manage-clients}",
141− "composite" : false,
142− "clientRole" : true,
143− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
144− "attributes" : { }
145− }, {
146− "id" : "90662091-b3bc-4ae4-83c9-a4f53e7e9eeb",
147− "name" : "query-users",
148− "description" : "${role_query-users}",
149− "composite" : false,
150− "clientRole" : true,
151− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
152− "attributes" : { }
153− }, {
154− "id" : "9a5fbc9d-6fae-4155-86f6-72fd399aa126",
155− "name" : "manage-realm",
156− "description" : "${role_manage-realm}",
157− "composite" : false,
158− "clientRole" : true,
159− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
160− "attributes" : { }
161− }, {
162− "id" : "03f46127-9436-477d-8c7f-58569f45237c",
163− "name" : "view-events",
164− "description" : "${role_view-events}",
165− "composite" : false,
166− "clientRole" : true,
167− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
168− "attributes" : { }
169− }, {
170− "id" : "f10eaea2-90ab-4310-9d5f-8d986564d061",
171− "name" : "view-identity-providers",
172− "description" : "${role_view-identity-providers}",
173− "composite" : false,
174− "clientRole" : true,
175− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
176− "attributes" : { }
177− }, {
178− "id" : "2403e038-2cf7-4b06-b5cb-33a417a00d8d",
179− "name" : "manage-events",
180− "description" : "${role_manage-events}",
181− "composite" : false,
182− "clientRole" : true,
183− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
184− "attributes" : { }
185− }, {
186− "id" : "677d057b-66f8-4163-9948-95fdbd06dfdc",
187− "name" : "view-users",
188− "description" : "${role_view-users}",
189− "composite" : true,
190− "composites" : {
191− "client" : {
192− "master-realm" : [ "query-groups", "query-users" ]
54+ {
55+ "id": "e36da570-7ae0-4323-8b39-73eb92ce722f",
56+ "name": "admin",
57+ "description": "${role_admin}",
58+ "composite": true,
59+ "composites": {
60+ "realm": [
61+ "create-realm"
62+ ],
63+ "client": {
64+ "master-realm": [
65+ "query-groups",
66+ "create-client",
67+ "query-realms",
68+ "view-authorization",
69+ "view-realm",
70+ "manage-clients",
71+ "query-users",
72+ "manage-realm",
73+ "view-events",
74+ "manage-events",
75+ "view-identity-providers",
76+ "view-users",
77+ "manage-identity-providers",
78+ "manage-authorization",
79+ "manage-users",
80+ "view-clients",
81+ "query-clients",
82+ "impersonation"
83+ ]
19384 }
19485 },
195− "clientRole" : true,
196− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
197− "attributes" : { }
198− }, {
199− "id" : "dc140fa6-bf2c-49f2-b8c9-fc34ef8a2c63",
200− "name" : "manage-identity-providers",
201− "description" : "${role_manage-identity-providers}",
202− "composite" : false,
203− "clientRole" : true,
204− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
205− "attributes" : { }
206− }, {
207− "id" : "155bf234-4895-4855-95c2-a460518f57e8",
208− "name" : "manage-authorization",
209− "description" : "${role_manage-authorization}",
210− "composite" : false,
211− "clientRole" : true,
212− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
213− "attributes" : { }
214− }, {
215− "id" : "5441ec71-3eac-4696-9e68-0de54fbdde98",
216− "name" : "manage-users",
217− "description" : "${role_manage-users}",
218− "composite" : false,
219− "clientRole" : true,
220− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
221− "attributes" : { }
222− }, {
223− "id" : "2db0f052-cb91-4170-81fd-107756b162f7",
224− "name" : "view-clients",
225− "description" : "${role_view-clients}",
226− "composite" : true,
227− "composites" : {
228− "client" : {
229− "master-realm" : [ "query-clients" ]
230− }
86+ "clientRole": false,
87+ "containerId": "master",
88+ "attributes": {}
89+ },
90+ {
91+ "id": "71aca46c-6fcf-4456-ba87-6374e70108a2",
92+ "name": "uma_authorization",
93+ "description": "${role_uma_authorization}",
94+ "composite": false,
95+ "clientRole": false,
96+ "containerId": "master",
97+ "attributes": {}
98+ },
99+ {
100+ "id": "6ca3fee8-1a3f-4068-a311-6e81223a884b",
101+ "name": "create-realm",
102+ "description": "${role_create-realm}",
103+ "composite": false,
104+ "clientRole": false,
105+ "containerId": "master",
106+ "attributes": {}
107+ }
108+ ],
109+ "client": {
110+ "oauth2-proxy": [],
111+ "security-admin-console": [],
112+ "admin-cli": [],
113+ "account-console": [],
114+ "broker": [
115+ {
116+ "id": "2cc5e40c-0a28-4c09-85eb-20cd47ac1351",
117+ "name": "read-token",
118+ "description": "${role_read-token}",
119+ "composite": false,
120+ "clientRole": true,
121+ "containerId": "380985f1-61c7-4940-93ae-7a09458071ca",
122+ "attributes": {}
123+ }
124+ ],
125+ "master-realm": [
126+ {
127+ "id": "a8271c2c-6437-4ca5-ae83-49ea5fe1318d",
128+ "name": "query-groups",
129+ "description": "${role_query-groups}",
130+ "composite": false,
131+ "clientRole": true,
132+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
133+ "attributes": {}
231134 },
232− "clientRole" : true,
233− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
234− "attributes" : { }
235− }, {
236− "id" : "e1d7f235-8bf2-40b8-be49-49aca70a5088",
237− "name" : "query-clients",
238− "description" : "${role_query-clients}",
239− "composite" : false,
240− "clientRole" : true,
241− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
242− "attributes" : { }
243− }, {
244− "id" : "e743f66a-2f56-4b97-b34b-33f06ff1e739",
245− "name" : "impersonation",
246− "description" : "${role_impersonation}",
247− "composite" : false,
248− "clientRole" : true,
249− "containerId" : "7174c175-1887-4e57-b95b-969fe040deff",
250− "attributes" : { }
251− } ],
252− "account" : [ {
253− "id" : "64d8f532-839e-4386-b2eb-fe8848b0a9de",
254− "name" : "manage-consent",
255− "description" : "${role_manage-consent}",
256− "composite" : true,
257− "composites" : {
258− "client" : {
259− "account" : [ "view-consent" ]
260− }
135+ {
136+ "id": "5a7cb1ae-7dac-486b-bf7b-4d7fbc5adb31",
137+ "name": "create-client",
138+ "description": "${role_create-client}",
139+ "composite": false,
140+ "clientRole": true,
141+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
142+ "attributes": {}
261143 },
262− "clientRole" : true,
263− "containerId" : "a367038f-fe01-4459-9f91-7ad0cf498533",
264− "attributes" : { }
265− }, {
266− "id" : "3ec22748-960f-4f96-a43e-50f54a02dc23",
267− "name" : "view-profile",
268− "description" : "${role_view-profile}",
269− "composite" : false,
270− "clientRole" : true,
271− "containerId" : "a367038f-fe01-4459-9f91-7ad0cf498533",
272− "attributes" : { }
273− }, {
274− "id" : "177d18e4-46b0-4ea3-8b70-327486ce5bb2",
275− "name" : "view-applications",
276− "description" : "${role_view-applications}",
277− "composite" : false,
278− "clientRole" : true,
279− "containerId" : "a367038f-fe01-4459-9f91-7ad0cf498533",
280− "attributes" : { }
281− }, {
282− "id" : "703643d6-0542-4e27-9737-7c442925c18c",
283− "name" : "manage-account-links",
284− "description" : "${role_manage-account-links}",
285− "composite" : false,
286− "clientRole" : true,
287− "containerId" : "a367038f-fe01-4459-9f91-7ad0cf498533",
288− "attributes" : { }
289− }, {
290− "id" : "c64f9f66-d762-4337-8833-cf31c316e8a7",
291− "name" : "view-consent",
292− "description" : "${role_view-consent}",
293− "composite" : false,
294− "clientRole" : true,
295− "containerId" : "a367038f-fe01-4459-9f91-7ad0cf498533",
296− "attributes" : { }
297− }, {
298− "id" : "611f568b-0fdd-4d2e-ba34-03136cd486c4",
299− "name" : "manage-account",
300− "description" : "${role_manage-account}",
301− "composite" : true,
302− "composites" : {
303− "client" : {
304− "account" : [ "manage-account-links" ]
305− }
144+ {
145+ "id": "a9e6a2fa-c31b-4959-bf8a-a46fcc9c65ec",
146+ "name": "view-authorization",
147+ "description": "${role_view-authorization}",
148+ "composite": false,
149+ "clientRole": true,
150+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
151+ "attributes": {}
152+ },
153+ {
154+ "id": "1cef34e3-569a-4d2b-ba5c-aafe5c7ab423",
155+ "name": "query-realms",
156+ "description": "${role_query-realms}",
157+ "composite": false,
158+ "clientRole": true,
159+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
160+ "attributes": {}
161+ },
162+ {
163+ "id": "efc46075-30cd-4600-aa92-2ae4a171d0c2",
164+ "name": "view-realm",
165+ "description": "${role_view-realm}",
166+ "composite": false,
167+ "clientRole": true,
168+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
169+ "attributes": {}
170+ },
171+ {
172+ "id": "9ffacaf0-afc6-49e9-8708-ef35ac40f3f8",
173+ "name": "manage-clients",
174+ "description": "${role_manage-clients}",
175+ "composite": false,
176+ "clientRole": true,
177+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
178+ "attributes": {}
179+ },
180+ {
181+ "id": "90662091-b3bc-4ae4-83c9-a4f53e7e9eeb",
182+ "name": "query-users",
183+ "description": "${role_query-users}",
184+ "composite": false,
185+ "clientRole": true,
186+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
187+ "attributes": {}
188+ },
189+ {
190+ "id": "9a5fbc9d-6fae-4155-86f6-72fd399aa126",
191+ "name": "manage-realm",
192+ "description": "${role_manage-realm}",
193+ "composite": false,
194+ "clientRole": true,
195+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
196+ "attributes": {}
197+ },
198+ {
199+ "id": "03f46127-9436-477d-8c7f-58569f45237c",
200+ "name": "view-events",
201+ "description": "${role_view-events}",
202+ "composite": false,
203+ "clientRole": true,
204+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
205+ "attributes": {}
206+ },
207+ {
208+ "id": "f10eaea2-90ab-4310-9d5f-8d986564d061",
209+ "name": "view-identity-providers",
210+ "description": "${role_view-identity-providers}",
211+ "composite": false,
212+ "clientRole": true,
213+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
214+ "attributes": {}
306215 },
307− "clientRole" : true,
308− "containerId" : "a367038f-fe01-4459-9f91-7ad0cf498533",
309− "attributes" : { }
310− } ]
216+ {
217+ "id": "2403e038-2cf7-4b06-b5cb-33a417a00d8d",
218+ "name": "manage-events",
219+ "description": "${role_manage-events}",
220+ "composite": false,
221+ "clientRole": true,
222+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
223+ "attributes": {}
224+ },
225+ {
226+ "id": "677d057b-66f8-4163-9948-95fdbd06dfdc",
227+ "name": "view-users",
228+ "description": "${role_view-users}",
229+ "composite": true,
230+ "composites": {
231+ "client": {
232+ "master-realm": [
233+ "query-groups",
234+ "query-users"
235+ ]
236+ }
237+ },
238+ "clientRole": true,
239+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
240+ "attributes": {}
241+ },
242+ {
243+ "id": "dc140fa6-bf2c-49f2-b8c9-fc34ef8a2c63",
244+ "name": "manage-identity-providers",
245+ "description": "${role_manage-identity-providers}",
246+ "composite": false,
247+ "clientRole": true,
248+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
249+ "attributes": {}
250+ },
251+ {
252+ "id": "155bf234-4895-4855-95c2-a460518f57e8",
253+ "name": "manage-authorization",
254+ "description": "${role_manage-authorization}",
255+ "composite": false,
256+ "clientRole": true,
257+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
258+ "attributes": {}
259+ },
260+ {
261+ "id": "5441ec71-3eac-4696-9e68-0de54fbdde98",
262+ "name": "manage-users",
263+ "description": "${role_manage-users}",
264+ "composite": false,
265+ "clientRole": true,
266+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
267+ "attributes": {}
268+ },
269+ {
270+ "id": "2db0f052-cb91-4170-81fd-107756b162f7",
271+ "name": "view-clients",
272+ "description": "${role_view-clients}",
273+ "composite": true,
274+ "composites": {
275+ "client": {
276+ "master-realm": [
277+ "query-clients"
278+ ]
279+ }
280+ },
281+ "clientRole": true,
282+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
283+ "attributes": {}
284+ },
285+ {
286+ "id": "e1d7f235-8bf2-40b8-be49-49aca70a5088",
287+ "name": "query-clients",
288+ "description": "${role_query-clients}",
289+ "composite": false,
290+ "clientRole": true,
291+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
292+ "attributes": {}
293+ },
294+ {
295+ "id": "e743f66a-2f56-4b97-b34b-33f06ff1e739",
296+ "name": "impersonation",
297+ "description": "${role_impersonation}",
298+ "composite": false,
299+ "clientRole": true,
300+ "containerId": "7174c175-1887-4e57-b95b-969fe040deff",
301+ "attributes": {}
302+ }
303+ ],
304+ "account": [
305+ {
306+ "id": "64d8f532-839e-4386-b2eb-fe8848b0a9de",
307+ "name": "manage-consent",
308+ "description": "${role_manage-consent}",
309+ "composite": true,
310+ "composites": {
311+ "client": {
312+ "account": [
313+ "view-consent"
314+ ]
315+ }
316+ },
317+ "clientRole": true,
318+ "containerId": "a367038f-fe01-4459-9f91-7ad0cf498533",
319+ "attributes": {}
320+ },
321+ {
322+ "id": "3ec22748-960f-4f96-a43e-50f54a02dc23",
323+ "name": "view-profile",
324+ "description": "${role_view-profile}",
325+ "composite": false,
326+ "clientRole": true,
327+ "containerId": "a367038f-fe01-4459-9f91-7ad0cf498533",
328+ "attributes": {}
329+ },
330+ {
331+ "id": "177d18e4-46b0-4ea3-8b70-327486ce5bb2",
332+ "name": "view-applications",
333+ "description": "${role_view-applications}",
334+ "composite": false,
335+ "clientRole": true,
336+ "containerId": "a367038f-fe01-4459-9f91-7ad0cf498533",
337+ "attributes": {}
338+ },
339+ {
340+ "id": "703643d6-0542-4e27-9737-7c442925c18c",
341+ "name": "manage-account-links",
342+ "description": "${role_manage-account-links}",
343+ "composite": false,
344+ "clientRole": true,
345+ "containerId": "a367038f-fe01-4459-9f91-7ad0cf498533",
346+ "attributes": {}
347+ },
348+ {
349+ "id": "c64f9f66-d762-4337-8833-cf31c316e8a7",
350+ "name": "view-consent",
351+ "description": "${role_view-consent}",
352+ "composite": false,
353+ "clientRole": true,
354+ "containerId": "a367038f-fe01-4459-9f91-7ad0cf498533",
355+ "attributes": {}
356+ },
357+ {
358+ "id": "611f568b-0fdd-4d2e-ba34-03136cd486c4",
359+ "name": "manage-account",
360+ "description": "${role_manage-account}",
361+ "composite": true,
362+ "composites": {
363+ "client": {
364+ "account": [
365+ "manage-account-links"
366+ ]
367+ }
368+ },
369+ "clientRole": true,
370+ "containerId": "a367038f-fe01-4459-9f91-7ad0cf498533",
371+ "attributes": {}
372+ }
373+ ]
311374 }
312375 },
313− "groups" : [ ],
314− "defaultRoles" : [ "offline_access", "uma_authorization" ],
315− "requiredCredentials" : [ "password" ],
316− "otpPolicyType" : "totp",
317− "otpPolicyAlgorithm" : "HmacSHA1",
318− "otpPolicyInitialCounter" : 0,
319− "otpPolicyDigits" : 6,
320− "otpPolicyLookAheadWindow" : 1,
321− "otpPolicyPeriod" : 30,
322− "otpSupportedApplications" : [ "FreeOTP", "Google Authenticator" ],
323− "webAuthnPolicyRpEntityName" : "keycloak",
324− "webAuthnPolicySignatureAlgorithms" : [ "ES256" ],
325− "webAuthnPolicyRpId" : "",
326− "webAuthnPolicyAttestationConveyancePreference" : "not specified",
327− "webAuthnPolicyAuthenticatorAttachment" : "not specified",
328− "webAuthnPolicyRequireResidentKey" : "not specified",
329− "webAuthnPolicyUserVerificationRequirement" : "not specified",
330− "webAuthnPolicyCreateTimeout" : 0,
331− "webAuthnPolicyAvoidSameAuthenticatorRegister" : false,
332− "webAuthnPolicyAcceptableAaguids" : [ ],
333− "webAuthnPolicyPasswordlessRpEntityName" : "keycloak",
334− "webAuthnPolicyPasswordlessSignatureAlgorithms" : [ "ES256" ],
335− "webAuthnPolicyPasswordlessRpId" : "",
336− "webAuthnPolicyPasswordlessAttestationConveyancePreference" : "not specified",
337− "webAuthnPolicyPasswordlessAuthenticatorAttachment" : "not specified",
338− "webAuthnPolicyPasswordlessRequireResidentKey" : "not specified",
339− "webAuthnPolicyPasswordlessUserVerificationRequirement" : "not specified",
340− "webAuthnPolicyPasswordlessCreateTimeout" : 0,
341− "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister" : false,
342− "webAuthnPolicyPasswordlessAcceptableAaguids" : [ ],
343− "scopeMappings" : [ {
344− "clientScope" : "offline_access",
345− "roles" : [ "offline_access" ]
346− } ],
347− "clientScopeMappings" : {
348− "account" : [ {
349− "client" : "account-console",
350− "roles" : [ "manage-account" ]
351− } ]
376+ "groups": [],
377+ "defaultRoles": [
378+ "offline_access",
379+ "uma_authorization"
380+ ],
381+ "requiredCredentials": [
382+ "password"
383+ ],
384+ "otpPolicyType": "totp",
385+ "otpPolicyAlgorithm": "HmacSHA1",
386+ "otpPolicyInitialCounter": 0,
387+ "otpPolicyDigits": 6,
388+ "otpPolicyLookAheadWindow": 1,
389+ "otpPolicyPeriod": 30,
390+ "otpSupportedApplications": [
391+ "FreeOTP",
392+ "Google Authenticator"
393+ ],
394+ "webAuthnPolicyRpEntityName": "keycloak",
395+ "webAuthnPolicySignatureAlgorithms": [
396+ "ES256"
397+ ],
398+ "webAuthnPolicyRpId": "",
399+ "webAuthnPolicyAttestationConveyancePreference": "not specified",
400+ "webAuthnPolicyAuthenticatorAttachment": "not specified",
401+ "webAuthnPolicyRequireResidentKey": "not specified",
402+ "webAuthnPolicyUserVerificationRequirement": "not specified",
403+ "webAuthnPolicyCreateTimeout": 0,
404+ "webAuthnPolicyAvoidSameAuthenticatorRegister": false,
405+ "webAuthnPolicyAcceptableAaguids": [],
406+ "webAuthnPolicyPasswordlessRpEntityName": "keycloak",
407+ "webAuthnPolicyPasswordlessSignatureAlgorithms": [
408+ "ES256"
409+ ],
410+ "webAuthnPolicyPasswordlessRpId": "",
411+ "webAuthnPolicyPasswordlessAttestationConveyancePreference": "not specified",
412+ "webAuthnPolicyPasswordlessAuthenticatorAttachment": "not specified",
413+ "webAuthnPolicyPasswordlessRequireResidentKey": "not specified",
414+ "webAuthnPolicyPasswordlessUserVerificationRequirement": "not specified",
415+ "webAuthnPolicyPasswordlessCreateTimeout": 0,
416+ "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister": false,
417+ "webAuthnPolicyPasswordlessAcceptableAaguids": [],
418+ "scopeMappings": [
419+ {
420+ "clientScope": "offline_access",
421+ "roles": [
422+ "offline_access"
423+ ]
424+ }
425+ ],
426+ "clientScopeMappings": {
427+ "account": [
428+ {
429+ "client": "account-console",
430+ "roles": [
431+ "manage-account"
432+ ]
433+ }
434+ ]
352435 },
353− "clients" : [ {
354− "id" : "a367038f-fe01-4459-9f91-7ad0cf498533",
355− "clientId" : "account",
356− "name" : "${client_account}",
357− "rootUrl" : "${authBaseUrl}",
358− "baseUrl" : "/realms/master/account/",
359− "surrogateAuthRequired" : false,
360− "enabled" : true,
361− "alwaysDisplayInConsole" : false,
362− "clientAuthenticatorType" : "client-secret",
363− "secret" : "0896a464-da81-4454-bee9-b56bdbad9e7f",
364− "defaultRoles" : [ "view-profile", "manage-account" ],
365− "redirectUris" : [ "/realms/master/account/*" ],
366− "webOrigins" : [ ],
367− "notBefore" : 0,
368− "bearerOnly" : false,
369− "consentRequired" : false,
370− "standardFlowEnabled" : true,
371− "implicitFlowEnabled" : false,
372− "directAccessGrantsEnabled" : false,
373− "serviceAccountsEnabled" : false,
374− "publicClient" : false,
375− "frontchannelLogout" : false,
376− "protocol" : "openid-connect",
377− "attributes" : { },
378− "authenticationFlowBindingOverrides" : { },
379− "fullScopeAllowed" : false,
380− "nodeReRegistrationTimeout" : 0,
381− "defaultClientScopes" : [ "web-origins", "role_list", "roles", "profile", "email" ],
382− "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
383− }, {
384− "id" : "72f75604-1e21-407c-b967-790aafd11534",
385− "clientId" : "account-console",
386− "name" : "${client_account-console}",
387− "rootUrl" : "${authBaseUrl}",
388− "baseUrl" : "/realms/master/account/",
389− "surrogateAuthRequired" : false,
390− "enabled" : true,
391− "alwaysDisplayInConsole" : false,
392− "clientAuthenticatorType" : "client-secret",
393− "secret" : "91f85142-ee18-4e30-9949-e5acb701bdee",
394− "redirectUris" : [ "/realms/master/account/*" ],
395− "webOrigins" : [ ],
396− "notBefore" : 0,
397− "bearerOnly" : false,
398− "consentRequired" : false,
399− "standardFlowEnabled" : true,
400− "implicitFlowEnabled" : false,
401− "directAccessGrantsEnabled" : false,
402− "serviceAccountsEnabled" : false,
403− "publicClient" : true,
404− "frontchannelLogout" : false,
405− "protocol" : "openid-connect",
406− "attributes" : {
407− "pkce.code.challenge.method" : "S256"
436+ "clients": [
437+ {
438+ "id": "a367038f-fe01-4459-9f91-7ad0cf498533",
439+ "clientId": "account",
440+ "name": "${client_account}",
441+ "rootUrl": "${authBaseUrl}",
442+ "baseUrl": "/realms/master/account/",
443+ "surrogateAuthRequired": false,
444+ "enabled": true,
445+ "alwaysDisplayInConsole": false,
446+ "clientAuthenticatorType": "client-secret",
447+ "secret": "0896a464-da81-4454-bee9-b56bdbad9e7f",
448+ "defaultRoles": [
449+ "view-profile",
450+ "manage-account"
451+ ],
452+ "redirectUris": [
453+ "/realms/master/account/*"
454+ ],
455+ "webOrigins": [],
456+ "notBefore": 0,
457+ "bearerOnly": false,
458+ "consentRequired": false,
459+ "standardFlowEnabled": true,
460+ "implicitFlowEnabled": false,
461+ "directAccessGrantsEnabled": false,
462+ "serviceAccountsEnabled": false,
463+ "publicClient": false,
464+ "frontchannelLogout": false,
465+ "protocol": "openid-connect",
466+ "attributes": {},
467+ "authenticationFlowBindingOverrides": {},
468+ "fullScopeAllowed": false,
469+ "nodeReRegistrationTimeout": 0,
470+ "defaultClientScopes": [
471+ "web-origins",
472+ "role_list",
473+ "roles",
474+ "profile",
475+ "email"
476+ ],
477+ "optionalClientScopes": [
478+ "address",
479+ "phone",
480+ "offline_access",
481+ "microprofile-jwt"
482+ ]
483+ },
484+ {
485+ "id": "72f75604-1e21-407c-b967-790aafd11534",
486+ "clientId": "account-console",
487+ "name": "${client_account-console}",
488+ "rootUrl": "${authBaseUrl}",
489+ "baseUrl": "/realms/master/account/",
490+ "surrogateAuthRequired": false,
491+ "enabled": true,
492+ "alwaysDisplayInConsole": false,
493+ "clientAuthenticatorType": "client-secret",
494+ "secret": "91f85142-ee18-4e30-9949-e5acb701bdee",
495+ "redirectUris": [
496+ "/realms/master/account/*"
497+ ],
498+ "webOrigins": [],
499+ "notBefore": 0,
500+ "bearerOnly": false,
501+ "consentRequired": false,
502+ "standardFlowEnabled": true,
503+ "implicitFlowEnabled": false,
504+ "directAccessGrantsEnabled": false,
505+ "serviceAccountsEnabled": false,
506+ "publicClient": true,
507+ "frontchannelLogout": false,
508+ "protocol": "openid-connect",
509+ "attributes": {
510+ "pkce.code.challenge.method": "S256"
511+ },
512+ "authenticationFlowBindingOverrides": {},
513+ "fullScopeAllowed": false,
514+ "nodeReRegistrationTimeout": 0,
515+ "protocolMappers": [
516+ {
517+ "id": "2772c101-0dba-49b7-9627-5aaddc666939",
518+ "name": "audience resolve",
519+ "protocol": "openid-connect",
520+ "protocolMapper": "oidc-audience-resolve-mapper",
521+ "consentRequired": false,
522+ "config": {}
523+ }
524+ ],
525+ "defaultClientScopes": [
526+ "web-origins",
527+ "role_list",
528+ "roles",
529+ "profile",
530+ "email"
531+ ],
532+ "optionalClientScopes": [
533+ "address",
534+ "phone",
535+ "offline_access",
536+ "microprofile-jwt"
537+ ]
538+ },
539+ {
540+ "id": "b13fd0de-3be0-4a08-bc5d-d1de34421b1a",
541+ "clientId": "admin-cli",
542+ "name": "${client_admin-cli}",
543+ "surrogateAuthRequired": false,
544+ "enabled": true,
545+ "alwaysDisplayInConsole": false,
546+ "clientAuthenticatorType": "client-secret",
547+ "secret": "4640af2e-b4a6-44eb-85ec-6278a62a4f01",
548+ "redirectUris": [],
549+ "webOrigins": [],
550+ "notBefore": 0,
551+ "bearerOnly": false,
552+ "consentRequired": false,
553+ "standardFlowEnabled": false,
554+ "implicitFlowEnabled": false,
555+ "directAccessGrantsEnabled": true,
556+ "serviceAccountsEnabled": false,
557+ "publicClient": true,
558+ "frontchannelLogout": false,
559+ "protocol": "openid-connect",
560+ "attributes": {},
561+ "authenticationFlowBindingOverrides": {},
562+ "fullScopeAllowed": false,
563+ "nodeReRegistrationTimeout": 0,
564+ "defaultClientScopes": [
565+ "web-origins",
566+ "role_list",
567+ "roles",
568+ "profile",
569+ "email"
570+ ],
571+ "optionalClientScopes": [
572+ "address",
573+ "phone",
574+ "offline_access",
575+ "microprofile-jwt"
576+ ]
577+ },
578+ {
579+ "id": "380985f1-61c7-4940-93ae-7a09458071ca",
580+ "clientId": "broker",
581+ "name": "${client_broker}",
582+ "surrogateAuthRequired": false,
583+ "enabled": true,
584+ "alwaysDisplayInConsole": false,
585+ "clientAuthenticatorType": "client-secret",
586+ "secret": "65d2ba2b-bcae-49ff-9f56-77c818f55930",
587+ "redirectUris": [],
588+ "webOrigins": [],
589+ "notBefore": 0,
590+ "bearerOnly": false,
591+ "consentRequired": false,
592+ "standardFlowEnabled": true,
593+ "implicitFlowEnabled": false,
594+ "directAccessGrantsEnabled": false,
595+ "serviceAccountsEnabled": false,
596+ "publicClient": false,
597+ "frontchannelLogout": false,
598+ "protocol": "openid-connect",
599+ "attributes": {},
600+ "authenticationFlowBindingOverrides": {},
601+ "fullScopeAllowed": false,
602+ "nodeReRegistrationTimeout": 0,
603+ "defaultClientScopes": [
604+ "web-origins",
605+ "role_list",
606+ "roles",
607+ "profile",
608+ "email"
609+ ],
610+ "optionalClientScopes": [
611+ "address",
612+ "phone",
613+ "offline_access",
614+ "microprofile-jwt"
615+ ]
616+ },
617+ {
618+ "id": "7174c175-1887-4e57-b95b-969fe040deff",
619+ "clientId": "master-realm",
620+ "name": "master Realm",
621+ "surrogateAuthRequired": false,
622+ "enabled": true,
623+ "alwaysDisplayInConsole": false,
624+ "clientAuthenticatorType": "client-secret",
625+ "secret": "40f73851-a94c-4091-90de-aeee8ca1acf8",
626+ "redirectUris": [],
627+ "webOrigins": [],
628+ "notBefore": 0,
629+ "bearerOnly": true,
630+ "consentRequired": false,
631+ "standardFlowEnabled": true,
632+ "implicitFlowEnabled": false,
633+ "directAccessGrantsEnabled": false,
634+ "serviceAccountsEnabled": false,
635+ "publicClient": false,
636+ "frontchannelLogout": false,
637+ "attributes": {},
638+ "authenticationFlowBindingOverrides": {},
639+ "fullScopeAllowed": true,
640+ "nodeReRegistrationTimeout": 0,
641+ "defaultClientScopes": [
642+ "web-origins",
643+ "role_list",
644+ "roles",
645+ "profile",
646+ "email"
647+ ],
648+ "optionalClientScopes": [
649+ "address",
650+ "phone",
651+ "offline_access",
652+ "microprofile-jwt"
653+ ]
408654 },
409− "authenticationFlowBindingOverrides" : { },
410− "fullScopeAllowed" : false,
411− "nodeReRegistrationTimeout" : 0,
412− "protocolMappers" : [ {
413− "id" : "2772c101-0dba-49b7-9627-5aaddc666939",
414− "name" : "audience resolve",
415− "protocol" : "openid-connect",
416− "protocolMapper" : "oidc-audience-resolve-mapper",
417− "consentRequired" : false,
418− "config" : { }
419− } ],
420− "defaultClientScopes" : [ "web-origins", "role_list", "roles", "profile", "email" ],
421− "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
422− }, {
423− "id" : "b13fd0de-3be0-4a08-bc5d-d1de34421b1a",
424− "clientId" : "admin-cli",
425− "name" : "${client_admin-cli}",
426− "surrogateAuthRequired" : false,
427− "enabled" : true,
428− "alwaysDisplayInConsole" : false,
429− "clientAuthenticatorType" : "client-secret",
430− "secret" : "4640af2e-b4a6-44eb-85ec-6278a62a4f01",
431− "redirectUris" : [ ],
432− "webOrigins" : [ ],
433− "notBefore" : 0,
434− "bearerOnly" : false,
435− "consentRequired" : false,
436− "standardFlowEnabled" : false,
437− "implicitFlowEnabled" : false,
438− "directAccessGrantsEnabled" : true,
439− "serviceAccountsEnabled" : false,
440− "publicClient" : true,
441− "frontchannelLogout" : false,
442− "protocol" : "openid-connect",
443− "attributes" : { },
444− "authenticationFlowBindingOverrides" : { },
445− "fullScopeAllowed" : false,
446− "nodeReRegistrationTimeout" : 0,
447− "defaultClientScopes" : [ "web-origins", "role_list", "roles", "profile", "email" ],
448− "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
449− }, {
450− "id" : "380985f1-61c7-4940-93ae-7a09458071ca",
451− "clientId" : "broker",
452− "name" : "${client_broker}",
453− "surrogateAuthRequired" : false,
454− "enabled" : true,
455− "alwaysDisplayInConsole" : false,
456− "clientAuthenticatorType" : "client-secret",
457− "secret" : "65d2ba2b-bcae-49ff-9f56-77c818f55930",
458− "redirectUris" : [ ],
459− "webOrigins" : [ ],
460− "notBefore" : 0,
461− "bearerOnly" : false,
462− "consentRequired" : false,
463− "standardFlowEnabled" : true,
464− "implicitFlowEnabled" : false,
465− "directAccessGrantsEnabled" : false,
466− "serviceAccountsEnabled" : false,
467− "publicClient" : false,
468− "frontchannelLogout" : false,
469− "protocol" : "openid-connect",
470− "attributes" : { },
471− "authenticationFlowBindingOverrides" : { },
472− "fullScopeAllowed" : false,
473− "nodeReRegistrationTimeout" : 0,
474− "defaultClientScopes" : [ "web-origins", "role_list", "roles", "profile", "email" ],
475− "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
476− }, {
477− "id" : "7174c175-1887-4e57-b95b-969fe040deff",
478− "clientId" : "master-realm",
479− "name" : "master Realm",
480− "surrogateAuthRequired" : false,
481− "enabled" : true,
482− "alwaysDisplayInConsole" : false,
483− "clientAuthenticatorType" : "client-secret",
484− "secret" : "40f73851-a94c-4091-90de-aeee8ca1acf8",
485− "redirectUris" : [ ],
486− "webOrigins" : [ ],
487− "notBefore" : 0,
488− "bearerOnly" : true,
489− "consentRequired" : false,
490− "standardFlowEnabled" : true,
491− "implicitFlowEnabled" : false,
492− "directAccessGrantsEnabled" : false,
493− "serviceAccountsEnabled" : false,
494− "publicClient" : false,
495− "frontchannelLogout" : false,
496− "attributes" : { },
497− "authenticationFlowBindingOverrides" : { },
498− "fullScopeAllowed" : true,
499− "nodeReRegistrationTimeout" : 0,
500− "defaultClientScopes" : [ "web-origins", "role_list", "roles", "profile", "email" ],
501− "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
502− },
503655 {
504656 "id": "0493c7c6-6e20-49ea-9acb-627c0b52d400",
505657 "clientId": "oauth2-proxy",
@@ -553,1132 +705,1367 @@
553705 "offline_access",
554706 "microprofile-jwt"
555707 ]
556− }, {
557− "id" : "2a3ad1fd-a30d-4b72-89c4-bed12f178338",
558− "clientId" : "security-admin-console",
559− "name" : "${client_security-admin-console}",
560− "rootUrl" : "${authAdminUrl}",
561− "baseUrl" : "/admin/master/console/",
562− "surrogateAuthRequired" : false,
563− "enabled" : true,
564− "alwaysDisplayInConsole" : false,
565− "clientAuthenticatorType" : "client-secret",
566− "secret" : "b234b7aa-8417-410f-b3fd-c57434d3aa4a",
567− "redirectUris" : [ "/admin/master/console/*" ],
568− "webOrigins" : [ "+" ],
569− "notBefore" : 0,
570− "bearerOnly" : false,
571− "consentRequired" : false,
572− "standardFlowEnabled" : true,
573− "implicitFlowEnabled" : false,
574− "directAccessGrantsEnabled" : false,
575− "serviceAccountsEnabled" : false,
576− "publicClient" : true,
577− "frontchannelLogout" : false,
578− "protocol" : "openid-connect",
579− "attributes" : {
580− "pkce.code.challenge.method" : "S256"
581708 },
582− "authenticationFlowBindingOverrides" : { },
583− "fullScopeAllowed" : false,
584− "nodeReRegistrationTimeout" : 0,
585− "protocolMappers" : [ {
586− "id" : "5885b0d3-a917-4b52-8380-f37d0754a2ef",
587− "name" : "locale",
588− "protocol" : "openid-connect",
589− "protocolMapper" : "oidc-usermodel-attribute-mapper",
590− "consentRequired" : false,
591− "config" : {
592− "userinfo.token.claim" : "true",
593− "user.attribute" : "locale",
594− "id.token.claim" : "true",
595− "access.token.claim" : "true",
596− "claim.name" : "locale",
597− "jsonType.label" : "String"
598− }
599− } ],
600− "defaultClientScopes" : [ "web-origins", "role_list", "roles", "profile", "email" ],
601− "optionalClientScopes" : [ "address", "phone", "offline_access", "microprofile-jwt" ]
602− } ],
603− "clientScopes" : [ {
604− "id" : "47ea3b67-4f0c-4c7e-8ac6-a33a3d655894",
605− "name" : "address",
606− "description" : "OpenID Connect built-in scope: address",
607− "protocol" : "openid-connect",
608− "attributes" : {
609− "include.in.token.scope" : "true",
610− "display.on.consent.screen" : "true",
611− "consent.screen.text" : "${addressScopeConsentText}"
709+ {
710+ "id": "2a3ad1fd-a30d-4b72-89c4-bed12f178338",
711+ "clientId": "security-admin-console",
712+ "name": "${client_security-admin-console}",
713+ "rootUrl": "${authAdminUrl}",
714+ "baseUrl": "/admin/master/console/",
715+ "surrogateAuthRequired": false,
716+ "enabled": true,
717+ "alwaysDisplayInConsole": false,
718+ "clientAuthenticatorType": "client-secret",
719+ "secret": "b234b7aa-8417-410f-b3fd-c57434d3aa4a",
720+ "redirectUris": [
721+ "/admin/master/console/*"
722+ ],
723+ "webOrigins": [
724+ "+"
725+ ],
726+ "notBefore": 0,
727+ "bearerOnly": false,
728+ "consentRequired": false,
729+ "standardFlowEnabled": true,
730+ "implicitFlowEnabled": false,
731+ "directAccessGrantsEnabled": false,
732+ "serviceAccountsEnabled": false,
733+ "publicClient": true,
734+ "frontchannelLogout": false,
735+ "protocol": "openid-connect",
736+ "attributes": {
737+ "pkce.code.challenge.method": "S256"
738+ },
739+ "authenticationFlowBindingOverrides": {},
740+ "fullScopeAllowed": false,
741+ "nodeReRegistrationTimeout": 0,
742+ "protocolMappers": [
743+ {
744+ "id": "5885b0d3-a917-4b52-8380-f37d0754a2ef",
745+ "name": "locale",
746+ "protocol": "openid-connect",
747+ "protocolMapper": "oidc-usermodel-attribute-mapper",
748+ "consentRequired": false,
749+ "config": {
750+ "userinfo.token.claim": "true",
751+ "user.attribute": "locale",
752+ "id.token.claim": "true",
753+ "access.token.claim": "true",
754+ "claim.name": "locale",
755+ "jsonType.label": "String"
756+ }
757+ }
758+ ],
759+ "defaultClientScopes": [
760+ "web-origins",
761+ "role_list",
762+ "roles",
763+ "profile",
764+ "email"
765+ ],
766+ "optionalClientScopes": [
767+ "address",
768+ "phone",
769+ "offline_access",
770+ "microprofile-jwt"
771+ ]
772+ }
773+ ],
774+ "clientScopes": [
775+ {
776+ "id": "47ea3b67-4f0c-4c7e-8ac6-a33a3d655894",
777+ "name": "address",
778+ "description": "OpenID Connect built-in scope: address",
779+ "protocol": "openid-connect",
780+ "attributes": {
781+ "include.in.token.scope": "true",
782+ "display.on.consent.screen": "true",
783+ "consent.screen.text": "${addressScopeConsentText}"
784+ },
785+ "protocolMappers": [
786+ {
787+ "id": "4be0ca19-0ec7-4cc1-b263-845ea539ff12",
788+ "name": "address",
789+ "protocol": "openid-connect",
790+ "protocolMapper": "oidc-address-mapper",
791+ "consentRequired": false,
792+ "config": {
793+ "user.attribute.formatted": "formatted",
794+ "user.attribute.country": "country",
795+ "user.attribute.postal_code": "postal_code",
796+ "userinfo.token.claim": "true",
797+ "user.attribute.street": "street",
798+ "id.token.claim": "true",
799+ "user.attribute.region": "region",
800+ "access.token.claim": "true",
801+ "user.attribute.locality": "locality"
802+ }
803+ }
804+ ]
612805 },
613− "protocolMappers" : [ {
614− "id" : "4be0ca19-0ec7-4cc1-b263-845ea539ff12",
615− "name" : "address",
616− "protocol" : "openid-connect",
617− "protocolMapper" : "oidc-address-mapper",
618− "consentRequired" : false,
619− "config" : {
620− "user.attribute.formatted" : "formatted",
621− "user.attribute.country" : "country",
622− "user.attribute.postal_code" : "postal_code",
623− "userinfo.token.claim" : "true",
624− "user.attribute.street" : "street",
625− "id.token.claim" : "true",
626− "user.attribute.region" : "region",
627− "access.token.claim" : "true",
628− "user.attribute.locality" : "locality"
629− }
630− } ]
631− }, {
632− "id" : "aba72e57-540f-4825-95b7-2d143be028cc",
633− "name" : "email",
634− "description" : "OpenID Connect built-in scope: email",
635− "protocol" : "openid-connect",
636− "attributes" : {
637− "include.in.token.scope" : "true",
638− "display.on.consent.screen" : "true",
639− "consent.screen.text" : "${emailScopeConsentText}"
806+ {
807+ "id": "aba72e57-540f-4825-95b7-2d143be028cc",
808+ "name": "email",
809+ "description": "OpenID Connect built-in scope: email",
810+ "protocol": "openid-connect",
811+ "attributes": {
812+ "include.in.token.scope": "true",
813+ "display.on.consent.screen": "true",
814+ "consent.screen.text": "${emailScopeConsentText}"
815+ },
816+ "protocolMappers": [
817+ {
818+ "id": "7fe82724-5748-4b6d-9708-a028f5d3b970",
819+ "name": "email verified",
820+ "protocol": "openid-connect",
821+ "protocolMapper": "oidc-usermodel-property-mapper",
822+ "consentRequired": false,
823+ "config": {
824+ "userinfo.token.claim": "true",
825+ "user.attribute": "emailVerified",
826+ "id.token.claim": "true",
827+ "access.token.claim": "true",
828+ "claim.name": "email_verified",
829+ "jsonType.label": "boolean"
830+ }
831+ },
832+ {
833+ "id": "e42f334e-cfae-44a0-905d-c3ef215feaae",
834+ "name": "email",
835+ "protocol": "openid-connect",
836+ "protocolMapper": "oidc-usermodel-property-mapper",
837+ "consentRequired": false,
838+ "config": {
839+ "userinfo.token.claim": "true",
840+ "user.attribute": "email",
841+ "id.token.claim": "true",
842+ "access.token.claim": "true",
843+ "claim.name": "email",
844+ "jsonType.label": "String"
845+ }
846+ }
847+ ]
640848 },
641− "protocolMappers" : [ {
642− "id" : "7fe82724-5748-4b6d-9708-a028f5d3b970",
643− "name" : "email verified",
644− "protocol" : "openid-connect",
645− "protocolMapper" : "oidc-usermodel-property-mapper",
646− "consentRequired" : false,
647− "config" : {
648− "userinfo.token.claim" : "true",
649− "user.attribute" : "emailVerified",
650− "id.token.claim" : "true",
651− "access.token.claim" : "true",
652− "claim.name" : "email_verified",
653− "jsonType.label" : "boolean"
654− }
655− }, {
656− "id" : "e42f334e-cfae-44a0-905d-c3ef215feaae",
657− "name" : "email",
658− "protocol" : "openid-connect",
659− "protocolMapper" : "oidc-usermodel-property-mapper",
660− "consentRequired" : false,
661− "config" : {
662− "userinfo.token.claim" : "true",
663− "user.attribute" : "email",
664− "id.token.claim" : "true",
665− "access.token.claim" : "true",
666− "claim.name" : "email",
667− "jsonType.label" : "String"
668− }
669− } ]
670− }, {
671− "id" : "ec765598-bd71-4318-86c3-b3f81a41c99e",
672− "name" : "microprofile-jwt",
673− "description" : "Microprofile - JWT built-in scope",
674− "protocol" : "openid-connect",
675− "attributes" : {
676− "include.in.token.scope" : "true",
677− "display.on.consent.screen" : "false"
849+ {
850+ "id": "ec765598-bd71-4318-86c3-b3f81a41c99e",
851+ "name": "microprofile-jwt",
852+ "description": "Microprofile - JWT built-in scope",
853+ "protocol": "openid-connect",
854+ "attributes": {
855+ "include.in.token.scope": "true",
856+ "display.on.consent.screen": "false"
857+ },
858+ "protocolMappers": [
859+ {
860+ "id": "90694036-4014-4672-a2c8-c68319e9308a",
861+ "name": "upn",
862+ "protocol": "openid-connect",
863+ "protocolMapper": "oidc-usermodel-property-mapper",
864+ "consentRequired": false,
865+ "config": {
866+ "userinfo.token.claim": "true",
867+ "user.attribute": "username",
868+ "id.token.claim": "true",
869+ "access.token.claim": "true",
870+ "claim.name": "upn",
871+ "jsonType.label": "String"
872+ }
873+ },
874+ {
875+ "id": "f7b0fcc0-6139-4158-ac45-34fd9a58a5ef",
876+ "name": "groups",
877+ "protocol": "openid-connect",
878+ "protocolMapper": "oidc-usermodel-realm-role-mapper",
879+ "consentRequired": false,
880+ "config": {
881+ "multivalued": "true",
882+ "user.attribute": "foo",
883+ "id.token.claim": "true",
884+ "access.token.claim": "true",
885+ "claim.name": "groups",
886+ "jsonType.label": "String"
887+ }
888+ }
889+ ]
678890 },
679− "protocolMappers" : [ {
680− "id" : "90694036-4014-4672-a2c8-c68319e9308a",
681− "name" : "upn",
682− "protocol" : "openid-connect",
683− "protocolMapper" : "oidc-usermodel-property-mapper",
684− "consentRequired" : false,
685− "config" : {
686− "userinfo.token.claim" : "true",
687− "user.attribute" : "username",
688− "id.token.claim" : "true",
689− "access.token.claim" : "true",
690− "claim.name" : "upn",
691− "jsonType.label" : "String"
692− }
693− }, {
694− "id" : "f7b0fcc0-6139-4158-ac45-34fd9a58a5ef",
695− "name" : "groups",
696− "protocol" : "openid-connect",
697− "protocolMapper" : "oidc-usermodel-realm-role-mapper",
698− "consentRequired" : false,
699− "config" : {
700− "multivalued" : "true",
701− "user.attribute" : "foo",
702− "id.token.claim" : "true",
703− "access.token.claim" : "true",
704− "claim.name" : "groups",
705− "jsonType.label" : "String"
891+ {
892+ "id": "8a09267b-3634-4a9c-baab-6f2fb4137347",
893+ "name": "offline_access",
894+ "description": "OpenID Connect built-in scope: offline_access",
895+ "protocol": "openid-connect",
896+ "attributes": {
897+ "consent.screen.text": "${offlineAccessScopeConsentText}",
898+ "display.on.consent.screen": "true"
706899 }
707− } ]
708− }, {
709− "id" : "8a09267b-3634-4a9c-baab-6f2fb4137347",
710− "name" : "offline_access",
711− "description" : "OpenID Connect built-in scope: offline_access",
712− "protocol" : "openid-connect",
713− "attributes" : {
714− "consent.screen.text" : "${offlineAccessScopeConsentText}",
715− "display.on.consent.screen" : "true"
716− }
717− }, {
718− "id" : "3a48c5dd-33a8-4be0-9d2e-30fd7f98363a",
719− "name" : "phone",
720− "description" : "OpenID Connect built-in scope: phone",
721− "protocol" : "openid-connect",
722− "attributes" : {
723− "include.in.token.scope" : "true",
724− "display.on.consent.screen" : "true",
725− "consent.screen.text" : "${phoneScopeConsentText}"
726900 },
727− "protocolMappers" : [ {
728− "id" : "5427d1b4-ba79-412a-b23c-da640a98980c",
729− "name" : "phone number",
730− "protocol" : "openid-connect",
731− "protocolMapper" : "oidc-usermodel-attribute-mapper",
732− "consentRequired" : false,
733− "config" : {
734− "userinfo.token.claim" : "true",
735− "user.attribute" : "phoneNumber",
736− "id.token.claim" : "true",
737− "access.token.claim" : "true",
738− "claim.name" : "phone_number",
739− "jsonType.label" : "String"
740− }
741− }, {
742− "id" : "31d4a53f-6503-40e8-bd9d-79a7c46c4fbe",
743− "name" : "phone number verified",
744− "protocol" : "openid-connect",
745− "protocolMapper" : "oidc-usermodel-attribute-mapper",
746− "consentRequired" : false,
747− "config" : {
748− "userinfo.token.claim" : "true",
749− "user.attribute" : "phoneNumberVerified",
750− "id.token.claim" : "true",
751− "access.token.claim" : "true",
752− "claim.name" : "phone_number_verified",
753− "jsonType.label" : "boolean"
754− }
755− } ]
756− }, {
757− "id" : "5921a9e9-7fec-4471-95e3-dd96eebdec58",
758− "name" : "profile",
759− "description" : "OpenID Connect built-in scope: profile",
760− "protocol" : "openid-connect",
761− "attributes" : {
762− "include.in.token.scope" : "true",
763− "display.on.consent.screen" : "true",
764− "consent.screen.text" : "${profileScopeConsentText}"
901+ {
902+ "id": "3a48c5dd-33a8-4be0-9d2e-30fd7f98363a",
903+ "name": "phone",
904+ "description": "OpenID Connect built-in scope: phone",
905+ "protocol": "openid-connect",
906+ "attributes": {
907+ "include.in.token.scope": "true",
908+ "display.on.consent.screen": "true",
909+ "consent.screen.text": "${phoneScopeConsentText}"
910+ },
911+ "protocolMappers": [
912+ {
913+ "id": "5427d1b4-ba79-412a-b23c-da640a98980c",
914+ "name": "phone number",
915+ "protocol": "openid-connect",
916+ "protocolMapper": "oidc-usermodel-attribute-mapper",
917+ "consentRequired": false,
918+ "config": {
919+ "userinfo.token.claim": "true",
920+ "user.attribute": "phoneNumber",
921+ "id.token.claim": "true",
922+ "access.token.claim": "true",
923+ "claim.name": "phone_number",
924+ "jsonType.label": "String"
925+ }
926+ },
927+ {
928+ "id": "31d4a53f-6503-40e8-bd9d-79a7c46c4fbe",
929+ "name": "phone number verified",
930+ "protocol": "openid-connect",
931+ "protocolMapper": "oidc-usermodel-attribute-mapper",
932+ "consentRequired": false,
933+ "config": {
934+ "userinfo.token.claim": "true",
935+ "user.attribute": "phoneNumberVerified",
936+ "id.token.claim": "true",
937+ "access.token.claim": "true",
938+ "claim.name": "phone_number_verified",
939+ "jsonType.label": "boolean"
940+ }
941+ }
942+ ]
765943 },
766− "protocolMappers" : [ {
767− "id" : "4fa92092-ee0d-4dc7-a63b-1e3b02d35ebb",
768− "name" : "zoneinfo",
769− "protocol" : "openid-connect",
770− "protocolMapper" : "oidc-usermodel-attribute-mapper",
771− "consentRequired" : false,
772− "config" : {
773− "userinfo.token.claim" : "true",
774− "user.attribute" : "zoneinfo",
775− "id.token.claim" : "true",
776− "access.token.claim" : "true",
777− "claim.name" : "zoneinfo",
778− "jsonType.label" : "String"
779− }
780− }, {
781− "id" : "1a5cc2e2-c983-4150-8583-23a7f5c826bf",
782− "name" : "family name",
783− "protocol" : "openid-connect",
784− "protocolMapper" : "oidc-usermodel-property-mapper",
785− "consentRequired" : false,
786− "config" : {
787− "userinfo.token.claim" : "true",
788− "user.attribute" : "lastName",
789− "id.token.claim" : "true",
790− "access.token.claim" : "true",
791− "claim.name" : "family_name",
792− "jsonType.label" : "String"
793− }
794− }, {
795− "id" : "67931f77-722a-492d-b581-a953e26b7d44",
796− "name" : "full name",
797− "protocol" : "openid-connect",
798− "protocolMapper" : "oidc-full-name-mapper",
799− "consentRequired" : false,
800− "config" : {
801− "id.token.claim" : "true",
802− "access.token.claim" : "true",
803− "userinfo.token.claim" : "true"
804− }
805− }, {
806− "id" : "10f6ac36-3a63-4e1c-ac69-c095588f5967",
807− "name" : "locale",
808− "protocol" : "openid-connect",
809− "protocolMapper" : "oidc-usermodel-attribute-mapper",
810− "consentRequired" : false,
811− "config" : {
812− "userinfo.token.claim" : "true",
813− "user.attribute" : "locale",
814− "id.token.claim" : "true",
815− "access.token.claim" : "true",
816− "claim.name" : "locale",
817− "jsonType.label" : "String"
818− }
819− }, {
820− "id" : "205d9dce-b6c8-4b1d-9c9c-fa24788651cf",
821− "name" : "picture",
822− "protocol" : "openid-connect",
823− "protocolMapper" : "oidc-usermodel-attribute-mapper",
824− "consentRequired" : false,
825− "config" : {
826− "userinfo.token.claim" : "true",
827− "user.attribute" : "picture",
828− "id.token.claim" : "true",
829− "access.token.claim" : "true",
830− "claim.name" : "picture",
831− "jsonType.label" : "String"
832− }
833− }, {
834− "id" : "638216c8-ea8c-40e3-9429-771e9278920e",
835− "name" : "gender",
836− "protocol" : "openid-connect",
837− "protocolMapper" : "oidc-usermodel-attribute-mapper",
838− "consentRequired" : false,
839− "config" : {
840− "userinfo.token.claim" : "true",
841− "user.attribute" : "gender",
842− "id.token.claim" : "true",
843− "access.token.claim" : "true",
844− "claim.name" : "gender",
845− "jsonType.label" : "String"
846− }
847− }, {
848− "id" : "39c17eae-8ea7-422c-ae21-b8876bf12184",
849− "name" : "birthdate",
850− "protocol" : "openid-connect",
851− "protocolMapper" : "oidc-usermodel-attribute-mapper",
852− "consentRequired" : false,
853− "config" : {
854− "userinfo.token.claim" : "true",
855− "user.attribute" : "birthdate",
856− "id.token.claim" : "true",
857− "access.token.claim" : "true",
858− "claim.name" : "birthdate",
859− "jsonType.label" : "String"
860− }
861− }, {
862− "id" : "01c559cf-94f2-46ad-b965-3b2e1db1a2a6",
863− "name" : "updated at",
864− "protocol" : "openid-connect",
865− "protocolMapper" : "oidc-usermodel-attribute-mapper",
866− "consentRequired" : false,
867− "config" : {
868− "userinfo.token.claim" : "true",
869− "user.attribute" : "updatedAt",
870− "id.token.claim" : "true",
871− "access.token.claim" : "true",
872− "claim.name" : "updated_at",
873− "jsonType.label" : "String"
874− }
875− }, {
876− "id" : "1693b5ab-28eb-485d-835d-2ae070ccb3ba",
877− "name" : "profile",
878− "protocol" : "openid-connect",
879− "protocolMapper" : "oidc-usermodel-attribute-mapper",
880− "consentRequired" : false,
881− "config" : {
882− "userinfo.token.claim" : "true",
883− "user.attribute" : "profile",
884− "id.token.claim" : "true",
885− "access.token.claim" : "true",
886− "claim.name" : "profile",
887− "jsonType.label" : "String"
888− }
889− }, {
890− "id" : "a0e08332-954c-46d2-9795-56eb31132580",
891− "name" : "given name",
892− "protocol" : "openid-connect",
893− "protocolMapper" : "oidc-usermodel-property-mapper",
894− "consentRequired" : false,
895− "config" : {
896− "userinfo.token.claim" : "true",
897− "user.attribute" : "firstName",
898− "id.token.claim" : "true",
899− "access.token.claim" : "true",
900− "claim.name" : "given_name",
901− "jsonType.label" : "String"
902− }
903− }, {
904− "id" : "cea0cd9c-d085-4d19-acc3-4bb41c891b68",
905− "name" : "nickname",
906− "protocol" : "openid-connect",
907− "protocolMapper" : "oidc-usermodel-attribute-mapper",
908− "consentRequired" : false,
909− "config" : {
910− "userinfo.token.claim" : "true",
911− "user.attribute" : "nickname",
912− "id.token.claim" : "true",
913− "access.token.claim" : "true",
914− "claim.name" : "nickname",
915− "jsonType.label" : "String"
916− }
917− }, {
918− "id" : "3122097d-4cba-46c2-8b3b-5d87a4cc605e",
919− "name" : "middle name",
920− "protocol" : "openid-connect",
921− "protocolMapper" : "oidc-usermodel-attribute-mapper",
922− "consentRequired" : false,
923− "config" : {
924− "userinfo.token.claim" : "true",
925− "user.attribute" : "middleName",
926− "id.token.claim" : "true",
927− "access.token.claim" : "true",
928− "claim.name" : "middle_name",
929− "jsonType.label" : "String"
930− }
931− }, {
932− "id" : "a3b97897-d913-4e0a-a4cf-033ce78f7d24",
933− "name" : "username",
934− "protocol" : "openid-connect",
935− "protocolMapper" : "oidc-usermodel-property-mapper",
936− "consentRequired" : false,
937− "config" : {
938− "userinfo.token.claim" : "true",
939− "user.attribute" : "username",
940− "id.token.claim" : "true",
941− "access.token.claim" : "true",
942− "claim.name" : "preferred_username",
943− "jsonType.label" : "String"
944− }
945− }, {
946− "id" : "a44eeb9d-410d-49c5-b0e0-5d84787627ad",
947− "name" : "website",
948− "protocol" : "openid-connect",
949− "protocolMapper" : "oidc-usermodel-attribute-mapper",
950− "consentRequired" : false,
951− "config" : {
952− "userinfo.token.claim" : "true",
953− "user.attribute" : "website",
954− "id.token.claim" : "true",
955− "access.token.claim" : "true",
956− "claim.name" : "website",
957− "jsonType.label" : "String"
958− }
959− } ]
960− }, {
961− "id" : "651408a7-6704-4198-a60f-988821b633ea",
962− "name" : "role_list",
963− "description" : "SAML role list",
964− "protocol" : "saml",
965− "attributes" : {
966− "consent.screen.text" : "${samlRoleListScopeConsentText}",
967− "display.on.consent.screen" : "true"
944+ {
945+ "id": "5921a9e9-7fec-4471-95e3-dd96eebdec58",
946+ "name": "profile",
947+ "description": "OpenID Connect built-in scope: profile",
948+ "protocol": "openid-connect",
949+ "attributes": {
950+ "include.in.token.scope": "true",
951+ "display.on.consent.screen": "true",
952+ "consent.screen.text": "${profileScopeConsentText}"
953+ },
954+ "protocolMappers": [
955+ {
956+ "id": "4fa92092-ee0d-4dc7-a63b-1e3b02d35ebb",
957+ "name": "zoneinfo",
958+ "protocol": "openid-connect",
959+ "protocolMapper": "oidc-usermodel-attribute-mapper",
960+ "consentRequired": false,
961+ "config": {
962+ "userinfo.token.claim": "true",
963+ "user.attribute": "zoneinfo",
964+ "id.token.claim": "true",
965+ "access.token.claim": "true",
966+ "claim.name": "zoneinfo",
967+ "jsonType.label": "String"
968+ }
969+ },
970+ {
971+ "id": "1a5cc2e2-c983-4150-8583-23a7f5c826bf",
972+ "name": "family name",
973+ "protocol": "openid-connect",
974+ "protocolMapper": "oidc-usermodel-property-mapper",
975+ "consentRequired": false,
976+ "config": {
977+ "userinfo.token.claim": "true",
978+ "user.attribute": "lastName",
979+ "id.token.claim": "true",
980+ "access.token.claim": "true",
981+ "claim.name": "family_name",
982+ "jsonType.label": "String"
983+ }
984+ },
985+ {
986+ "id": "67931f77-722a-492d-b581-a953e26b7d44",
987+ "name": "full name",
988+ "protocol": "openid-connect",
989+ "protocolMapper": "oidc-full-name-mapper",
990+ "consentRequired": false,
991+ "config": {
992+ "id.token.claim": "true",
993+ "access.token.claim": "true",
994+ "userinfo.token.claim": "true"
995+ }
996+ },
997+ {
998+ "id": "10f6ac36-3a63-4e1c-ac69-c095588f5967",
999+ "name": "locale",
1000+ "protocol": "openid-connect",
1001+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1002+ "consentRequired": false,
1003+ "config": {
1004+ "userinfo.token.claim": "true",
1005+ "user.attribute": "locale",
1006+ "id.token.claim": "true",
1007+ "access.token.claim": "true",
1008+ "claim.name": "locale",
1009+ "jsonType.label": "String"
1010+ }
1011+ },
1012+ {
1013+ "id": "205d9dce-b6c8-4b1d-9c9c-fa24788651cf",
1014+ "name": "picture",
1015+ "protocol": "openid-connect",
1016+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1017+ "consentRequired": false,
1018+ "config": {
1019+ "userinfo.token.claim": "true",
1020+ "user.attribute": "picture",
1021+ "id.token.claim": "true",
1022+ "access.token.claim": "true",
1023+ "claim.name": "picture",
1024+ "jsonType.label": "String"
1025+ }
1026+ },
1027+ {
1028+ "id": "638216c8-ea8c-40e3-9429-771e9278920e",
1029+ "name": "gender",
1030+ "protocol": "openid-connect",
1031+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1032+ "consentRequired": false,
1033+ "config": {
1034+ "userinfo.token.claim": "true",
1035+ "user.attribute": "gender",
1036+ "id.token.claim": "true",
1037+ "access.token.claim": "true",
1038+ "claim.name": "gender",
1039+ "jsonType.label": "String"
1040+ }
1041+ },
1042+ {
1043+ "id": "39c17eae-8ea7-422c-ae21-b8876bf12184",
1044+ "name": "birthdate",
1045+ "protocol": "openid-connect",
1046+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1047+ "consentRequired": false,
1048+ "config": {
1049+ "userinfo.token.claim": "true",
1050+ "user.attribute": "birthdate",
1051+ "id.token.claim": "true",
1052+ "access.token.claim": "true",
1053+ "claim.name": "birthdate",
1054+ "jsonType.label": "String"
1055+ }
1056+ },
1057+ {
1058+ "id": "01c559cf-94f2-46ad-b965-3b2e1db1a2a6",
1059+ "name": "updated at",
1060+ "protocol": "openid-connect",
1061+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1062+ "consentRequired": false,
1063+ "config": {
1064+ "userinfo.token.claim": "true",
1065+ "user.attribute": "updatedAt",
1066+ "id.token.claim": "true",
1067+ "access.token.claim": "true",
1068+ "claim.name": "updated_at",
1069+ "jsonType.label": "String"
1070+ }
1071+ },
1072+ {
1073+ "id": "1693b5ab-28eb-485d-835d-2ae070ccb3ba",
1074+ "name": "profile",
1075+ "protocol": "openid-connect",
1076+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1077+ "consentRequired": false,
1078+ "config": {
1079+ "userinfo.token.claim": "true",
1080+ "user.attribute": "profile",
1081+ "id.token.claim": "true",
1082+ "access.token.claim": "true",
1083+ "claim.name": "profile",
1084+ "jsonType.label": "String"
1085+ }
1086+ },
1087+ {
1088+ "id": "a0e08332-954c-46d2-9795-56eb31132580",
1089+ "name": "given name",
1090+ "protocol": "openid-connect",
1091+ "protocolMapper": "oidc-usermodel-property-mapper",
1092+ "consentRequired": false,
1093+ "config": {
1094+ "userinfo.token.claim": "true",
1095+ "user.attribute": "firstName",
1096+ "id.token.claim": "true",
1097+ "access.token.claim": "true",
1098+ "claim.name": "given_name",
1099+ "jsonType.label": "String"
1100+ }
1101+ },
1102+ {
1103+ "id": "cea0cd9c-d085-4d19-acc3-4bb41c891b68",
1104+ "name": "nickname",
1105+ "protocol": "openid-connect",
1106+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1107+ "consentRequired": false,
1108+ "config": {
1109+ "userinfo.token.claim": "true",
1110+ "user.attribute": "nickname",
1111+ "id.token.claim": "true",
1112+ "access.token.claim": "true",
1113+ "claim.name": "nickname",
1114+ "jsonType.label": "String"
1115+ }
1116+ },
1117+ {
1118+ "id": "3122097d-4cba-46c2-8b3b-5d87a4cc605e",
1119+ "name": "middle name",
1120+ "protocol": "openid-connect",
1121+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1122+ "consentRequired": false,
1123+ "config": {
1124+ "userinfo.token.claim": "true",
1125+ "user.attribute": "middleName",
1126+ "id.token.claim": "true",
1127+ "access.token.claim": "true",
1128+ "claim.name": "middle_name",
1129+ "jsonType.label": "String"
1130+ }
1131+ },
1132+ {
1133+ "id": "a3b97897-d913-4e0a-a4cf-033ce78f7d24",
1134+ "name": "username",
1135+ "protocol": "openid-connect",
1136+ "protocolMapper": "oidc-usermodel-property-mapper",
1137+ "consentRequired": false,
1138+ "config": {
1139+ "userinfo.token.claim": "true",
1140+ "user.attribute": "username",
1141+ "id.token.claim": "true",
1142+ "access.token.claim": "true",
1143+ "claim.name": "preferred_username",
1144+ "jsonType.label": "String"
1145+ }
1146+ },
1147+ {
1148+ "id": "a44eeb9d-410d-49c5-b0e0-5d84787627ad",
1149+ "name": "website",
1150+ "protocol": "openid-connect",
1151+ "protocolMapper": "oidc-usermodel-attribute-mapper",
1152+ "consentRequired": false,
1153+ "config": {
1154+ "userinfo.token.claim": "true",
1155+ "user.attribute": "website",
1156+ "id.token.claim": "true",
1157+ "access.token.claim": "true",
1158+ "claim.name": "website",
1159+ "jsonType.label": "String"
1160+ }
1161+ }
1162+ ]
9681163 },
969− "protocolMappers" : [ {
970− "id" : "a8c56c7b-ccbc-4b01-8df5-3ecb6328755f",
971− "name" : "role list",
972− "protocol" : "saml",
973− "protocolMapper" : "saml-role-list-mapper",
974− "consentRequired" : false,
975− "config" : {
976− "single" : "false",
977− "attribute.nameformat" : "Basic",
978− "attribute.name" : "Role"
979− }
980− } ]
981− }, {
982− "id" : "13ec0fd3-e64a-4d6f-9be7-c8760f2c9d6b",
983− "name" : "roles",
984− "description" : "OpenID Connect scope for add user roles to the access token",
985− "protocol" : "openid-connect",
986− "attributes" : {
987− "include.in.token.scope" : "false",
988− "display.on.consent.screen" : "true",
989− "consent.screen.text" : "${rolesScopeConsentText}"
1164+ {
1165+ "id": "651408a7-6704-4198-a60f-988821b633ea",
1166+ "name": "role_list",
1167+ "description": "SAML role list",
1168+ "protocol": "saml",
1169+ "attributes": {
1170+ "consent.screen.text": "${samlRoleListScopeConsentText}",
1171+ "display.on.consent.screen": "true"
1172+ },
1173+ "protocolMappers": [
1174+ {
1175+ "id": "a8c56c7b-ccbc-4b01-8df5-3ecb6328755f",
1176+ "name": "role list",
1177+ "protocol": "saml",
1178+ "protocolMapper": "saml-role-list-mapper",
1179+ "consentRequired": false,
1180+ "config": {
1181+ "single": "false",
1182+ "attribute.nameformat": "Basic",
1183+ "attribute.name": "Role"
1184+ }
1185+ }
1186+ ]
9901187 },
991− "protocolMappers" : [ {
992− "id" : "75e741f8-dcd5-49d2-815e-8604ec1d08a1",
993− "name" : "realm roles",
994− "protocol" : "openid-connect",
995− "protocolMapper" : "oidc-usermodel-realm-role-mapper",
996− "consentRequired" : false,
997− "config" : {
998− "user.attribute" : "foo",
999− "access.token.claim" : "true",
1000− "claim.name" : "realm_access.roles",
1001− "jsonType.label" : "String",
1002− "multivalued" : "true"
1003− }
1004− }, {
1005− "id" : "06a2d506-4996-4a33-8c43-2cf64af6a630",
1006− "name" : "client roles",
1007− "protocol" : "openid-connect",
1008− "protocolMapper" : "oidc-usermodel-client-role-mapper",
1009− "consentRequired" : false,
1010− "config" : {
1011− "user.attribute" : "foo",
1012− "access.token.claim" : "true",
1013− "claim.name" : "resource_access.${client_id}.roles",
1014− "jsonType.label" : "String",
1015− "multivalued" : "true"
1016− }
1017− }, {
1018− "id" : "3c3470df-d414-4e1c-87fc-3fb3cea34b8d",
1019− "name" : "audience resolve",
1020− "protocol" : "openid-connect",
1021− "protocolMapper" : "oidc-audience-resolve-mapper",
1022− "consentRequired" : false,
1023− "config" : { }
1024− } ]
1025− }, {
1026− "id" : "d85aba25-c74b-49e3-9ccb-77b4bb16efa5",
1027− "name" : "web-origins",
1028− "description" : "OpenID Connect scope for add allowed web origins to the access token",
1029− "protocol" : "openid-connect",
1030− "attributes" : {
1031− "include.in.token.scope" : "false",
1032− "display.on.consent.screen" : "false",
1033− "consent.screen.text" : ""
1188+ {
1189+ "id": "13ec0fd3-e64a-4d6f-9be7-c8760f2c9d6b",
1190+ "name": "roles",
1191+ "description": "OpenID Connect scope for add user roles to the access token",
1192+ "protocol": "openid-connect",
1193+ "attributes": {
1194+ "include.in.token.scope": "false",
1195+ "display.on.consent.screen": "true",
1196+ "consent.screen.text": "${rolesScopeConsentText}"
1197+ },
1198+ "protocolMappers": [
1199+ {
1200+ "id": "75e741f8-dcd5-49d2-815e-8604ec1d08a1",
1201+ "name": "realm roles",
1202+ "protocol": "openid-connect",
1203+ "protocolMapper": "oidc-usermodel-realm-role-mapper",
1204+ "consentRequired": false,
1205+ "config": {
1206+ "user.attribute": "foo",
1207+ "access.token.claim": "true",
1208+ "claim.name": "realm_access.roles",
1209+ "jsonType.label": "String",
1210+ "multivalued": "true"
1211+ }
1212+ },
1213+ {
1214+ "id": "06a2d506-4996-4a33-8c43-2cf64af6a630",
1215+ "name": "client roles",
1216+ "protocol": "openid-connect",
1217+ "protocolMapper": "oidc-usermodel-client-role-mapper",
1218+ "consentRequired": false,
1219+ "config": {
1220+ "user.attribute": "foo",
1221+ "access.token.claim": "true",
1222+ "claim.name": "resource_access.${client_id}.roles",
1223+ "jsonType.label": "String",
1224+ "multivalued": "true"
1225+ }
1226+ },
1227+ {
1228+ "id": "3c3470df-d414-4e1c-87fc-3fb3cea34b8d",
1229+ "name": "audience resolve",
1230+ "protocol": "openid-connect",
1231+ "protocolMapper": "oidc-audience-resolve-mapper",
1232+ "consentRequired": false,
1233+ "config": {}
1234+ }
1235+ ]
10341236 },
1035− "protocolMappers" : [ {
1036− "id" : "86b3f64f-1525-4500-bcbc-9b889b25f995",
1037− "name" : "allowed web origins",
1038− "protocol" : "openid-connect",
1039− "protocolMapper" : "oidc-allowed-origins-mapper",
1040− "consentRequired" : false,
1041− "config" : { }
1042− } ]
1043− } ],
1044− "defaultDefaultClientScopes" : [ "roles", "profile", "role_list", "email", "web-origins" ],
1045− "defaultOptionalClientScopes" : [ "phone", "address", "offline_access", "microprofile-jwt" ],
1046− "browserSecurityHeaders" : {
1047− "contentSecurityPolicyReportOnly" : "",
1048− "xContentTypeOptions" : "nosniff",
1049− "xRobotsTag" : "none",
1050− "xFrameOptions" : "SAMEORIGIN",
1051− "xXSSProtection" : "1; mode=block",
1052− "contentSecurityPolicy" : "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
1053− "strictTransportSecurity" : "max-age=31536000; includeSubDomains"
1237+ {
1238+ "id": "d85aba25-c74b-49e3-9ccb-77b4bb16efa5",
1239+ "name": "web-origins",
1240+ "description": "OpenID Connect scope for add allowed web origins to the access token",
1241+ "protocol": "openid-connect",
1242+ "attributes": {
1243+ "include.in.token.scope": "false",
1244+ "display.on.consent.screen": "false",
1245+ "consent.screen.text": ""
1246+ },
1247+ "protocolMappers": [
1248+ {
1249+ "id": "86b3f64f-1525-4500-bcbc-9b889b25f995",
1250+ "name": "allowed web origins",
1251+ "protocol": "openid-connect",
1252+ "protocolMapper": "oidc-allowed-origins-mapper",
1253+ "consentRequired": false,
1254+ "config": {}
1255+ }
1256+ ]
1257+ }
1258+ ],
1259+ "defaultDefaultClientScopes": [
1260+ "roles",
1261+ "profile",
1262+ "role_list",
1263+ "email",
1264+ "web-origins"
1265+ ],
1266+ "defaultOptionalClientScopes": [
1267+ "phone",
1268+ "address",
1269+ "offline_access",
1270+ "microprofile-jwt"
1271+ ],
1272+ "browserSecurityHeaders": {
1273+ "contentSecurityPolicyReportOnly": "",
1274+ "xContentTypeOptions": "nosniff",
1275+ "xRobotsTag": "none",
1276+ "xFrameOptions": "SAMEORIGIN",
1277+ "xXSSProtection": "1; mode=block",
1278+ "contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
1279+ "strictTransportSecurity": "max-age=31536000; includeSubDomains"
10541280 },
1055− "smtpServer" : { },
1056− "eventsEnabled" : false,
1057− "eventsListeners" : [ "jboss-logging" ],
1058− "enabledEventTypes" : [ ],
1059− "adminEventsEnabled" : false,
1060− "adminEventsDetailsEnabled" : false,
1061− "components" : {
1062− "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy" : [ {
1063− "id" : "59048b39-ad0f-4d12-8c52-7cfc2c43278a",
1064− "name" : "Allowed Protocol Mapper Types",
1065− "providerId" : "allowed-protocol-mappers",
1066− "subType" : "authenticated",
1067− "subComponents" : { },
1068− "config" : {
1069− "allowed-protocol-mapper-types" : [ "saml-user-attribute-mapper", "oidc-full-name-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-user-property-mapper", "saml-role-list-mapper", "oidc-address-mapper", "oidc-usermodel-attribute-mapper", "oidc-usermodel-property-mapper" ]
1070− }
1071− }, {
1072− "id" : "760559a6-a59f-4175-9ac5-6f3612e20129",
1073− "name" : "Trusted Hosts",
1074− "providerId" : "trusted-hosts",
1075− "subType" : "anonymous",
1076− "subComponents" : { },
1077− "config" : {
1078− "host-sending-registration-request-must-match" : [ "true" ],
1079− "client-uris-must-match" : [ "true" ]
1080− }
1081− }, {
1082− "id" : "24f4cb42-76bd-499e-812a-4e0d270c9e13",
1083− "name" : "Full Scope Disabled",
1084− "providerId" : "scope",
1085− "subType" : "anonymous",
1086− "subComponents" : { },
1087− "config" : { }
1088− }, {
1089− "id" : "abbfc599-480a-44ef-8e33-73a83eaab166",
1090− "name" : "Allowed Protocol Mapper Types",
1091− "providerId" : "allowed-protocol-mappers",
1092− "subType" : "anonymous",
1093− "subComponents" : { },
1094− "config" : {
1095− "allowed-protocol-mapper-types" : [ "saml-user-attribute-mapper", "oidc-sha256-pairwise-sub-mapper", "oidc-full-name-mapper", "saml-role-list-mapper", "saml-user-property-mapper", "oidc-usermodel-property-mapper", "oidc-usermodel-attribute-mapper", "oidc-address-mapper" ]
1096− }
1097− }, {
1098− "id" : "3c6450f0-4521-402b-a247-c8165854b1fa",
1099− "name" : "Allowed Client Scopes",
1100− "providerId" : "allowed-client-templates",
1101− "subType" : "anonymous",
1102− "subComponents" : { },
1103− "config" : {
1104− "allow-default-scopes" : [ "true" ]
1105− }
1106− }, {
1107− "id" : "d9b64399-744b-498e-9d35-f68b1582bd7d",
1108− "name" : "Consent Required",
1109− "providerId" : "consent-required",
1110− "subType" : "anonymous",
1111− "subComponents" : { },
1112− "config" : { }
1113− }, {
1114− "id" : "22f15f1f-3116-4348-a1e5-fc0d7576452a",
1115− "name" : "Max Clients Limit",
1116− "providerId" : "max-clients",
1117− "subType" : "anonymous",
1118− "subComponents" : { },
1119− "config" : {
1120− "max-clients" : [ "200" ]
1121− }
1122− }, {
1123− "id" : "4ad7b291-ddbb-4674-8c3d-ab8fd76d4168",
1124− "name" : "Allowed Client Scopes",
1125− "providerId" : "allowed-client-templates",
1126− "subType" : "authenticated",
1127− "subComponents" : { },
1128− "config" : {
1129− "allow-default-scopes" : [ "true" ]
1281+ "smtpServer": {},
1282+ "eventsEnabled": false,
1283+ "eventsListeners": [
1284+ "jboss-logging"
1285+ ],
1286+ "enabledEventTypes": [],
1287+ "adminEventsEnabled": false,
1288+ "adminEventsDetailsEnabled": false,
1289+ "components": {
1290+ "org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy": [
1291+ {
1292+ "id": "59048b39-ad0f-4d12-8c52-7cfc2c43278a",
1293+ "name": "Allowed Protocol Mapper Types",
1294+ "providerId": "allowed-protocol-mappers",
1295+ "subType": "authenticated",
1296+ "subComponents": {},
1297+ "config": {
1298+ "allowed-protocol-mapper-types": [
1299+ "saml-user-attribute-mapper",
1300+ "oidc-full-name-mapper",
1301+ "oidc-sha256-pairwise-sub-mapper",
1302+ "saml-user-property-mapper",
1303+ "saml-role-list-mapper",
1304+ "oidc-address-mapper",
1305+ "oidc-usermodel-attribute-mapper",
1306+ "oidc-usermodel-property-mapper"
1307+ ]
1308+ }
1309+ },
1310+ {
1311+ "id": "760559a6-a59f-4175-9ac5-6f3612e20129",
1312+ "name": "Trusted Hosts",
1313+ "providerId": "trusted-hosts",
1314+ "subType": "anonymous",
1315+ "subComponents": {},
1316+ "config": {
1317+ "host-sending-registration-request-must-match": [
1318+ "true"
1319+ ],
1320+ "client-uris-must-match": [
1321+ "true"
1322+ ]
1323+ }
1324+ },
1325+ {
1326+ "id": "24f4cb42-76bd-499e-812a-4e0d270c9e13",
1327+ "name": "Full Scope Disabled",
1328+ "providerId": "scope",
1329+ "subType": "anonymous",
1330+ "subComponents": {},
1331+ "config": {}
1332+ },
1333+ {
1334+ "id": "abbfc599-480a-44ef-8e33-73a83eaab166",
1335+ "name": "Allowed Protocol Mapper Types",
1336+ "providerId": "allowed-protocol-mappers",
1337+ "subType": "anonymous",
1338+ "subComponents": {},
1339+ "config": {
1340+ "allowed-protocol-mapper-types": [
1341+ "saml-user-attribute-mapper",
1342+ "oidc-sha256-pairwise-sub-mapper",
1343+ "oidc-full-name-mapper",
1344+ "saml-role-list-mapper",
1345+ "saml-user-property-mapper",
1346+ "oidc-usermodel-property-mapper",
1347+ "oidc-usermodel-attribute-mapper",
1348+ "oidc-address-mapper"
1349+ ]
1350+ }
1351+ },
1352+ {
1353+ "id": "3c6450f0-4521-402b-a247-c8165854b1fa",
1354+ "name": "Allowed Client Scopes",
1355+ "providerId": "allowed-client-templates",
1356+ "subType": "anonymous",
1357+ "subComponents": {},
1358+ "config": {
1359+ "allow-default-scopes": [
1360+ "true"
1361+ ]
1362+ }
1363+ },
1364+ {
1365+ "id": "d9b64399-744b-498e-9d35-f68b1582bd7d",
1366+ "name": "Consent Required",
1367+ "providerId": "consent-required",
1368+ "subType": "anonymous",
1369+ "subComponents": {},
1370+ "config": {}
1371+ },
1372+ {
1373+ "id": "22f15f1f-3116-4348-a1e5-fc0d7576452a",
1374+ "name": "Max Clients Limit",
1375+ "providerId": "max-clients",
1376+ "subType": "anonymous",
1377+ "subComponents": {},
1378+ "config": {
1379+ "max-clients": [
1380+ "200"
1381+ ]
1382+ }
1383+ },
1384+ {
1385+ "id": "4ad7b291-ddbb-4674-8c3d-ab8fd76d4168",
1386+ "name": "Allowed Client Scopes",
1387+ "providerId": "allowed-client-templates",
1388+ "subType": "authenticated",
1389+ "subComponents": {},
1390+ "config": {
1391+ "allow-default-scopes": [
1392+ "true"
1393+ ]
1394+ }
11301395 }
1131− } ],
1132− "org.keycloak.keys.KeyProvider" : [ {
1133− "id" : "f71cc325-9907-4d27-a0e6-88fca7450e5e",
1134− "name" : "aes-generated",
1135− "providerId" : "aes-generated",
1136− "subComponents" : { },
1137− "config" : {
1138− "kid" : [ "6c7d982e-372f-49c6-a4f3-5c451fb85eca" ],
1139− "secret" : [ "yH6M3W7aOgh2_cKJ0srWbw" ],
1140− "priority" : [ "100" ]
1396+ ],
1397+ "org.keycloak.keys.KeyProvider": [
1398+ {
1399+ "id": "f71cc325-9907-4d27-a0e6-88fca7450e5e",
1400+ "name": "aes-generated",
1401+ "providerId": "aes-generated",
1402+ "subComponents": {},
1403+ "config": {
1404+ "kid": [
1405+ "6c7d982e-372f-49c6-a4f3-5c451fb85eca"
1406+ ],
1407+ "secret": [
1408+ "yH6M3W7aOgh2_cKJ0srWbw"
1409+ ],
1410+ "priority": [
1411+ "100"
1412+ ]
1413+ }
1414+ },
1415+ {
1416+ "id": "7b50d0ab-dda5-4624-aa42-b4b397724ce1",
1417+ "name": "hmac-generated",
1418+ "providerId": "hmac-generated",
1419+ "subComponents": {},
1420+ "config": {
1421+ "kid": [
1422+ "587f0fb5-845d-4b45-87a0-84145092aaef"
1423+ ],
1424+ "secret": [
1425+ "PuH8Lxh9GeNfGJRDk34SWIlBDdrJpC3U3SfcxqqQtlIf2DBzRKUu8VbDVrmMN5b5CoPsJhrQ2SVb-iE9Lzsb3A"
1426+ ],
1427+ "priority": [
1428+ "100"
1429+ ],
1430+ "algorithm": [
1431+ "HS256"
1432+ ]
1433+ }
1434+ },
1435+ {
1436+ "id": "547c1c71-9f97-4e12-801b-ed5c2cc61bba",
1437+ "name": "rsa-generated",
1438+ "providerId": "rsa-generated",
1439+ "subComponents": {},
1440+ "config": {
1441+ "privateKey": [
1442+ "MIIEowIBAAKCAQEAjdo2HZ5ruNnIbkSeAfFYpbPvJw3vtz/VuKJerC4mUXYd7qRMhs3VLJZ3mFyeCuO8W81vkGrFiC9KQnX2lHj2dtA/RWEJw5bpz+JdOFr5pvXg0lQ0sa+hro9afWDygTU4FmLsEi5z98847TbH178RT6n7+JVqZ9jYU9rSpwVTC8E/4yxSuStmhGCcAkZ6dGhHNBdvGUgwxKYj7dYLRJiI+nilIdKuxPzxI/YZxZnXBHDdbNXJgDymTQPut99OnBxeZbH38CJ1MNo3VdV1fzOMGUHe+vn/EOD5E+pXC8PwvJnWU+XHUTFVZeyIXehh3pYLUsq/6bZ1MYsEaFIhznOkwwIDAQABAoIBAHB+64fVyUxRurhoRn737fuLlU/9p2xGfbHtYvNdrhnQeLB3MBGAT10K/1Gfsd6k+Q49AAsiAgGcr2HBt4nL3HohcOwOpvWsS0UIGjHFRFP6jw9+pEN+K9UJ7xObvPZnRFHMpbdNi76tYlINrbMV3h61ihR8OmSc/gKSeZjnihK5OkaNnlqGRaBM/koI+iAxUHuJPnBLBZmD4T8eIfE4S2TvUeVeQogI9Muvnb9tIPJ5XyP9iXWLdRjnek/+wTdxHHZuo06Tc0bMjRaTHiF6K9ntOM2EmQb6bS2J47zgzRLNFE22BWH7RJq659EzElkOn0C0k7dWDTur/3Lpx1+zxJECgYEA8t+J3J+9oGTFmY2VPH05Yr/R/iVDOyIOlO1CmgonOQ3KPhbfNBB3aTAJP20LOZChN4JoWuiZJg4UwzXOeY9DvdDkPO0YLlSjPAIwJNk+xcxFcp5hqMUul2db+cgEY8zp0Wg9kFOq3JmJjK4+1+fgsVnOB+B08ZYI6bZzsUVKzucCgYEAlYTrsxs6fQua0cvZNQPYNZzwF3LVwPBl/ntkdRBE3HGyZeCAhIj7e9pAUusCPsQJaCmW2UEmywD/aIxGrBkojzTKItshM3PN1PYKL8W0Zq+H67uF5KfdvsbabZWHfP/LGCpoKF8Ov7JVPPqGrZ03Z2SheeLZAtNeHN4OB1u9i8UCgYATkS7qN3Rvl67T0DRVy0D0U7/3Wckw2m2SUgsrneXLEvFYTz9sUmdMcjJMidx9pslWT4tYx6SPDFNf5tXbtU8f29SHlBJ+qRL9oq9+SIJmLS7rLRdxIXG/gPRIC3VPFRNBa8SJ/DOn0jbivqcRffz8TN/sgojpbc0KB0kK3ypHwQKBgCKVCcb1R0PgyUA4+9YNO5a647UotFPZxl1jwMpqpuKt0WtKz67X2AK/ah1DidNmmB5lcCRzsztE0c4mk7n+X6kvtoj1UeqKoFLfTV/bRGxzsOZPCxrl0J3tdFvgN+QrbZf7Rvf/dHPWFWzzLO8+66+YUNjWJQdIR/45Rdlh2KdZAoGBAMfF3ir+fe3KdQ6hAf9QyrLxJ5l+GO+IgtxXGbon7eeJBIZHHdMeDy4pC7DMcI214BmIntbyY+xS+gI3oM26EJUVmrZ6tkyIDFsCHm9rcXG9ogvffzQWM1Wqzm27hR/3s+EPWW9AOcIimiFV1UPp/mLjnrCuq58V2aJS/TT14oLe"
1443+ ],
1444+ "certificate": [
1445+ "MIICmzCCAYMCBgFygL/j4DANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZtYXN0ZXIwHhcNMjAwNjA0MTkxMDU4WhcNMzAwNjA0MTkxMjM4WjARMQ8wDQYDVQQDDAZtYXN0ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN2jYdnmu42chuRJ4B8Vils+8nDe+3P9W4ol6sLiZRdh3upEyGzdUslneYXJ4K47xbzW+QasWIL0pCdfaUePZ20D9FYQnDlunP4l04Wvmm9eDSVDSxr6Guj1p9YPKBNTgWYuwSLnP3zzjtNsfXvxFPqfv4lWpn2NhT2tKnBVMLwT/jLFK5K2aEYJwCRnp0aEc0F28ZSDDEpiPt1gtEmIj6eKUh0q7E/PEj9hnFmdcEcN1s1cmAPKZNA+63306cHF5lsffwInUw2jdV1XV/M4wZQd76+f8Q4PkT6lcLw/C8mdZT5cdRMVVl7Ihd6GHelgtSyr/ptnUxiwRoUiHOc6TDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAIAqydMYxa51kNEyfXyR2kStlglE4LDeLBLHDABeBPE0eN2awoH/mw3kXS4OA/C0e3c7bAwViOzOVERGeUNiBvP5rL1Amuu97nwFcxhkTaJH4ZwCGkxceaIo9LNDpAEesqHLQSdplFXIA4TbEFoKMem4k31KVU7i9/rUesrSRmxLptIOK7LLvRMYiY/t7tdAvoZAtoliuQlFKQywEuxXQrCkcoVEAARABWGt0rsWC2xK0tVxHRIrENwvMp/aUYd17sZ0403aaS9dlvfQ63ExnaHd+++RJtPku8P220Tw27YVmFAwzJgS0aUpEaDsgRNz6OMSyxEg/n7eKK08aU3szwQ="
1446+ ],
1447+ "priority": [
1448+ "100"
1449+ ]
1450+ }
11411451 }
1142− }, {
1143− "id" : "7b50d0ab-dda5-4624-aa42-b4b397724ce1",
1144− "name" : "hmac-generated",
1145− "providerId" : "hmac-generated",
1146− "subComponents" : { },
1147− "config" : {
1148− "kid" : [ "587f0fb5-845d-4b45-87a0-84145092aaef" ],
1149− "secret" : [ "PuH8Lxh9GeNfGJRDk34SWIlBDdrJpC3U3SfcxqqQtlIf2DBzRKUu8VbDVrmMN5b5CoPsJhrQ2SVb-iE9Lzsb3A" ],
1150− "priority" : [ "100" ],
1151− "algorithm" : [ "HS256" ]
1452+ ]
1453+ },
1454+ "internationalizationEnabled": false,
1455+ "supportedLocales": [],
1456+ "authenticationFlows": [
1457+ {
1458+ "id": "3253f9b7-905d-4458-ad8a-8ada5e16d195",
1459+ "alias": "Account verification options",
1460+ "description": "Method with which to verity the existing account",
1461+ "providerId": "basic-flow",
1462+ "topLevel": false,
1463+ "builtIn": true,
1464+ "authenticationExecutions": [
1465+ {
1466+ "authenticator": "idp-email-verification",
1467+ "requirement": "ALTERNATIVE",
1468+ "priority": 10,
1469+ "userSetupAllowed": false,
1470+ "autheticatorFlow": false
1471+ },
1472+ {
1473+ "requirement": "ALTERNATIVE",
1474+ "priority": 20,
1475+ "flowAlias": "Verify Existing Account by Re-authentication",
1476+ "userSetupAllowed": false,
1477+ "autheticatorFlow": true
1478+ }
1479+ ]
1480+ },
1481+ {
1482+ "id": "75bd854e-ab99-46f1-90ed-a8bfc1559558",
1483+ "alias": "Authentication Options",
1484+ "description": "Authentication options.",
1485+ "providerId": "basic-flow",
1486+ "topLevel": false,
1487+ "builtIn": true,
1488+ "authenticationExecutions": [
1489+ {
1490+ "authenticator": "basic-auth",
1491+ "requirement": "REQUIRED",
1492+ "priority": 10,
1493+ "userSetupAllowed": false,
1494+ "autheticatorFlow": false
1495+ },
1496+ {
1497+ "authenticator": "basic-auth-otp",
1498+ "requirement": "DISABLED",
1499+ "priority": 20,
1500+ "userSetupAllowed": false,
1501+ "autheticatorFlow": false
1502+ },
1503+ {
1504+ "authenticator": "auth-spnego",
1505+ "requirement": "DISABLED",
1506+ "priority": 30,
1507+ "userSetupAllowed": false,
1508+ "autheticatorFlow": false
1509+ }
1510+ ]
1511+ },
1512+ {
1513+ "id": "9b0e6cce-62c5-4fb6-a48d-e07c950e38c3",
1514+ "alias": "Browser - Conditional OTP",
1515+ "description": "Flow to determine if the OTP is required for the authentication",
1516+ "providerId": "basic-flow",
1517+ "topLevel": false,
1518+ "builtIn": true,
1519+ "authenticationExecutions": [
1520+ {
1521+ "authenticator": "conditional-user-configured",
1522+ "requirement": "REQUIRED",
1523+ "priority": 10,
1524+ "userSetupAllowed": false,
1525+ "autheticatorFlow": false
1526+ },
1527+ {
1528+ "authenticator": "auth-otp-form",
1529+ "requirement": "REQUIRED",
1530+ "priority": 20,
1531+ "userSetupAllowed": false,
1532+ "autheticatorFlow": false
1533+ }
1534+ ]
1535+ },
1536+ {
1537+ "id": "1c26fd14-ac06-4dc1-bdd8-8c34c1b41720",
1538+ "alias": "Direct Grant - Conditional OTP",
1539+ "description": "Flow to determine if the OTP is required for the authentication",
1540+ "providerId": "basic-flow",
1541+ "topLevel": false,
1542+ "builtIn": true,
1543+ "authenticationExecutions": [
1544+ {
1545+ "authenticator": "conditional-user-configured",
1546+ "requirement": "REQUIRED",
1547+ "priority": 10,
1548+ "userSetupAllowed": false,
1549+ "autheticatorFlow": false
1550+ },
1551+ {
1552+ "authenticator": "direct-grant-validate-otp",
1553+ "requirement": "REQUIRED",
1554+ "priority": 20,
1555+ "userSetupAllowed": false,
1556+ "autheticatorFlow": false
1557+ }
1558+ ]
1559+ },
1560+ {
1561+ "id": "254f7549-51ec-4565-a736-35c07b6e25f0",
1562+ "alias": "First broker login - Conditional OTP",
1563+ "description": "Flow to determine if the OTP is required for the authentication",
1564+ "providerId": "basic-flow",
1565+ "topLevel": false,
1566+ "builtIn": true,
1567+ "authenticationExecutions": [
1568+ {
1569+ "authenticator": "conditional-user-configured",
1570+ "requirement": "REQUIRED",
1571+ "priority": 10,
1572+ "userSetupAllowed": false,
1573+ "autheticatorFlow": false
1574+ },
1575+ {
1576+ "authenticator": "auth-otp-form",
1577+ "requirement": "REQUIRED",
1578+ "priority": 20,
1579+ "userSetupAllowed": false,
1580+ "autheticatorFlow": false
1581+ }
1582+ ]
1583+ },
1584+ {
1585+ "id": "b2413da8-3de9-4bfe-b77e-643fd1964c8f",
1586+ "alias": "Handle Existing Account",
1587+ "description": "Handle what to do if there is existing account with same email/username like authenticated identity provider",
1588+ "providerId": "basic-flow",
1589+ "topLevel": false,
1590+ "builtIn": true,
1591+ "authenticationExecutions": [
1592+ {
1593+ "authenticator": "idp-confirm-link",
1594+ "requirement": "REQUIRED",
1595+ "priority": 10,
1596+ "userSetupAllowed": false,
1597+ "autheticatorFlow": false
1598+ },
1599+ {
1600+ "requirement": "REQUIRED",
1601+ "priority": 20,
1602+ "flowAlias": "Account verification options",
1603+ "userSetupAllowed": false,
1604+ "autheticatorFlow": true
1605+ }
1606+ ]
1607+ },
1608+ {
1609+ "id": "f8392bfb-8dce-4a16-8af1-b2a4d1a0a273",
1610+ "alias": "Reset - Conditional OTP",
1611+ "description": "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.",
1612+ "providerId": "basic-flow",
1613+ "topLevel": false,
1614+ "builtIn": true,
1615+ "authenticationExecutions": [
1616+ {
1617+ "authenticator": "conditional-user-configured",
1618+ "requirement": "REQUIRED",
1619+ "priority": 10,
1620+ "userSetupAllowed": false,
1621+ "autheticatorFlow": false
1622+ },
1623+ {
1624+ "authenticator": "reset-otp",
1625+ "requirement": "REQUIRED",
1626+ "priority": 20,
1627+ "userSetupAllowed": false,
1628+ "autheticatorFlow": false
1629+ }
1630+ ]
1631+ },
1632+ {
1633+ "id": "fb69c297-b26e-44fa-aabd-d7b40eec3cd3",
1634+ "alias": "User creation or linking",
1635+ "description": "Flow for the existing/non-existing user alternatives",
1636+ "providerId": "basic-flow",
1637+ "topLevel": false,
1638+ "builtIn": true,
1639+ "authenticationExecutions": [
1640+ {
1641+ "authenticatorConfig": "create unique user config",
1642+ "authenticator": "idp-create-user-if-unique",
1643+ "requirement": "ALTERNATIVE",
1644+ "priority": 10,
1645+ "userSetupAllowed": false,
1646+ "autheticatorFlow": false
1647+ },
1648+ {
1649+ "requirement": "ALTERNATIVE",
1650+ "priority": 20,
1651+ "flowAlias": "Handle Existing Account",
1652+ "userSetupAllowed": false,
1653+ "autheticatorFlow": true
1654+ }
1655+ ]
1656+ },
1657+ {
1658+ "id": "de3a41a9-7018-4931-9c4d-d04f9501b2ce",
1659+ "alias": "Verify Existing Account by Re-authentication",
1660+ "description": "Reauthentication of existing account",
1661+ "providerId": "basic-flow",
1662+ "topLevel": false,
1663+ "builtIn": true,
1664+ "authenticationExecutions": [
1665+ {
1666+ "authenticator": "idp-username-password-form",
1667+ "requirement": "REQUIRED",
1668+ "priority": 10,
1669+ "userSetupAllowed": false,
1670+ "autheticatorFlow": false
1671+ },
1672+ {
1673+ "requirement": "CONDITIONAL",
1674+ "priority": 20,
1675+ "flowAlias": "First broker login - Conditional OTP",
1676+ "userSetupAllowed": false,
1677+ "autheticatorFlow": true
1678+ }
1679+ ]
1680+ },
1681+ {
1682+ "id": "6526b0d1-b48e-46c6-bb08-11ebcf458def",
1683+ "alias": "browser",
1684+ "description": "browser based authentication",
1685+ "providerId": "basic-flow",
1686+ "topLevel": true,
1687+ "builtIn": true,
1688+ "authenticationExecutions": [
1689+ {
1690+ "authenticator": "auth-cookie",
1691+ "requirement": "ALTERNATIVE",
1692+ "priority": 10,
1693+ "userSetupAllowed": false,
1694+ "autheticatorFlow": false
1695+ },
1696+ {
1697+ "authenticator": "auth-spnego",
1698+ "requirement": "DISABLED",
1699+ "priority": 20,
1700+ "userSetupAllowed": false,
1701+ "autheticatorFlow": false
1702+ },
1703+ {
1704+ "authenticator": "identity-provider-redirector",
1705+ "requirement": "ALTERNATIVE",
1706+ "priority": 25,
1707+ "userSetupAllowed": false,
1708+ "autheticatorFlow": false
1709+ },
1710+ {
1711+ "requirement": "ALTERNATIVE",
1712+ "priority": 30,
1713+ "flowAlias": "forms",
1714+ "userSetupAllowed": false,
1715+ "autheticatorFlow": true
1716+ }
1717+ ]
1718+ },
1719+ {
1720+ "id": "92a653ba-8f2d-4283-8354-ca55f9d89181",
1721+ "alias": "clients",
1722+ "description": "Base authentication for clients",
1723+ "providerId": "client-flow",
1724+ "topLevel": true,
1725+ "builtIn": true,
1726+ "authenticationExecutions": [
1727+ {
1728+ "authenticator": "client-secret",
1729+ "requirement": "ALTERNATIVE",
1730+ "priority": 10,
1731+ "userSetupAllowed": false,
1732+ "autheticatorFlow": false
1733+ },
1734+ {
1735+ "authenticator": "client-jwt",
1736+ "requirement": "ALTERNATIVE",
1737+ "priority": 20,
1738+ "userSetupAllowed": false,
1739+ "autheticatorFlow": false
1740+ },
1741+ {
1742+ "authenticator": "client-secret-jwt",
1743+ "requirement": "ALTERNATIVE",
1744+ "priority": 30,
1745+ "userSetupAllowed": false,
1746+ "autheticatorFlow": false
1747+ },
1748+ {
1749+ "authenticator": "client-x509",
1750+ "requirement": "ALTERNATIVE",
1751+ "priority": 40,
1752+ "userSetupAllowed": false,
1753+ "autheticatorFlow": false
1754+ }
1755+ ]
1756+ },
1757+ {
1758+ "id": "e365be39-78db-46f0-b2e8-4e7001c2f5d0",
1759+ "alias": "direct grant",
1760+ "description": "OpenID Connect Resource Owner Grant",
1761+ "providerId": "basic-flow",
1762+ "topLevel": true,
1763+ "builtIn": true,
1764+ "authenticationExecutions": [
1765+ {
1766+ "authenticator": "direct-grant-validate-username",
1767+ "requirement": "REQUIRED",
1768+ "priority": 10,
1769+ "userSetupAllowed": false,
1770+ "autheticatorFlow": false
1771+ },
1772+ {
1773+ "authenticator": "direct-grant-validate-password",
1774+ "requirement": "REQUIRED",
1775+ "priority": 20,
1776+ "userSetupAllowed": false,
1777+ "autheticatorFlow": false
1778+ },
1779+ {
1780+ "requirement": "CONDITIONAL",
1781+ "priority": 30,
1782+ "flowAlias": "Direct Grant - Conditional OTP",
1783+ "userSetupAllowed": false,
1784+ "autheticatorFlow": true
1785+ }
1786+ ]
1787+ },
1788+ {
1789+ "id": "dd61caf5-a40f-48b7-9e8c-a1f3b67041dd",
1790+ "alias": "docker auth",
1791+ "description": "Used by Docker clients to authenticate against the IDP",
1792+ "providerId": "basic-flow",
1793+ "topLevel": true,
1794+ "builtIn": true,
1795+ "authenticationExecutions": [
1796+ {
1797+ "authenticator": "docker-http-basic-authenticator",
1798+ "requirement": "REQUIRED",
1799+ "priority": 10,
1800+ "userSetupAllowed": false,
1801+ "autheticatorFlow": false
1802+ }
1803+ ]
1804+ },
1805+ {
1806+ "id": "7a055643-62e1-4ac1-b126-9a8d6c299635",
1807+ "alias": "first broker login",
1808+ "description": "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account",
1809+ "providerId": "basic-flow",
1810+ "topLevel": true,
1811+ "builtIn": true,
1812+ "authenticationExecutions": [
1813+ {
1814+ "authenticatorConfig": "review profile config",
1815+ "authenticator": "idp-review-profile",
1816+ "requirement": "REQUIRED",
1817+ "priority": 10,
1818+ "userSetupAllowed": false,
1819+ "autheticatorFlow": false
1820+ },
1821+ {
1822+ "requirement": "REQUIRED",
1823+ "priority": 20,
1824+ "flowAlias": "User creation or linking",
1825+ "userSetupAllowed": false,
1826+ "autheticatorFlow": true
1827+ }
1828+ ]
1829+ },
1830+ {
1831+ "id": "fe8bc7ee-6e8f-436e-8336-c60fcd350843",
1832+ "alias": "forms",
1833+ "description": "Username, password, otp and other auth forms.",
1834+ "providerId": "basic-flow",
1835+ "topLevel": false,
1836+ "builtIn": true,
1837+ "authenticationExecutions": [
1838+ {
1839+ "authenticator": "auth-username-password-form",
1840+ "requirement": "REQUIRED",
1841+ "priority": 10,
1842+ "userSetupAllowed": false,
1843+ "autheticatorFlow": false
1844+ },
1845+ {
1846+ "requirement": "CONDITIONAL",
1847+ "priority": 20,
1848+ "flowAlias": "Browser - Conditional OTP",
1849+ "userSetupAllowed": false,
1850+ "autheticatorFlow": true
1851+ }
1852+ ]
1853+ },
1854+ {
1855+ "id": "3646f08e-ab70-415b-a701-6ed2e2d214c9",
1856+ "alias": "http challenge",
1857+ "description": "An authentication flow based on challenge-response HTTP Authentication Schemes",
1858+ "providerId": "basic-flow",
1859+ "topLevel": true,
1860+ "builtIn": true,
1861+ "authenticationExecutions": [
1862+ {
1863+ "authenticator": "no-cookie-redirect",
1864+ "requirement": "REQUIRED",
1865+ "priority": 10,
1866+ "userSetupAllowed": false,
1867+ "autheticatorFlow": false
1868+ },
1869+ {
1870+ "requirement": "REQUIRED",
1871+ "priority": 20,
1872+ "flowAlias": "Authentication Options",
1873+ "userSetupAllowed": false,
1874+ "autheticatorFlow": true
1875+ }
1876+ ]
1877+ },
1878+ {
1879+ "id": "04176530-0972-47ad-83df-19d8534caac2",
1880+ "alias": "registration",
1881+ "description": "registration flow",
1882+ "providerId": "basic-flow",
1883+ "topLevel": true,
1884+ "builtIn": true,
1885+ "authenticationExecutions": [
1886+ {
1887+ "authenticator": "registration-page-form",
1888+ "requirement": "REQUIRED",
1889+ "priority": 10,
1890+ "flowAlias": "registration form",
1891+ "userSetupAllowed": false,
1892+ "autheticatorFlow": true
1893+ }
1894+ ]
1895+ },
1896+ {
1897+ "id": "fa0ed569-6746-439e-b07e-89f7ed918c07",
1898+ "alias": "registration form",
1899+ "description": "registration form",
1900+ "providerId": "form-flow",
1901+ "topLevel": false,
1902+ "builtIn": true,
1903+ "authenticationExecutions": [
1904+ {
1905+ "authenticator": "registration-user-creation",
1906+ "requirement": "REQUIRED",
1907+ "priority": 20,
1908+ "userSetupAllowed": false,
1909+ "autheticatorFlow": false
1910+ },
1911+ {
1912+ "authenticator": "registration-profile-action",
1913+ "requirement": "REQUIRED",
1914+ "priority": 40,
1915+ "userSetupAllowed": false,
1916+ "autheticatorFlow": false
1917+ },
1918+ {
1919+ "authenticator": "registration-password-action",
1920+ "requirement": "REQUIRED",
1921+ "priority": 50,
1922+ "userSetupAllowed": false,
1923+ "autheticatorFlow": false
1924+ },
1925+ {
1926+ "authenticator": "registration-recaptcha-action",
1927+ "requirement": "DISABLED",
1928+ "priority": 60,
1929+ "userSetupAllowed": false,
1930+ "autheticatorFlow": false
1931+ }
1932+ ]
1933+ },
1934+ {
1935+ "id": "03680917-28f3-4ccd-bdf6-4a516f7c0018",
1936+ "alias": "reset credentials",
1937+ "description": "Reset credentials for a user if they forgot their password or something",
1938+ "providerId": "basic-flow",
1939+ "topLevel": true,
1940+ "builtIn": true,
1941+ "authenticationExecutions": [
1942+ {
1943+ "authenticator": "reset-credentials-choose-user",
1944+ "requirement": "REQUIRED",
1945+ "priority": 10,
1946+ "userSetupAllowed": false,
1947+ "autheticatorFlow": false
1948+ },
1949+ {
1950+ "authenticator": "reset-credential-email",
1951+ "requirement": "REQUIRED",
1952+ "priority": 20,
1953+ "userSetupAllowed": false,
1954+ "autheticatorFlow": false
1955+ },
1956+ {
1957+ "authenticator": "reset-password",
1958+ "requirement": "REQUIRED",
1959+ "priority": 30,
1960+ "userSetupAllowed": false,
1961+ "autheticatorFlow": false
1962+ },
1963+ {
1964+ "requirement": "CONDITIONAL",
1965+ "priority": 40,
1966+ "flowAlias": "Reset - Conditional OTP",
1967+ "userSetupAllowed": false,
1968+ "autheticatorFlow": true
1969+ }
1970+ ]
1971+ },
1972+ {
1973+ "id": "19a9d9aa-2d2b-4701-807f-c384ab921c7e",
1974+ "alias": "saml ecp",
1975+ "description": "SAML ECP Profile Authentication Flow",
1976+ "providerId": "basic-flow",
1977+ "topLevel": true,
1978+ "builtIn": true,
1979+ "authenticationExecutions": [
1980+ {
1981+ "authenticator": "http-basic-authenticator",
1982+ "requirement": "REQUIRED",
1983+ "priority": 10,
1984+ "userSetupAllowed": false,
1985+ "autheticatorFlow": false
1986+ }
1987+ ]
1988+ }
1989+ ],
1990+ "authenticatorConfig": [
1991+ {
1992+ "id": "534f01f4-45b3-43a0-91d1-238860cc126d",
1993+ "alias": "create unique user config",
1994+ "config": {
1995+ "require.password.update.after.registration": "false"
11521996 }
1153− }, {
1154− "id" : "547c1c71-9f97-4e12-801b-ed5c2cc61bba",
1155− "name" : "rsa-generated",
1156− "providerId" : "rsa-generated",
1157− "subComponents" : { },
1158− "config" : {
1159− "privateKey" : [ "MIIEowIBAAKCAQEAjdo2HZ5ruNnIbkSeAfFYpbPvJw3vtz/VuKJerC4mUXYd7qRMhs3VLJZ3mFyeCuO8W81vkGrFiC9KQnX2lHj2dtA/RWEJw5bpz+JdOFr5pvXg0lQ0sa+hro9afWDygTU4FmLsEi5z98847TbH178RT6n7+JVqZ9jYU9rSpwVTC8E/4yxSuStmhGCcAkZ6dGhHNBdvGUgwxKYj7dYLRJiI+nilIdKuxPzxI/YZxZnXBHDdbNXJgDymTQPut99OnBxeZbH38CJ1MNo3VdV1fzOMGUHe+vn/EOD5E+pXC8PwvJnWU+XHUTFVZeyIXehh3pYLUsq/6bZ1MYsEaFIhznOkwwIDAQABAoIBAHB+64fVyUxRurhoRn737fuLlU/9p2xGfbHtYvNdrhnQeLB3MBGAT10K/1Gfsd6k+Q49AAsiAgGcr2HBt4nL3HohcOwOpvWsS0UIGjHFRFP6jw9+pEN+K9UJ7xObvPZnRFHMpbdNi76tYlINrbMV3h61ihR8OmSc/gKSeZjnihK5OkaNnlqGRaBM/koI+iAxUHuJPnBLBZmD4T8eIfE4S2TvUeVeQogI9Muvnb9tIPJ5XyP9iXWLdRjnek/+wTdxHHZuo06Tc0bMjRaTHiF6K9ntOM2EmQb6bS2J47zgzRLNFE22BWH7RJq659EzElkOn0C0k7dWDTur/3Lpx1+zxJECgYEA8t+J3J+9oGTFmY2VPH05Yr/R/iVDOyIOlO1CmgonOQ3KPhbfNBB3aTAJP20LOZChN4JoWuiZJg4UwzXOeY9DvdDkPO0YLlSjPAIwJNk+xcxFcp5hqMUul2db+cgEY8zp0Wg9kFOq3JmJjK4+1+fgsVnOB+B08ZYI6bZzsUVKzucCgYEAlYTrsxs6fQua0cvZNQPYNZzwF3LVwPBl/ntkdRBE3HGyZeCAhIj7e9pAUusCPsQJaCmW2UEmywD/aIxGrBkojzTKItshM3PN1PYKL8W0Zq+H67uF5KfdvsbabZWHfP/LGCpoKF8Ov7JVPPqGrZ03Z2SheeLZAtNeHN4OB1u9i8UCgYATkS7qN3Rvl67T0DRVy0D0U7/3Wckw2m2SUgsrneXLEvFYTz9sUmdMcjJMidx9pslWT4tYx6SPDFNf5tXbtU8f29SHlBJ+qRL9oq9+SIJmLS7rLRdxIXG/gPRIC3VPFRNBa8SJ/DOn0jbivqcRffz8TN/sgojpbc0KB0kK3ypHwQKBgCKVCcb1R0PgyUA4+9YNO5a647UotFPZxl1jwMpqpuKt0WtKz67X2AK/ah1DidNmmB5lcCRzsztE0c4mk7n+X6kvtoj1UeqKoFLfTV/bRGxzsOZPCxrl0J3tdFvgN+QrbZf7Rvf/dHPWFWzzLO8+66+YUNjWJQdIR/45Rdlh2KdZAoGBAMfF3ir+fe3KdQ6hAf9QyrLxJ5l+GO+IgtxXGbon7eeJBIZHHdMeDy4pC7DMcI214BmIntbyY+xS+gI3oM26EJUVmrZ6tkyIDFsCHm9rcXG9ogvffzQWM1Wqzm27hR/3s+EPWW9AOcIimiFV1UPp/mLjnrCuq58V2aJS/TT14oLe" ],
1160− "certificate" : [ "MIICmzCCAYMCBgFygL/j4DANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZtYXN0ZXIwHhcNMjAwNjA0MTkxMDU4WhcNMzAwNjA0MTkxMjM4WjARMQ8wDQYDVQQDDAZtYXN0ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN2jYdnmu42chuRJ4B8Vils+8nDe+3P9W4ol6sLiZRdh3upEyGzdUslneYXJ4K47xbzW+QasWIL0pCdfaUePZ20D9FYQnDlunP4l04Wvmm9eDSVDSxr6Guj1p9YPKBNTgWYuwSLnP3zzjtNsfXvxFPqfv4lWpn2NhT2tKnBVMLwT/jLFK5K2aEYJwCRnp0aEc0F28ZSDDEpiPt1gtEmIj6eKUh0q7E/PEj9hnFmdcEcN1s1cmAPKZNA+63306cHF5lsffwInUw2jdV1XV/M4wZQd76+f8Q4PkT6lcLw/C8mdZT5cdRMVVl7Ihd6GHelgtSyr/ptnUxiwRoUiHOc6TDAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAIAqydMYxa51kNEyfXyR2kStlglE4LDeLBLHDABeBPE0eN2awoH/mw3kXS4OA/C0e3c7bAwViOzOVERGeUNiBvP5rL1Amuu97nwFcxhkTaJH4ZwCGkxceaIo9LNDpAEesqHLQSdplFXIA4TbEFoKMem4k31KVU7i9/rUesrSRmxLptIOK7LLvRMYiY/t7tdAvoZAtoliuQlFKQywEuxXQrCkcoVEAARABWGt0rsWC2xK0tVxHRIrENwvMp/aUYd17sZ0403aaS9dlvfQ63ExnaHd+++RJtPku8P220Tw27YVmFAwzJgS0aUpEaDsgRNz6OMSyxEg/n7eKK08aU3szwQ=" ],
1161− "priority" : [ "100" ]
1997+ },
1998+ {
1999+ "id": "65bb9337-9633-4a21-8f6f-1d4129f664ac",
2000+ "alias": "review profile config",
2001+ "config": {
2002+ "update.profile.on.first.login": "missing"
11622003 }
1163− } ]
1164− },
1165− "internationalizationEnabled" : false,
1166− "supportedLocales" : [ ],
1167− "authenticationFlows" : [ {
1168− "id" : "3253f9b7-905d-4458-ad8a-8ada5e16d195",
1169− "alias" : "Account verification options",
1170− "description" : "Method with which to verity the existing account",
1171− "providerId" : "basic-flow",
1172− "topLevel" : false,
1173− "builtIn" : true,
1174− "authenticationExecutions" : [ {
1175− "authenticator" : "idp-email-verification",
1176− "requirement" : "ALTERNATIVE",
1177− "priority" : 10,
1178− "userSetupAllowed" : false,
1179− "autheticatorFlow" : false
1180− }, {
1181− "requirement" : "ALTERNATIVE",
1182− "priority" : 20,
1183− "flowAlias" : "Verify Existing Account by Re-authentication",
1184− "userSetupAllowed" : false,
1185− "autheticatorFlow" : true
1186− } ]
1187− }, {
1188− "id" : "75bd854e-ab99-46f1-90ed-a8bfc1559558",
1189− "alias" : "Authentication Options",
1190− "description" : "Authentication options.",
1191− "providerId" : "basic-flow",
1192− "topLevel" : false,
1193− "builtIn" : true,
1194− "authenticationExecutions" : [ {
1195− "authenticator" : "basic-auth",
1196− "requirement" : "REQUIRED",
1197− "priority" : 10,
1198− "userSetupAllowed" : false,
1199− "autheticatorFlow" : false
1200− }, {
1201− "authenticator" : "basic-auth-otp",
1202− "requirement" : "DISABLED",
1203− "priority" : 20,
1204− "userSetupAllowed" : false,
1205− "autheticatorFlow" : false
1206− }, {
1207− "authenticator" : "auth-spnego",
1208− "requirement" : "DISABLED",
1209− "priority" : 30,
1210− "userSetupAllowed" : false,
1211− "autheticatorFlow" : false
1212− } ]
1213− }, {
1214− "id" : "9b0e6cce-62c5-4fb6-a48d-e07c950e38c3",
1215− "alias" : "Browser - Conditional OTP",
1216− "description" : "Flow to determine if the OTP is required for the authentication",
1217− "providerId" : "basic-flow",
1218− "topLevel" : false,
1219− "builtIn" : true,
1220− "authenticationExecutions" : [ {
1221− "authenticator" : "conditional-user-configured",
1222− "requirement" : "REQUIRED",
1223− "priority" : 10,
1224− "userSetupAllowed" : false,
1225− "autheticatorFlow" : false
1226− }, {
1227− "authenticator" : "auth-otp-form",
1228− "requirement" : "REQUIRED",
1229− "priority" : 20,
1230− "userSetupAllowed" : false,
1231− "autheticatorFlow" : false
1232− } ]
1233− }, {
1234− "id" : "1c26fd14-ac06-4dc1-bdd8-8c34c1b41720",
1235− "alias" : "Direct Grant - Conditional OTP",
1236− "description" : "Flow to determine if the OTP is required for the authentication",
1237− "providerId" : "basic-flow",
1238− "topLevel" : false,
1239− "builtIn" : true,
1240− "authenticationExecutions" : [ {
1241− "authenticator" : "conditional-user-configured",
1242− "requirement" : "REQUIRED",
1243− "priority" : 10,
1244− "userSetupAllowed" : false,
1245− "autheticatorFlow" : false
1246− }, {
1247− "authenticator" : "direct-grant-validate-otp",
1248− "requirement" : "REQUIRED",
1249− "priority" : 20,
1250− "userSetupAllowed" : false,
1251− "autheticatorFlow" : false
1252− } ]
1253− }, {
1254− "id" : "254f7549-51ec-4565-a736-35c07b6e25f0",
1255− "alias" : "First broker login - Conditional OTP",
1256− "description" : "Flow to determine if the OTP is required for the authentication",
1257− "providerId" : "basic-flow",
1258− "topLevel" : false,
1259− "builtIn" : true,
1260− "authenticationExecutions" : [ {
1261− "authenticator" : "conditional-user-configured",
1262− "requirement" : "REQUIRED",
1263− "priority" : 10,
1264− "userSetupAllowed" : false,
1265− "autheticatorFlow" : false
1266− }, {
1267− "authenticator" : "auth-otp-form",
1268− "requirement" : "REQUIRED",
1269− "priority" : 20,
1270− "userSetupAllowed" : false,
1271− "autheticatorFlow" : false
1272− } ]
1273− }, {
1274− "id" : "b2413da8-3de9-4bfe-b77e-643fd1964c8f",
1275− "alias" : "Handle Existing Account",
1276− "description" : "Handle what to do if there is existing account with same email/username like authenticated identity provider",
1277− "providerId" : "basic-flow",
1278− "topLevel" : false,
1279− "builtIn" : true,
1280− "authenticationExecutions" : [ {
1281− "authenticator" : "idp-confirm-link",
1282− "requirement" : "REQUIRED",
1283− "priority" : 10,
1284− "userSetupAllowed" : false,
1285− "autheticatorFlow" : false
1286− }, {
1287− "requirement" : "REQUIRED",
1288− "priority" : 20,
1289− "flowAlias" : "Account verification options",
1290− "userSetupAllowed" : false,
1291− "autheticatorFlow" : true
1292− } ]
1293− }, {
1294− "id" : "f8392bfb-8dce-4a16-8af1-b2a4d1a0a273",
1295− "alias" : "Reset - Conditional OTP",
1296− "description" : "Flow to determine if the OTP should be reset or not. Set to REQUIRED to force.",
1297− "providerId" : "basic-flow",
1298− "topLevel" : false,
1299− "builtIn" : true,
1300− "authenticationExecutions" : [ {
1301− "authenticator" : "conditional-user-configured",
1302− "requirement" : "REQUIRED",
1303− "priority" : 10,
1304− "userSetupAllowed" : false,
1305− "autheticatorFlow" : false
1306− }, {
1307− "authenticator" : "reset-otp",
1308− "requirement" : "REQUIRED",
1309− "priority" : 20,
1310− "userSetupAllowed" : false,
1311− "autheticatorFlow" : false
1312− } ]
1313− }, {
1314− "id" : "fb69c297-b26e-44fa-aabd-d7b40eec3cd3",
1315− "alias" : "User creation or linking",
1316− "description" : "Flow for the existing/non-existing user alternatives",
1317− "providerId" : "basic-flow",
1318− "topLevel" : false,
1319− "builtIn" : true,
1320− "authenticationExecutions" : [ {
1321− "authenticatorConfig" : "create unique user config",
1322− "authenticator" : "idp-create-user-if-unique",
1323− "requirement" : "ALTERNATIVE",
1324− "priority" : 10,
1325− "userSetupAllowed" : false,
1326− "autheticatorFlow" : false
1327− }, {
1328− "requirement" : "ALTERNATIVE",
1329− "priority" : 20,
1330− "flowAlias" : "Handle Existing Account",
1331− "userSetupAllowed" : false,
1332− "autheticatorFlow" : true
1333− } ]
1334− }, {
1335− "id" : "de3a41a9-7018-4931-9c4d-d04f9501b2ce",
1336− "alias" : "Verify Existing Account by Re-authentication",
1337− "description" : "Reauthentication of existing account",
1338− "providerId" : "basic-flow",
1339− "topLevel" : false,
1340− "builtIn" : true,
1341− "authenticationExecutions" : [ {
1342− "authenticator" : "idp-username-password-form",
1343− "requirement" : "REQUIRED",
1344− "priority" : 10,
1345− "userSetupAllowed" : false,
1346− "autheticatorFlow" : false
1347− }, {
1348− "requirement" : "CONDITIONAL",
1349− "priority" : 20,
1350− "flowAlias" : "First broker login - Conditional OTP",
1351− "userSetupAllowed" : false,
1352− "autheticatorFlow" : true
1353− } ]
1354− }, {
1355− "id" : "6526b0d1-b48e-46c6-bb08-11ebcf458def",
1356− "alias" : "browser",
1357− "description" : "browser based authentication",
1358− "providerId" : "basic-flow",
1359− "topLevel" : true,
1360− "builtIn" : true,
1361− "authenticationExecutions" : [ {
1362− "authenticator" : "auth-cookie",
1363− "requirement" : "ALTERNATIVE",
1364− "priority" : 10,
1365− "userSetupAllowed" : false,
1366− "autheticatorFlow" : false
1367− }, {
1368− "authenticator" : "auth-spnego",
1369− "requirement" : "DISABLED",
1370− "priority" : 20,
1371− "userSetupAllowed" : false,
1372− "autheticatorFlow" : false
1373− }, {
1374− "authenticator" : "identity-provider-redirector",
1375− "requirement" : "ALTERNATIVE",
1376− "priority" : 25,
1377− "userSetupAllowed" : false,
1378− "autheticatorFlow" : false
1379− }, {
1380− "requirement" : "ALTERNATIVE",
1381− "priority" : 30,
1382− "flowAlias" : "forms",
1383− "userSetupAllowed" : false,
1384− "autheticatorFlow" : true
1385− } ]
1386− }, {
1387− "id" : "92a653ba-8f2d-4283-8354-ca55f9d89181",
1388− "alias" : "clients",
1389− "description" : "Base authentication for clients",
1390− "providerId" : "client-flow",
1391− "topLevel" : true,
1392− "builtIn" : true,
1393− "authenticationExecutions" : [ {
1394− "authenticator" : "client-secret",
1395− "requirement" : "ALTERNATIVE",
1396− "priority" : 10,
1397− "userSetupAllowed" : false,
1398− "autheticatorFlow" : false
1399− }, {
1400− "authenticator" : "client-jwt",
1401− "requirement" : "ALTERNATIVE",
1402− "priority" : 20,
1403− "userSetupAllowed" : false,
1404− "autheticatorFlow" : false
1405− }, {
1406− "authenticator" : "client-secret-jwt",
1407− "requirement" : "ALTERNATIVE",
1408− "priority" : 30,
1409− "userSetupAllowed" : false,
1410− "autheticatorFlow" : false
1411− }, {
1412− "authenticator" : "client-x509",
1413− "requirement" : "ALTERNATIVE",
1414− "priority" : 40,
1415− "userSetupAllowed" : false,
1416− "autheticatorFlow" : false
1417− } ]
1418− }, {
1419− "id" : "e365be39-78db-46f0-b2e8-4e7001c2f5d0",
1420− "alias" : "direct grant",
1421− "description" : "OpenID Connect Resource Owner Grant",
1422− "providerId" : "basic-flow",
1423− "topLevel" : true,
1424− "builtIn" : true,
1425− "authenticationExecutions" : [ {
1426− "authenticator" : "direct-grant-validate-username",
1427− "requirement" : "REQUIRED",
1428− "priority" : 10,
1429− "userSetupAllowed" : false,
1430− "autheticatorFlow" : false
1431− }, {
1432− "authenticator" : "direct-grant-validate-password",
1433− "requirement" : "REQUIRED",
1434− "priority" : 20,
1435− "userSetupAllowed" : false,
1436− "autheticatorFlow" : false
1437− }, {
1438− "requirement" : "CONDITIONAL",
1439− "priority" : 30,
1440− "flowAlias" : "Direct Grant - Conditional OTP",
1441− "userSetupAllowed" : false,
1442− "autheticatorFlow" : true
1443− } ]
1444− }, {
1445− "id" : "dd61caf5-a40f-48b7-9e8c-a1f3b67041dd",
1446− "alias" : "docker auth",
1447− "description" : "Used by Docker clients to authenticate against the IDP",
1448− "providerId" : "basic-flow",
1449− "topLevel" : true,
1450− "builtIn" : true,
1451− "authenticationExecutions" : [ {
1452− "authenticator" : "docker-http-basic-authenticator",
1453− "requirement" : "REQUIRED",
1454− "priority" : 10,
1455− "userSetupAllowed" : false,
1456− "autheticatorFlow" : false
1457− } ]
1458− }, {
1459− "id" : "7a055643-62e1-4ac1-b126-9a8d6c299635",
1460− "alias" : "first broker login",
1461− "description" : "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account",
1462− "providerId" : "basic-flow",
1463− "topLevel" : true,
1464− "builtIn" : true,
1465− "authenticationExecutions" : [ {
1466− "authenticatorConfig" : "review profile config",
1467− "authenticator" : "idp-review-profile",
1468− "requirement" : "REQUIRED",
1469− "priority" : 10,
1470− "userSetupAllowed" : false,
1471− "autheticatorFlow" : false
1472− }, {
1473− "requirement" : "REQUIRED",
1474− "priority" : 20,
1475− "flowAlias" : "User creation or linking",
1476− "userSetupAllowed" : false,
1477− "autheticatorFlow" : true
1478− } ]
1479− }, {
1480− "id" : "fe8bc7ee-6e8f-436e-8336-c60fcd350843",
1481− "alias" : "forms",
1482− "description" : "Username, password, otp and other auth forms.",
1483− "providerId" : "basic-flow",
1484− "topLevel" : false,
1485− "builtIn" : true,
1486− "authenticationExecutions" : [ {
1487− "authenticator" : "auth-username-password-form",
1488− "requirement" : "REQUIRED",
1489− "priority" : 10,
1490− "userSetupAllowed" : false,
1491− "autheticatorFlow" : false
1492− }, {
1493− "requirement" : "CONDITIONAL",
1494− "priority" : 20,
1495− "flowAlias" : "Browser - Conditional OTP",
1496− "userSetupAllowed" : false,
1497− "autheticatorFlow" : true
1498− } ]
1499− }, {
1500− "id" : "3646f08e-ab70-415b-a701-6ed2e2d214c9",
1501− "alias" : "http challenge",
1502− "description" : "An authentication flow based on challenge-response HTTP Authentication Schemes",
1503− "providerId" : "basic-flow",
1504− "topLevel" : true,
1505− "builtIn" : true,
1506− "authenticationExecutions" : [ {
1507− "authenticator" : "no-cookie-redirect",
1508− "requirement" : "REQUIRED",
1509− "priority" : 10,
1510− "userSetupAllowed" : false,
1511− "autheticatorFlow" : false
1512− }, {
1513− "requirement" : "REQUIRED",
1514− "priority" : 20,
1515− "flowAlias" : "Authentication Options",
1516− "userSetupAllowed" : false,
1517− "autheticatorFlow" : true
1518− } ]
1519− }, {
1520− "id" : "04176530-0972-47ad-83df-19d8534caac2",
1521− "alias" : "registration",
1522− "description" : "registration flow",
1523− "providerId" : "basic-flow",
1524− "topLevel" : true,
1525− "builtIn" : true,
1526− "authenticationExecutions" : [ {
1527− "authenticator" : "registration-page-form",
1528− "requirement" : "REQUIRED",
1529− "priority" : 10,
1530− "flowAlias" : "registration form",
1531− "userSetupAllowed" : false,
1532− "autheticatorFlow" : true
1533− } ]
1534− }, {
1535− "id" : "fa0ed569-6746-439e-b07e-89f7ed918c07",
1536− "alias" : "registration form",
1537− "description" : "registration form",
1538− "providerId" : "form-flow",
1539− "topLevel" : false,
1540− "builtIn" : true,
1541− "authenticationExecutions" : [ {
1542− "authenticator" : "registration-user-creation",
1543− "requirement" : "REQUIRED",
1544− "priority" : 20,
1545− "userSetupAllowed" : false,
1546− "autheticatorFlow" : false
1547− }, {
1548− "authenticator" : "registration-profile-action",
1549− "requirement" : "REQUIRED",
1550− "priority" : 40,
1551− "userSetupAllowed" : false,
1552− "autheticatorFlow" : false
1553− }, {
1554− "authenticator" : "registration-password-action",
1555− "requirement" : "REQUIRED",
1556− "priority" : 50,
1557− "userSetupAllowed" : false,
1558− "autheticatorFlow" : false
1559− }, {
1560− "authenticator" : "registration-recaptcha-action",
1561− "requirement" : "DISABLED",
1562− "priority" : 60,
1563− "userSetupAllowed" : false,
1564− "autheticatorFlow" : false
1565− } ]
1566− }, {
1567− "id" : "03680917-28f3-4ccd-bdf6-4a516f7c0018",
1568− "alias" : "reset credentials",
1569− "description" : "Reset credentials for a user if they forgot their password or something",
1570− "providerId" : "basic-flow",
1571− "topLevel" : true,
1572− "builtIn" : true,
1573− "authenticationExecutions" : [ {
1574− "authenticator" : "reset-credentials-choose-user",
1575− "requirement" : "REQUIRED",
1576− "priority" : 10,
1577− "userSetupAllowed" : false,
1578− "autheticatorFlow" : false
1579− }, {
1580− "authenticator" : "reset-credential-email",
1581− "requirement" : "REQUIRED",
1582− "priority" : 20,
1583− "userSetupAllowed" : false,
1584− "autheticatorFlow" : false
1585− }, {
1586− "authenticator" : "reset-password",
1587− "requirement" : "REQUIRED",
1588− "priority" : 30,
1589− "userSetupAllowed" : false,
1590− "autheticatorFlow" : false
1591− }, {
1592− "requirement" : "CONDITIONAL",
1593− "priority" : 40,
1594− "flowAlias" : "Reset - Conditional OTP",
1595− "userSetupAllowed" : false,
1596− "autheticatorFlow" : true
1597− } ]
1598− }, {
1599− "id" : "19a9d9aa-2d2b-4701-807f-c384ab921c7e",
1600− "alias" : "saml ecp",
1601− "description" : "SAML ECP Profile Authentication Flow",
1602− "providerId" : "basic-flow",
1603− "topLevel" : true,
1604− "builtIn" : true,
1605− "authenticationExecutions" : [ {
1606− "authenticator" : "http-basic-authenticator",
1607− "requirement" : "REQUIRED",
1608− "priority" : 10,
1609− "userSetupAllowed" : false,
1610− "autheticatorFlow" : false
1611− } ]
1612− } ],
1613− "authenticatorConfig" : [ {
1614− "id" : "534f01f4-45b3-43a0-91d1-238860cc126d",
1615− "alias" : "create unique user config",
1616− "config" : {
1617− "require.password.update.after.registration" : "false"
16182004 }
1619− }, {
1620− "id" : "65bb9337-9633-4a21-8f6f-1d4129f664ac",
1621− "alias" : "review profile config",
1622− "config" : {
1623− "update.profile.on.first.login" : "missing"
2005+ ],
2006+ "requiredActions": [
2007+ {
2008+ "alias": "CONFIGURE_TOTP",
2009+ "name": "Configure OTP",
2010+ "providerId": "CONFIGURE_TOTP",
2011+ "enabled": true,
2012+ "defaultAction": false,
2013+ "priority": 10,
2014+ "config": {}
2015+ },
2016+ {
2017+ "alias": "terms_and_conditions",
2018+ "name": "Terms and Conditions",
2019+ "providerId": "terms_and_conditions",
2020+ "enabled": false,
2021+ "defaultAction": false,
2022+ "priority": 20,
2023+ "config": {}
2024+ },
2025+ {
2026+ "alias": "UPDATE_PASSWORD",
2027+ "name": "Update Password",
2028+ "providerId": "UPDATE_PASSWORD",
2029+ "enabled": true,
2030+ "defaultAction": false,
2031+ "priority": 30,
2032+ "config": {}
2033+ },
2034+ {
2035+ "alias": "UPDATE_PROFILE",
2036+ "name": "Update Profile",
2037+ "providerId": "UPDATE_PROFILE",
2038+ "enabled": true,
2039+ "defaultAction": false,
2040+ "priority": 40,
2041+ "config": {}
2042+ },
2043+ {
2044+ "alias": "VERIFY_EMAIL",
2045+ "name": "Verify Email",
2046+ "providerId": "VERIFY_EMAIL",
2047+ "enabled": true,
2048+ "defaultAction": false,
2049+ "priority": 50,
2050+ "config": {}
2051+ },
2052+ {
2053+ "alias": "update_user_locale",
2054+ "name": "Update User Locale",
2055+ "providerId": "update_user_locale",
2056+ "enabled": true,
2057+ "defaultAction": false,
2058+ "priority": 1000,
2059+ "config": {}
16242060 }
1625− } ],
1626− "requiredActions" : [ {
1627− "alias" : "CONFIGURE_TOTP",
1628− "name" : "Configure OTP",
1629− "providerId" : "CONFIGURE_TOTP",
1630− "enabled" : true,
1631− "defaultAction" : false,
1632− "priority" : 10,
1633− "config" : { }
1634− }, {
1635− "alias" : "terms_and_conditions",
1636− "name" : "Terms and Conditions",
1637− "providerId" : "terms_and_conditions",
1638− "enabled" : false,
1639− "defaultAction" : false,
1640− "priority" : 20,
1641− "config" : { }
1642− }, {
1643− "alias" : "UPDATE_PASSWORD",
1644− "name" : "Update Password",
1645− "providerId" : "UPDATE_PASSWORD",
1646− "enabled" : true,
1647− "defaultAction" : false,
1648− "priority" : 30,
1649− "config" : { }
1650− }, {
1651− "alias" : "UPDATE_PROFILE",
1652− "name" : "Update Profile",
1653− "providerId" : "UPDATE_PROFILE",
1654− "enabled" : true,
1655− "defaultAction" : false,
1656− "priority" : 40,
1657− "config" : { }
1658− }, {
1659− "alias" : "VERIFY_EMAIL",
1660− "name" : "Verify Email",
1661− "providerId" : "VERIFY_EMAIL",
1662− "enabled" : true,
1663− "defaultAction" : false,
1664− "priority" : 50,
1665− "config" : { }
1666− }, {
1667− "alias" : "update_user_locale",
1668− "name" : "Update User Locale",
1669− "providerId" : "update_user_locale",
1670− "enabled" : true,
1671− "defaultAction" : false,
1672− "priority" : 1000,
1673− "config" : { }
1674− } ],
1675− "browserFlow" : "browser",
1676− "registrationFlow" : "registration",
1677− "directGrantFlow" : "direct grant",
1678− "resetCredentialsFlow" : "reset credentials",
1679− "clientAuthenticationFlow" : "clients",
1680− "dockerAuthenticationFlow" : "docker auth",
1681− "attributes" : { },
1682− "keycloakVersion" : "10.0.0",
1683− "userManagedAccessAllowed" : false
2061+ ],
2062+ "browserFlow": "browser",
2063+ "registrationFlow": "registration",
2064+ "directGrantFlow": "direct grant",
2065+ "resetCredentialsFlow": "reset credentials",
2066+ "clientAuthenticationFlow": "clients",
2067+ "dockerAuthenticationFlow": "docker auth",
2068+ "attributes": {},
2069+ "keycloakVersion": "10.0.0",
2070+ "userManagedAccessAllowed": false
16842071}
contrib/local-environment/keycloak/master-users-0.json+36−25
@@ -1,27 +1,38 @@
11{
2− "realm" : "master",
3− "users" : [ {
4− "id" : "3356c0a0-d4d5-4436-9c5a-2299c71c08ec",
5− "createdTimestamp" : 1591297959169,
6− "username" : "admin@example.com",
7− "email" : "admin@example.com",
8− "enabled" : true,
9− "totp" : false,
10− "emailVerified" : true,
11− "credentials" : [ {
12− "id" : "a1a06ecd-fdc0-4e67-92cd-2da22d724e32",
13− "type" : "password",
14− "createdDate" : 1591297959315,
15− "secretData" : "{\"value\":\"6rt5zuqHVHopvd0FTFE0CYadXTtzY0mDY2BrqnNQGS51/7DfMJeGgj0roNnGMGvDv30imErNmiSOYl+cL9jiIA==\",\"salt\":\"LI0kqr09JB7J9wvr2Hxzzg==\"}",
16− "credentialData" : "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}"
17− } ],
18− "disableableCredentialTypes" : [ ],
19− "requiredActions" : [ ],
20− "realmRoles" : [ "offline_access", "admin", "uma_authorization" ],
21− "clientRoles" : {
22− "account" : [ "view-profile", "manage-account" ]
23− },
24− "notBefore" : 0,
25− "groups" : [ ]
26− } ]
2+ "realm": "master",
3+ "users": [
4+ {
5+ "id": "3356c0a0-d4d5-4436-9c5a-2299c71c08ec",
6+ "createdTimestamp": 1591297959169,
7+ "username": "admin@example.com",
8+ "email": "admin@example.com",
9+ "enabled": true,
10+ "totp": false,
11+ "emailVerified": true,
12+ "credentials": [
13+ {
14+ "id": "a1a06ecd-fdc0-4e67-92cd-2da22d724e32",
15+ "type": "password",
16+ "createdDate": 1591297959315,
17+ "secretData": "{\"value\":\"6rt5zuqHVHopvd0FTFE0CYadXTtzY0mDY2BrqnNQGS51/7DfMJeGgj0roNnGMGvDv30imErNmiSOYl+cL9jiIA==\",\"salt\":\"LI0kqr09JB7J9wvr2Hxzzg==\"}",
18+ "credentialData": "{\"hashIterations\":27500,\"algorithm\":\"pbkdf2-sha256\"}"
19+ }
20+ ],
21+ "disableableCredentialTypes": [],
22+ "requiredActions": [],
23+ "realmRoles": [
24+ "offline_access",
25+ "admin",
26+ "uma_authorization"
27+ ],
28+ "clientRoles": {
29+ "account": [
30+ "view-profile",
31+ "manage-account"
32+ ]
33+ },
34+ "notBefore": 0,
35+ "groups": []
36+ }
37+ ]
2738}
contrib/local-environment/kubernetes/Chart.lock+8−8
@@ -1,15 +1,15 @@
11dependencies:
22- name: dex
3− repository: https://charts.helm.sh/stable
4− version: 2.11.0
3+ repository: https://charts.dexidp.io
4+ version: 0.16.0
55- name: oauth2-proxy
6− repository: https://charts.helm.sh/stable
7− version: 3.1.0
6+ repository: https://oauth2-proxy.github.io/manifests
7+ version: 6.23.1
88- name: httpbin
99 repository: https://conservis.github.io/helm-charts
10− version: 1.0.1
10+ version: 1.1.0
1111- name: hello-world
1212 repository: https://conservis.github.io/helm-charts
13− version: 1.0.1
14−digest: sha256:e325948ece1706bd9d9e439568985db41e9a0d57623d0f9638249cb0d23821b8
15−generated: "2020-11-23T11:45:07.908898-08:00"
13+ version: 1.1.0
14+digest: sha256:00b9fe9ea476c873550f9ee1feef25f789053cd7333e68b1116212840dead0fb
15+generated: "2024-01-27T09:00:30.255018+01:00"
contrib/local-environment/kubernetes/Chart.yaml+7−8
@@ -1,19 +1,18 @@
11apiVersion: v2
22description: K8S example based on https://kind.sigs.k8s.io
33name: kubernetes
4−version: 5.1.1
5−appVersion: 5.1.1
64dependencies:
75 - name: dex
8− version: 2.11.0
9− repository: https://charts.helm.sh/stable
6+ version: 0.16.0
7+ repository: https://charts.dexidp.io
108 - name: oauth2-proxy
11− version: 3.1.0
12− repository: https://charts.helm.sh/stable
9+ version: &chartVersion 6.23.1
10+ repository: https://oauth2-proxy.github.io/manifests
1311 # https://github.com/postmanlabs/httpbin/issues/549 is still in progress, for now using a non-official chart
1412 - name: httpbin
15− version: 1.0.1
13+ version: 1.1.0
1614 repository: https://conservis.github.io/helm-charts
1715 - name: hello-world
18− version: 1.0.1
16+ version: 1.1.0
1917 repository: https://conservis.github.io/helm-charts
18+version: *chartVersion
contrib/local-environment/kubernetes/Makefile+2−10
@@ -30,15 +30,13 @@ delete-cluster:
3030 kind delete cluster --name oauth2-proxy
3131
3232.PHONY: deploy
33−deploy:
34− kubectl apply -f oauth2-proxy-example-full.yaml
33+deploy: helm-deploy
3534 kubectl rollout status --timeout 5m deployment/oauth2-proxy-example-oauth2-proxy-sample
3635 kubectl rollout status --timeout 1m deployment/oauth2-proxy-example-httpbin
3736 kubectl rollout status --timeout 1m deployment/oauth2-proxy-example-hello-world
3837
3938.PHONY: undeploy
40−undeploy:
41− kubectl delete -f oauth2-proxy-example-full.yaml
39+undeploy: helm-undeploy
4240
4341######################
4442###### HELM CMDs #####
@@ -59,9 +57,3 @@ helm-deploy: helm-init
5957.PHONY: helm-undeploy
6058helm-undeploy:
6159 helm del oauth2-proxy-example
62−
63−# creates K8S manifest from helm chart
64−.PHONY: helm-create-manifest
65−helm-create-manifest: helm-init
66− echo "# WARNING: This file is auto-generated by 'make helm-create-manifest'! DO NOT EDIT MANUALLY!" > oauth2-proxy-example-full.yaml
67− helm template --namespace default oauth2-proxy-example . >> oauth2-proxy-example-full.yaml
contrib/local-environment/kubernetes/README.md+2−4
@@ -8,14 +8,12 @@ Before you start:
88_Required_
99* install [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation)
1010* install [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
11−
12−_Optional_
13−* install [helm 3](https://helm.sh/docs/intro/quickstart/#install-helm).
11+* install [helm](https://helm.sh/docs/intro/quickstart/#install-helm).
1412
1513Then:
1614
1715* `make create-cluster`
18−* `make deploy` OR `make helm-deploy` for helm
16+* `make deploy`
1917
2018Visit http://httpbin.localtest.me or http://hello-world.localtest.me/
2119
contrib/local-environment/kubernetes/custom-dns.yaml+4−4
@@ -1,4 +1,8 @@
11apiVersion: v1
2+kind: ConfigMap
3+metadata:
4+ name: coredns
5+ namespace: kube-system
26data:
37 Corefile: |
48 .:53 {
@@ -24,7 +28,3 @@ data:
2428 fallthrough
2529 }
2630 }
27−kind: ConfigMap
28−metadata:
29− name: coredns
30− namespace: kube-system
contrib/local-environment/kubernetes/kind-cluster.yaml+1−1
@@ -1,5 +1,5 @@
1−kind: Cluster
21apiVersion: kind.x-k8s.io/v1alpha4
2+kind: Cluster
33nodes:
44 - role: control-plane
55 kubeadmConfigPatches:
contrib/local-environment/kubernetes/oauth2-proxy-example-full.yamldeleted−564
@@ -1,564 +0,0 @@
1−# WARNING: This file is auto-generated by 'make helm-create-manifest'! DO NOT EDIT MANUALLY!
2−---
3−# Source: kubernetes/charts/dex/templates/serviceaccount.yaml
4−apiVersion: v1
5−kind: ServiceAccount
6−metadata:
7− labels:
8− app.kubernetes.io/name: dex
9− helm.sh/chart: dex-2.11.0
10− app.kubernetes.io/instance: oauth2-proxy-example
11− app.kubernetes.io/version: "2.23.0"
12− app.kubernetes.io/managed-by: Helm
13− name: oauth2-proxy-example-dex
14−---
15−# Source: kubernetes/charts/hello-world/templates/serviceaccount.yaml
16−apiVersion: v1
17−kind: ServiceAccount
18−metadata:
19− name: oauth2-proxy-example-hello-world
20− labels:
21− helm.sh/chart: hello-world-1.0.1
22− app.kubernetes.io/name: hello-world
23− app.kubernetes.io/instance: oauth2-proxy-example
24− app.kubernetes.io/version: "1.0.0"
25− app.kubernetes.io/managed-by: Helm
26−---
27−# Source: kubernetes/charts/httpbin/templates/serviceaccount.yaml
28−apiVersion: v1
29−kind: ServiceAccount
30−metadata:
31− name: oauth2-proxy-example-httpbin
32− labels:
33− helm.sh/chart: httpbin-1.0.1
34− app.kubernetes.io/name: httpbin
35− app.kubernetes.io/instance: oauth2-proxy-example
36− app.kubernetes.io/version: "latest"
37− app.kubernetes.io/managed-by: Helm
38−---
39−# Source: kubernetes/charts/oauth2-proxy/templates/serviceaccount.yaml
40−apiVersion: v1
41−kind: ServiceAccount
42−metadata:
43− labels:
44− app: oauth2-proxy-sample
45− chart: oauth2-proxy-3.1.0
46− release: oauth2-proxy-example
47− heritage: Helm
48− name: oauth2-proxy-example-oauth2-proxy-sample
49−---
50−# Source: kubernetes/charts/dex/templates/secret.yaml
51−apiVersion: v1
52−kind: Secret
53−metadata:
54− labels:
55− app.kubernetes.io/name: dex
56− helm.sh/chart: dex-2.11.0
57− app.kubernetes.io/instance: oauth2-proxy-example
58− app.kubernetes.io/version: "2.23.0"
59− app.kubernetes.io/managed-by: Helm
60− name: oauth2-proxy-example-dex
61−stringData:
62− config.yaml: |-
63− issuer: http://dex.localtest.me
64− storage:
65− config:
66− inCluster: true
67− type: kubernetes
68− logger:
69− level: debug
70− web:
71− http: 0.0.0.0:5556
72− oauth2:
73− alwaysShowLoginScreen: false
74− skipApprovalScreen: true
75− staticClients:
76− - id: oauth2-proxy
77− name: OAuth2 Proxy
78− redirectURIs:
79− - http://oauth2-proxy.localtest.me/oauth2/callback
80− secret: b2F1dGgyLXByb3h5LWNsaWVudC1zZWNyZXQK
81− enablePasswordDB: true
82− staticPasswords:
83− - email: admin@example.com
84− hash: $2a$10$2b2cU8CPhOTaGrs1HRQuAueS7JTT5ZHsHSzYiFPm1leZck7Mc8T4W
85− userID: 08a8684b-db88-4b73-90a9-3cd1661f5466
86− username: admin
87− expiry:
88− idTokens: 1h
89− signingKeys: 4h
90−---
91−# Source: kubernetes/charts/oauth2-proxy/templates/configmap.yaml
92−apiVersion: v1
93−kind: ConfigMap
94−metadata:
95− labels:
96− app: oauth2-proxy-sample
97− chart: oauth2-proxy-3.1.0
98− heritage: Helm
99− release: oauth2-proxy-example
100− name: oauth2-proxy-example-oauth2-proxy-sample
101−data:
102− oauth2_proxy.cfg: "cookie_secret=\"OQINaROshtE9TcZkNAm-5Zs2Pv3xaWytBmc5W7sPX7w=\"\ncookie_domain=\".localtest.me\"\nwhitelist_domains=[\".localtest.me\"]\n# only users with this domain will be let in\nemail_domains=[\"example.com\"]\n\nclient_id=\"oauth2-proxy\"\nclient_secret=\"b2F1dGgyLXByb3h5LWNsaWVudC1zZWNyZXQK\"\ncookie_secure=\"false\"\n\nredirect_url=\"http://oauth2-proxy.localtest.me/oauth2/callback\"\n\n# we don't want to proxy anything so pick a non-existent directory\nupstreams = [ \"file:///dev/null\" ]\n\n# return authenticated user to nginx\nset_xauthrequest = true\n# using http://dex.localtest.me/.well-known/openid-configuration oauth2-proxy will populate\n# login_url, redeem_url, and oidc_jwks_url\nprovider=\"oidc\"\noidc_issuer_url=\"http://dex.localtest.me\""
103−---
104−# Source: kubernetes/charts/dex/templates/clusterrole.yaml
105−apiVersion: rbac.authorization.k8s.io/v1
106−kind: ClusterRole
107−metadata:
108− labels:
109− app.kubernetes.io/name: dex
110− helm.sh/chart: dex-2.11.0
111− app.kubernetes.io/instance: oauth2-proxy-example
112− app.kubernetes.io/version: "2.23.0"
113− app.kubernetes.io/managed-by: Helm
114− name: oauth2-proxy-example-dex
115−rules:
116−- apiGroups: ["dex.coreos.com"] # API group created by dex
117− resources: ["*"]
118− verbs: ["*"]
119−- apiGroups: ["apiextensions.k8s.io"]
120− resources: ["customresourcedefinitions"]
121− verbs: ["create"] # To manage its own resources, dex must be able to create customresourcedefinitions
122−---
123−# Source: kubernetes/charts/dex/templates/clusterrolebinding.yaml
124−apiVersion: rbac.authorization.k8s.io/v1
125−kind: ClusterRoleBinding
126−metadata:
127− labels:
128− app.kubernetes.io/name: dex
129− helm.sh/chart: dex-2.11.0
130− app.kubernetes.io/instance: oauth2-proxy-example
131− app.kubernetes.io/version: "2.23.0"
132− app.kubernetes.io/managed-by: Helm
133− name: oauth2-proxy-example-dex
134−roleRef:
135− apiGroup: rbac.authorization.k8s.io
136− kind: ClusterRole
137− name: oauth2-proxy-example-dex
138−subjects:
139− - kind: ServiceAccount
140− name: oauth2-proxy-example-dex
141− namespace: default
142−---
143−# Source: kubernetes/charts/dex/templates/service.yaml
144−apiVersion: v1
145−kind: Service
146−metadata:
147− name: oauth2-proxy-example-dex
148− labels:
149− app.kubernetes.io/name: dex
150− helm.sh/chart: dex-2.11.0
151− app.kubernetes.io/instance: oauth2-proxy-example
152− app.kubernetes.io/version: "2.23.0"
153− app.kubernetes.io/managed-by: Helm
154−spec:
155− type: ClusterIP
156− sessionAffinity: None
157− ports:
158− - name: http
159− targetPort: http
160− port: 32000
161− selector:
162− app.kubernetes.io/name: dex
163− app.kubernetes.io/instance: oauth2-proxy-example
164−---
165−# Source: kubernetes/charts/hello-world/templates/service.yaml
166−apiVersion: v1
167−kind: Service
168−metadata:
169− name: oauth2-proxy-example-hello-world
170− labels:
171− helm.sh/chart: hello-world-1.0.1
172− app.kubernetes.io/name: hello-world
173− app.kubernetes.io/instance: oauth2-proxy-example
174− app.kubernetes.io/version: "1.0.0"
175− app.kubernetes.io/managed-by: Helm
176−spec:
177− type: ClusterIP
178− ports:
179− - port: 9080
180− targetPort: http
181− protocol: TCP
182− name: http
183− selector:
184− app.kubernetes.io/name: hello-world
185− app.kubernetes.io/instance: oauth2-proxy-example
186−---
187−# Source: kubernetes/charts/httpbin/templates/service.yaml
188−apiVersion: v1
189−kind: Service
190−metadata:
191− name: oauth2-proxy-example-httpbin
192− labels:
193− helm.sh/chart: httpbin-1.0.1
194− app.kubernetes.io/name: httpbin
195− app.kubernetes.io/instance: oauth2-proxy-example
196− app.kubernetes.io/version: "latest"
197− app.kubernetes.io/managed-by: Helm
198−spec:
199− type: ClusterIP
200− ports:
201− - port: 80
202− targetPort: http
203− protocol: TCP
204− name: http
205− selector:
206− app.kubernetes.io/name: httpbin
207− app.kubernetes.io/instance: oauth2-proxy-example
208−---
209−# Source: kubernetes/charts/oauth2-proxy/templates/service.yaml
210−apiVersion: v1
211−kind: Service
212−metadata:
213− labels:
214− app: oauth2-proxy-sample
215− chart: oauth2-proxy-3.1.0
216− release: oauth2-proxy-example
217− heritage: Helm
218− name: oauth2-proxy-example-oauth2-proxy-sample
219−spec:
220− type: ClusterIP
221− ports:
222− - port: 80
223− targetPort: http
224− protocol: TCP
225− name: http
226− selector:
227− app: oauth2-proxy-sample
228− release: oauth2-proxy-example
229−---
230−# Source: kubernetes/charts/dex/templates/deployment.yaml
231−apiVersion: apps/v1
232−kind: Deployment
233−metadata:
234− name: oauth2-proxy-example-dex
235− labels:
236− app.kubernetes.io/name: dex
237− helm.sh/chart: dex-2.11.0
238− app.kubernetes.io/instance: oauth2-proxy-example
239− app.kubernetes.io/version: "2.23.0"
240− app.kubernetes.io/managed-by: Helm
241− app.kubernetes.io/component: dex
242−spec:
243− replicas: 1
244− strategy:
245− rollingUpdate:
246− maxSurge: 0
247− maxUnavailable: 1
248− type: RollingUpdate
249− selector:
250− matchLabels:
251− app.kubernetes.io/name: dex
252− app.kubernetes.io/instance: oauth2-proxy-example
253− app.kubernetes.io/component: dex
254− template:
255− metadata:
256− labels:
257− app.kubernetes.io/name: dex
258− app.kubernetes.io/instance: oauth2-proxy-example
259− app.kubernetes.io/component: dex
260− annotations:
261− checksum/config: 185f32cfabdf4f7467868dc301d4bd33e68951e12eddeb69f23ebc1d0f91ba28
262− spec:
263− serviceAccountName: oauth2-proxy-example-dex
264− nodeSelector:
265− {}
266− containers:
267− - name: main
268− image: "quay.io/dexidp/dex:v2.23.0"
269− imagePullPolicy: IfNotPresent
270− command:
271− - /usr/local/bin/dex
272− - serve
273− - /etc/dex/cfg/config.yaml
274− resources:
275− null
276− ports:
277− - name: http
278− containerPort: 5556
279− protocol: TCP
280− livenessProbe:
281− httpGet:
282− path: /healthz
283− port: http
284− initialDelaySeconds: 1
285− periodSeconds: 10
286− timeoutSeconds: 1
287− failureThreshold: 1
288− readinessProbe:
289− httpGet:
290− path: /healthz
291− port: http
292− initialDelaySeconds: 1
293− periodSeconds: 10
294− timeoutSeconds: 1
295− failureThreshold: 1
296− env:
297− []
298− volumeMounts:
299− - mountPath: /etc/dex/cfg
300− name: config
301− volumes:
302− - secret:
303− defaultMode: 420
304− items:
305− - key: config.yaml
306− path: config.yaml
307− secretName: oauth2-proxy-example-dex
308− name: config
309−---
310−# Source: kubernetes/charts/hello-world/templates/deployment.yaml
311−apiVersion: apps/v1
312−kind: Deployment
313−metadata:
314− name: oauth2-proxy-example-hello-world
315− labels:
316− helm.sh/chart: hello-world-1.0.1
317− app.kubernetes.io/name: hello-world
318− app.kubernetes.io/instance: oauth2-proxy-example
319− app.kubernetes.io/version: "1.0.0"
320− app.kubernetes.io/managed-by: Helm
321−spec:
322− replicas: 1
323− selector:
324− matchLabels:
325− app.kubernetes.io/name: hello-world
326− app.kubernetes.io/instance: oauth2-proxy-example
327− template:
328− metadata:
329− labels:
330− app.kubernetes.io/name: hello-world
331− app.kubernetes.io/instance: oauth2-proxy-example
332− spec:
333− serviceAccountName: oauth2-proxy-example-hello-world
334− securityContext:
335− {}
336− containers:
337− - name: hello-world
338− securityContext:
339− {}
340− image: "conservis/hello-world:1.0.0"
341− imagePullPolicy: IfNotPresent
342− ports:
343− - name: http
344− containerPort: 9080
345− protocol: TCP
346− livenessProbe:
347− httpGet:
348− path: /
349− port: http
350− readinessProbe:
351− httpGet:
352− path: /
353− port: http
354− resources:
355− {}
356−---
357−# Source: kubernetes/charts/httpbin/templates/deployment.yaml
358−apiVersion: apps/v1
359−kind: Deployment
360−metadata:
361− name: oauth2-proxy-example-httpbin
362− labels:
363− helm.sh/chart: httpbin-1.0.1
364− app.kubernetes.io/name: httpbin
365− app.kubernetes.io/instance: oauth2-proxy-example
366− app.kubernetes.io/version: "latest"
367− app.kubernetes.io/managed-by: Helm
368−spec:
369− replicas: 1
370− selector:
371− matchLabels:
372− app.kubernetes.io/name: httpbin
373− app.kubernetes.io/instance: oauth2-proxy-example
374− template:
375− metadata:
376− labels:
377− app.kubernetes.io/name: httpbin
378− app.kubernetes.io/instance: oauth2-proxy-example
379− spec:
380− serviceAccountName: oauth2-proxy-example-httpbin
381− securityContext:
382− {}
383− containers:
384− - name: httpbin
385− securityContext:
386− {}
387− image: "kennethreitz/httpbin:latest"
388− imagePullPolicy: IfNotPresent
389− ports:
390− - name: http
391− containerPort: 80
392− protocol: TCP
393− livenessProbe:
394− httpGet:
395− path: /
396− port: http
397− readinessProbe:
398− httpGet:
399− path: /
400− port: http
401− resources:
402− {}
403−---
404−# Source: kubernetes/charts/oauth2-proxy/templates/deployment.yaml
405−apiVersion: apps/v1
406−kind: Deployment
407−metadata:
408− labels:
409− app: oauth2-proxy-sample
410− chart: oauth2-proxy-3.1.0
411− heritage: Helm
412− release: oauth2-proxy-example
413− name: oauth2-proxy-example-oauth2-proxy-sample
414−spec:
415− replicas: 1
416− selector:
417− matchLabels:
418− app: oauth2-proxy-sample
419− release: oauth2-proxy-example
420− template:
421− metadata:
422− annotations:
423− checksum/config: 5d8892a7b1d9eb03f9d59b787ce339b374fa2be51991e4e7533cb0a541984fac
424− checksum/config-emails: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
425− checksum/secret: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
426− checksum/google-secret: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
427− labels:
428− app: oauth2-proxy-sample
429− release: "oauth2-proxy-example"
430− spec:
431− serviceAccountName: oauth2-proxy-example-oauth2-proxy-sample
432− containers:
433− - name: oauth2-proxy
434− image: "quay.io/pusher/oauth2_proxy:v5.1.0"
435− imagePullPolicy: IfNotPresent
436− args:
437− - --http-address=0.0.0.0:4180
438− - --config=/etc/oauth2_proxy/oauth2_proxy.cfg
439− ports:
440− - containerPort: 4180
441− name: http
442− protocol: TCP
443− livenessProbe:
444− httpGet:
445− path: /ping
446− port: http
447− scheme: HTTP
448− initialDelaySeconds: 0
449− timeoutSeconds: 1
450− readinessProbe:
451− httpGet:
452− path: /ready
453− port: http
454− scheme: HTTP
455− initialDelaySeconds: 0
456− timeoutSeconds: 5
457− successThreshold: 1
458− periodSeconds: 10
459− resources:
460− {}
461− volumeMounts:
462− - mountPath: /etc/oauth2_proxy
463− name: configmain
464− volumes:
465− - configMap:
466− defaultMode: 420
467− name: oauth2-proxy-example-oauth2-proxy-sample
468− name: configmain
469− tolerations:
470− []
471−---
472−# Source: kubernetes/charts/dex/templates/ingress.yaml
473−apiVersion: extensions/v1beta1
474−kind: Ingress
475−metadata:
476− name: oauth2-proxy-example-dex
477− labels:
478− app.kubernetes.io/name: dex
479− helm.sh/chart: dex-2.11.0
480− app.kubernetes.io/instance: oauth2-proxy-example
481− app.kubernetes.io/version: "2.23.0"
482− app.kubernetes.io/managed-by: Helm
483−spec:
484− rules:
485− - host: "dex.localtest.me"
486− http:
487− paths:
488− - path: /
489− backend:
490− serviceName: oauth2-proxy-example-dex
491− servicePort: 32000
492−---
493−# Source: kubernetes/charts/hello-world/templates/ingress.yaml
494−apiVersion: networking.k8s.io/v1beta1
495−kind: Ingress
496−metadata:
497− name: oauth2-proxy-example-hello-world
498− labels:
499− helm.sh/chart: hello-world-1.0.1
500− app.kubernetes.io/name: hello-world
501− app.kubernetes.io/instance: oauth2-proxy-example
502− app.kubernetes.io/version: "1.0.0"
503− app.kubernetes.io/managed-by: Helm
504− annotations:
505− nginx.ingress.kubernetes.io/auth-response-headers: X-Auth-Request-User,X-Auth-Request-Email
506− nginx.ingress.kubernetes.io/auth-signin: http://oauth2-proxy.localtest.me/oauth2/start
507− nginx.ingress.kubernetes.io/auth-url: http://oauth2-proxy-example-oauth2-proxy-sample.default.svc.cluster.local/oauth2/auth
508−spec:
509− rules:
510− - host: hello-world.localtest.me
511− http:
512− paths:
513− - path: /
514− backend:
515− serviceName: oauth2-proxy-example-hello-world
516− servicePort: 9080
517−---
518−# Source: kubernetes/charts/httpbin/templates/ingress.yaml
519−apiVersion: networking.k8s.io/v1beta1
520−kind: Ingress
521−metadata:
522− name: oauth2-proxy-example-httpbin
523− labels:
524− helm.sh/chart: httpbin-1.0.1
525− app.kubernetes.io/name: httpbin
526− app.kubernetes.io/instance: oauth2-proxy-example
527− app.kubernetes.io/version: "latest"
528− app.kubernetes.io/managed-by: Helm
529− annotations:
530− nginx.ingress.kubernetes.io/auth-response-headers: X-Auth-Request-User,X-Auth-Request-Email
531− nginx.ingress.kubernetes.io/auth-signin: http://oauth2-proxy.localtest.me/oauth2/start
532− nginx.ingress.kubernetes.io/auth-url: http://oauth2-proxy-example-oauth2-proxy-sample.default.svc.cluster.local/oauth2/auth
533−spec:
534− rules:
535− - host: httpbin.localtest.me
536− http:
537− paths:
538− - path: /
539− backend:
540− serviceName: oauth2-proxy-example-httpbin
541− servicePort: 80
542−---
543−# Source: kubernetes/charts/oauth2-proxy/templates/ingress.yaml
544−apiVersion: extensions/v1beta1
545−kind: Ingress
546−metadata:
547− labels:
548− app: oauth2-proxy-sample
549− chart: oauth2-proxy-3.1.0
550− heritage: Helm
551− release: oauth2-proxy-example
552− name: oauth2-proxy-example-oauth2-proxy-sample
553− annotations:
554− nginx.ingress.kubernetes.io/server-snippet: |
555− large_client_header_buffers 4 32k;
556−spec:
557− rules:
558− - host: oauth2-proxy.localtest.me
559− http:
560− paths:
561− - path: /
562− backend:
563− serviceName: oauth2-proxy-example-oauth2-proxy-sample
564− servicePort: 80