From 2a50612c7208ecc9b59e6cee2f2cd1181bfcdca2 Mon Sep 17 00:00:00 2001 From: -veldrane Date: Thu, 4 Mar 2021 13:09:18 +0100 Subject: [PATCH] Change from work notebook --- 05_k8s/openid/debug.out | 113 +++++++++++++++++++++++ 05_k8s/openid/gettoken.sh | 2 +- 05_k8s/openid/out.lst | 1 + 05_k8s/openid/token.out | 1 + 08_keycloak/unsorted/scripts/gettoken.sh | 4 +- 08_keycloak/unsorted/scripts/out.json | 1 + 08_keycloak/unsorted/scripts/token.out | 0 99_general/.~lock.uidplan.ods# | 1 + 99_general/uidplan.ods | Bin 0 -> 11016 bytes 9 files changed, 120 insertions(+), 3 deletions(-) create mode 100644 05_k8s/openid/debug.out create mode 100644 05_k8s/openid/out.lst create mode 100644 05_k8s/openid/token.out create mode 100644 08_keycloak/unsorted/scripts/out.json create mode 100644 08_keycloak/unsorted/scripts/token.out create mode 100644 99_general/.~lock.uidplan.ods# create mode 100644 99_general/uidplan.ods diff --git a/05_k8s/openid/debug.out b/05_k8s/openid/debug.out new file mode 100644 index 0000000..99dba16 --- /dev/null +++ b/05_k8s/openid/debug.out @@ -0,0 +1,113 @@ ++ '[' 6 -ne 5 ']' ++ echo 'Usage: . ./gettoken.sh hostname realm username clientid' +Usage: . ./gettoken.sh hostname realm username clientid ++ echo ' options:' + options: ++ echo ' hostname: localhost:8081' + hostname: localhost:8081 ++ echo ' realm:keycloak-demo' + realm:keycloak-demo ++ echo ' clientid:demo' + clientid:demo ++ echo ' client-secret:x 42734911-3cbd-4a20-a426-83cb208edc43' + client-secret:x 42734911-3cbd-4a20-a426-83cb208edc43 ++ echo ' For verify ssl: use '\''y'\'' (otherwise it will send curl post with --insecure)' + For verify ssl: use 'y' (otherwise it will send curl post with --insecure) ++ return +./gettoken.sh: line 12: return: can only `return' from a function or sourced script ++ HOSTNAME=10.150.152.15:8443 ++ REALM_NAME=fegstg ++ USERNAME=dvojan2 ++ CLIENT_ID=kube ++ CLIENT_SECRET=47f8a6f8-cafd-43ea-b0a6-f46ff292f6d9 ++ SECURE=n ++ KEYCLOAK_URL=https://10.150.152.15:8443/auth/realms/fegstg/protocol/openid-connect/token ++ echo 'Using Keycloak: https://10.150.152.15:8443/auth/realms/fegstg/protocol/openid-connect/token' ++ echo 'realm: fegstg' ++ echo 'client-id: kube' ++ echo 'username: dvojan2' ++ echo 'client-secret: 47f8a6f8-cafd-43ea-b0a6-f46ff292f6d9' ++ echo 'secure: n' ++ [[ n = \y ]] ++ INSECURE=--insecure ++ echo -n Password: ++ read -s PASSWORD +++ curl -X POST https://10.150.152.15:8443/auth/realms/fegstg/protocol/openid-connect/token --insecure -H 'Content-Type: application/x-www-form-urlencoded' -d username=dvojan2 -d password=Nznsjtsth128 -d grant_type=password -d client_id=kube -d client_secret=47f8a6f8-cafd-43ea-b0a6-f46ff292f6d9 -d scope=openid -v +Note: Unnecessary use of -X or --request, POST is already inferred. +* Trying 10.150.152.15... +* TCP_NODELAY set + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed + 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 10.150.152.15 (10.150.152.15) port 8443 (#0) +* ALPN, offering http/1.1 +* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH +* successfully set certificate verify locations: +* CAfile: /etc/ssl/certs/ca-certificates.crt + CApath: none +* TLSv1.2 (OUT), TLS header, Certificate Status (22): +} [5 bytes data] +* TLSv1.2 (OUT), TLS handshake, Client hello (1): +} [512 bytes data] +* TLSv1.2 (IN), TLS handshake, Server hello (2): +{ [96 bytes data] +* TLSv1.2 (IN), TLS handshake, Certificate (11): +{ [1336 bytes data] +* TLSv1.2 (IN), TLS handshake, Server key exchange (12): +{ [333 bytes data] +* TLSv1.2 (IN), TLS handshake, Server finished (14): +{ [4 bytes data] +* TLSv1.2 (OUT), TLS handshake, Client key exchange (16): +} [70 bytes data] +* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): +} [1 bytes data] +* TLSv1.2 (OUT), TLS handshake, Finished (20): +} [16 bytes data] +* TLSv1.2 (IN), TLS change cipher, Change cipher spec (1): +{ [1 bytes data] +* TLSv1.2 (IN), TLS handshake, Finished (20): +{ [16 bytes data] +* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 +* ALPN, server accepted to use http/1.1 +* Server certificate: +* subject: O=LX.IFORTUNA.CZ; CN=keycloak01-k8s01-poc.s.dc1.cz.ipa.ifortuna.cz +* start date: Feb 18 11:30:24 2021 GMT +* expire date: Feb 19 11:30:24 2023 GMT +* issuer: O=LX.IFORTUNA.CZ; CN=Certificate Authority +* SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway. +} [5 bytes data] +> POST /auth/realms/fegstg/protocol/openid-connect/token HTTP/1.1 +> Host: 10.150.152.15:8443 +> User-Agent: curl/7.64.1 +> Accept: */* +> Content-Type: application/x-www-form-urlencoded +> Content-Length: 137 +> +} [137 bytes data] +* upload completely sent off: 137 out of 137 bytes +{ [5 bytes data] +< HTTP/1.1 200 OK +< Cache-Control: no-store +< Set-Cookie: KEYCLOAK_LOCALE=; Version=1; Comment=Expiring cookie; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Max-Age=0; Path=/auth/realms/fegstg/; HttpOnly +< Set-Cookie: KC_RESTART=; Version=1; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Max-Age=0; Path=/auth/realms/fegstg/; HttpOnly +< X-XSS-Protection: 1; mode=block +< Pragma: no-cache +< X-Frame-Options: SAMEORIGIN +< Referrer-Policy: no-referrer +< Date: Thu, 18 Feb 2021 17:47:11 GMT +< Connection: keep-alive +< Strict-Transport-Security: max-age=31536000; includeSubDomains +< X-Content-Type-Options: nosniff +< Content-Type: application/json +< Content-Length: 2889 +< +{ [2889 bytes data] + 100 3026 100 2889 100 137 6477 307 --:--:-- --:--:-- --:--:-- 6800 +* Connection #0 to host 10.150.152.15 left intact +* Closing connection 0 ++ export 'TOKEN={"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiZjE4N2ZiNWQtY2JiNy00NjJlLWJmYTYtZTRlMDExOTI2NzYzIiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoia3ViZSIsInNlc3Npb25fc3RhdGUiOiJmM2NjYjEzZS1kZmMxLTQyZWEtOWEwOS05YzI3ZmFjMzFmYmIiLCJhY3IiOiIxIiwic2NvcGUiOiJvcGVuaWQiLCJncm91cHMiOlsib2NwX25vbi1wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfcHJvZF9jbHVzdGVyLWFkbWluIiwib2NwX20xY3pfY19jbHVzdGVyLWFkbWluIiwib2NwX2NmbWVfYWRtaW5zIl0sInVzZXJuYW1lIjoiZHZvamFuMiJ9.td0FuP0HVNpEHOtKDJGSJ3TeBnLtQTasYNbB9viKbR4sWMDygicFhsjz-y7v7yogxs6-ZTFoC-0Y7a9fkxjH_c5Reix3BLhI6UB-WLla3cj6qO3ESQMaIbo0sJNTQUZoBuUJ8abUxODJcM8T9tUNQYf0sQr6ZeW51JIadKHjHngXV8BNIdOMvfeSYBkT51xtpEJ0XDkeQ3fy_MuYK6iAO4aCe3tpHowUjS4zdYEACFh9ttftfbom2JuU5oYq52SjoNnZ2DS2bHVzQJQ7gLS10BOTgMFlF7qPBUEswKUnkMkqx_UXerrxpTasSQ78_w0HKkSzylHyXQfSfeWEc-c8Ng","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjU5NmU0Zi0zMzZhLTQ3Y2UtODkwZi1kNjQwZjIzZmE2YjYifQ.eyJleHAiOjE2MTM2NzIyMzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiYWYxM2YyOTUtYTIxYi00MTE5LWFjNzgtMjAwNjFhMDVmNjQ1IiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwiYXVkIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Imt1YmUiLCJzZXNzaW9uX3N0YXRlIjoiZjNjY2IxM2UtZGZjMS00MmVhLTlhMDktOWMyN2ZhYzMxZmJiIiwic2NvcGUiOiJvcGVuaWQifQ.kCZmRhjVp5CRuYR8gZIEWcH9DAFUkD1IBj4l7K1fUQs","token_type":"Bearer","id_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwiYXV0aF90aW1lIjowLCJqdGkiOiI0MTY2NjA3Yy1lZDJjLTQ0MTAtYTQwZi03YjVkYjhhYWI3ZDIiLCJpc3MiOiJodHRwczovLzEwLjE1MC4xNTIuMTU6ODQ0My9hdXRoL3JlYWxtcy9mZWdzdGciLCJhdWQiOiJrdWJlIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiSUQiLCJhenAiOiJrdWJlIiwic2Vzc2lvbl9zdGF0ZSI6ImYzY2NiMTNlLWRmYzEtNDJlYS05YTA5LTljMjdmYWMzMWZiYiIsImF0X2hhc2giOiJfZ2wxVWJ3VkR0TW1ZMUhLZlFJdUF3IiwiYWNyIjoiMSIsImdyb3VwcyI6WyJvY3Bfbm9uLXByb2RfY2x1c3Rlci1hZG1pbiIsIm9jcF9wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfbTFjel9jX2NsdXN0ZXItYWRtaW4iLCJvY3BfY2ZtZV9hZG1pbnMiXSwidXNlcm5hbWUiOiJkdm9qYW4yIn0.oGZDajvLGZZpJ6V3l_wHPg5dpmjBUHJVJgz7aJp5UU-XHq-mqiCNByGVOwfirnwQaPYgmlljhLpGsOj2zO0l8yfPJudwy33YoM1SEY1qQZwdG0ERmjLYVSqmwmGpmrGGz6WeoqYbGCDuUtRJ6VN0MoDwKm8mHZne_NW9Vxps1uXrTdc-WSud5MA6j36DcNrKOGw2ylJj0C5IXhOWRzi9y9bYPhALQKdJQf0rFFIXkfhHklvUGxvTQPfSiHrb71ZOmFI1CZNK39ATOkG05LYWoHhICKeH1XaaYIw7DmMtip7KeY_gsnPQKugxHJ837jP7bs3bz3SMMHtG31-m6LZsFA","not-before-policy":0,"session_state":"f3ccb13e-dfc1-42ea-9a09-9c27fac31fbb","scope":"openid"}' ++ TOKEN='{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiZjE4N2ZiNWQtY2JiNy00NjJlLWJmYTYtZTRlMDExOTI2NzYzIiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoia3ViZSIsInNlc3Npb25fc3RhdGUiOiJmM2NjYjEzZS1kZmMxLTQyZWEtOWEwOS05YzI3ZmFjMzFmYmIiLCJhY3IiOiIxIiwic2NvcGUiOiJvcGVuaWQiLCJncm91cHMiOlsib2NwX25vbi1wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfcHJvZF9jbHVzdGVyLWFkbWluIiwib2NwX20xY3pfY19jbHVzdGVyLWFkbWluIiwib2NwX2NmbWVfYWRtaW5zIl0sInVzZXJuYW1lIjoiZHZvamFuMiJ9.td0FuP0HVNpEHOtKDJGSJ3TeBnLtQTasYNbB9viKbR4sWMDygicFhsjz-y7v7yogxs6-ZTFoC-0Y7a9fkxjH_c5Reix3BLhI6UB-WLla3cj6qO3ESQMaIbo0sJNTQUZoBuUJ8abUxODJcM8T9tUNQYf0sQr6ZeW51JIadKHjHngXV8BNIdOMvfeSYBkT51xtpEJ0XDkeQ3fy_MuYK6iAO4aCe3tpHowUjS4zdYEACFh9ttftfbom2JuU5oYq52SjoNnZ2DS2bHVzQJQ7gLS10BOTgMFlF7qPBUEswKUnkMkqx_UXerrxpTasSQ78_w0HKkSzylHyXQfSfeWEc-c8Ng","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjU5NmU0Zi0zMzZhLTQ3Y2UtODkwZi1kNjQwZjIzZmE2YjYifQ.eyJleHAiOjE2MTM2NzIyMzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiYWYxM2YyOTUtYTIxYi00MTE5LWFjNzgtMjAwNjFhMDVmNjQ1IiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwiYXVkIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Imt1YmUiLCJzZXNzaW9uX3N0YXRlIjoiZjNjY2IxM2UtZGZjMS00MmVhLTlhMDktOWMyN2ZhYzMxZmJiIiwic2NvcGUiOiJvcGVuaWQifQ.kCZmRhjVp5CRuYR8gZIEWcH9DAFUkD1IBj4l7K1fUQs","token_type":"Bearer","id_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwiYXV0aF90aW1lIjowLCJqdGkiOiI0MTY2NjA3Yy1lZDJjLTQ0MTAtYTQwZi03YjVkYjhhYWI3ZDIiLCJpc3MiOiJodHRwczovLzEwLjE1MC4xNTIuMTU6ODQ0My9hdXRoL3JlYWxtcy9mZWdzdGciLCJhdWQiOiJrdWJlIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiSUQiLCJhenAiOiJrdWJlIiwic2Vzc2lvbl9zdGF0ZSI6ImYzY2NiMTNlLWRmYzEtNDJlYS05YTA5LTljMjdmYWMzMWZiYiIsImF0X2hhc2giOiJfZ2wxVWJ3VkR0TW1ZMUhLZlFJdUF3IiwiYWNyIjoiMSIsImdyb3VwcyI6WyJvY3Bfbm9uLXByb2RfY2x1c3Rlci1hZG1pbiIsIm9jcF9wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfbTFjel9jX2NsdXN0ZXItYWRtaW4iLCJvY3BfY2ZtZV9hZG1pbnMiXSwidXNlcm5hbWUiOiJkdm9qYW4yIn0.oGZDajvLGZZpJ6V3l_wHPg5dpmjBUHJVJgz7aJp5UU-XHq-mqiCNByGVOwfirnwQaPYgmlljhLpGsOj2zO0l8yfPJudwy33YoM1SEY1qQZwdG0ERmjLYVSqmwmGpmrGGz6WeoqYbGCDuUtRJ6VN0MoDwKm8mHZne_NW9Vxps1uXrTdc-WSud5MA6j36DcNrKOGw2ylJj0C5IXhOWRzi9y9bYPhALQKdJQf0rFFIXkfhHklvUGxvTQPfSiHrb71ZOmFI1CZNK39ATOkG05LYWoHhICKeH1XaaYIw7DmMtip7KeY_gsnPQKugxHJ837jP7bs3bz3SMMHtG31-m6LZsFA","not-before-policy":0,"session_state":"f3ccb13e-dfc1-42ea-9a09-9c27fac31fbb","scope":"openid"}' ++ echo '{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiZjE4N2ZiNWQtY2JiNy00NjJlLWJmYTYtZTRlMDExOTI2NzYzIiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoia3ViZSIsInNlc3Npb25fc3RhdGUiOiJmM2NjYjEzZS1kZmMxLTQyZWEtOWEwOS05YzI3ZmFjMzFmYmIiLCJhY3IiOiIxIiwic2NvcGUiOiJvcGVuaWQiLCJncm91cHMiOlsib2NwX25vbi1wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfcHJvZF9jbHVzdGVyLWFkbWluIiwib2NwX20xY3pfY19jbHVzdGVyLWFkbWluIiwib2NwX2NmbWVfYWRtaW5zIl0sInVzZXJuYW1lIjoiZHZvamFuMiJ9.td0FuP0HVNpEHOtKDJGSJ3TeBnLtQTasYNbB9viKbR4sWMDygicFhsjz-y7v7yogxs6-ZTFoC-0Y7a9fkxjH_c5Reix3BLhI6UB-WLla3cj6qO3ESQMaIbo0sJNTQUZoBuUJ8abUxODJcM8T9tUNQYf0sQr6ZeW51JIadKHjHngXV8BNIdOMvfeSYBkT51xtpEJ0XDkeQ3fy_MuYK6iAO4aCe3tpHowUjS4zdYEACFh9ttftfbom2JuU5oYq52SjoNnZ2DS2bHVzQJQ7gLS10BOTgMFlF7qPBUEswKUnkMkqx_UXerrxpTasSQ78_w0HKkSzylHyXQfSfeWEc-c8Ng","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjU5NmU0Zi0zMzZhLTQ3Y2UtODkwZi1kNjQwZjIzZmE2YjYifQ.eyJleHAiOjE2MTM2NzIyMzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiYWYxM2YyOTUtYTIxYi00MTE5LWFjNzgtMjAwNjFhMDVmNjQ1IiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwiYXVkIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Imt1YmUiLCJzZXNzaW9uX3N0YXRlIjoiZjNjY2IxM2UtZGZjMS00MmVhLTlhMDktOWMyN2ZhYzMxZmJiIiwic2NvcGUiOiJvcGVuaWQifQ.kCZmRhjVp5CRuYR8gZIEWcH9DAFUkD1IBj4l7K1fUQs","token_type":"Bearer","id_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwiYXV0aF90aW1lIjowLCJqdGkiOiI0MTY2NjA3Yy1lZDJjLTQ0MTAtYTQwZi03YjVkYjhhYWI3ZDIiLCJpc3MiOiJodHRwczovLzEwLjE1MC4xNTIuMTU6ODQ0My9hdXRoL3JlYWxtcy9mZWdzdGciLCJhdWQiOiJrdWJlIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiSUQiLCJhenAiOiJrdWJlIiwic2Vzc2lvbl9zdGF0ZSI6ImYzY2NiMTNlLWRmYzEtNDJlYS05YTA5LTljMjdmYWMzMWZiYiIsImF0X2hhc2giOiJfZ2wxVWJ3VkR0TW1ZMUhLZlFJdUF3IiwiYWNyIjoiMSIsImdyb3VwcyI6WyJvY3Bfbm9uLXByb2RfY2x1c3Rlci1hZG1pbiIsIm9jcF9wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfbTFjel9jX2NsdXN0ZXItYWRtaW4iLCJvY3BfY2ZtZV9hZG1pbnMiXSwidXNlcm5hbWUiOiJkdm9qYW4yIn0.oGZDajvLGZZpJ6V3l_wHPg5dpmjBUHJVJgz7aJp5UU-XHq-mqiCNByGVOwfirnwQaPYgmlljhLpGsOj2zO0l8yfPJudwy33YoM1SEY1qQZwdG0ERmjLYVSqmwmGpmrGGz6WeoqYbGCDuUtRJ6VN0MoDwKm8mHZne_NW9Vxps1uXrTdc-WSud5MA6j36DcNrKOGw2ylJj0C5IXhOWRzi9y9bYPhALQKdJQf0rFFIXkfhHklvUGxvTQPfSiHrb71ZOmFI1CZNK39ATOkG05LYWoHhICKeH1XaaYIw7DmMtip7KeY_gsnPQKugxHJ837jP7bs3bz3SMMHtG31-m6LZsFA","not-before-policy":0,"session_state":"f3ccb13e-dfc1-42ea-9a09-9c27fac31fbb","scope":"openid"}' +++ echo '{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiZjE4N2ZiNWQtY2JiNy00NjJlLWJmYTYtZTRlMDExOTI2NzYzIiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoia3ViZSIsInNlc3Npb25fc3RhdGUiOiJmM2NjYjEzZS1kZmMxLTQyZWEtOWEwOS05YzI3ZmFjMzFmYmIiLCJhY3IiOiIxIiwic2NvcGUiOiJvcGVuaWQiLCJncm91cHMiOlsib2NwX25vbi1wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfcHJvZF9jbHVzdGVyLWFkbWluIiwib2NwX20xY3pfY19jbHVzdGVyLWFkbWluIiwib2NwX2NmbWVfYWRtaW5zIl0sInVzZXJuYW1lIjoiZHZvamFuMiJ9.td0FuP0HVNpEHOtKDJGSJ3TeBnLtQTasYNbB9viKbR4sWMDygicFhsjz-y7v7yogxs6-ZTFoC-0Y7a9fkxjH_c5Reix3BLhI6UB-WLla3cj6qO3ESQMaIbo0sJNTQUZoBuUJ8abUxODJcM8T9tUNQYf0sQr6ZeW51JIadKHjHngXV8BNIdOMvfeSYBkT51xtpEJ0XDkeQ3fy_MuYK6iAO4aCe3tpHowUjS4zdYEACFh9ttftfbom2JuU5oYq52SjoNnZ2DS2bHVzQJQ7gLS10BOTgMFlF7qPBUEswKUnkMkqx_UXerrxpTasSQ78_w0HKkSzylHyXQfSfeWEc-c8Ng","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjU5NmU0Zi0zMzZhLTQ3Y2UtODkwZi1kNjQwZjIzZmE2YjYifQ.eyJleHAiOjE2MTM2NzIyMzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiYWYxM2YyOTUtYTIxYi00MTE5LWFjNzgtMjAwNjFhMDVmNjQ1IiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwiYXVkIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Imt1YmUiLCJzZXNzaW9uX3N0YXRlIjoiZjNjY2IxM2UtZGZjMS00MmVhLTlhMDktOWMyN2ZhYzMxZmJiIiwic2NvcGUiOiJvcGVuaWQifQ.kCZmRhjVp5CRuYR8gZIEWcH9DAFUkD1IBj4l7K1fUQs","token_type":"Bearer","id_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwiYXV0aF90aW1lIjowLCJqdGkiOiI0MTY2NjA3Yy1lZDJjLTQ0MTAtYTQwZi03YjVkYjhhYWI3ZDIiLCJpc3MiOiJodHRwczovLzEwLjE1MC4xNTIuMTU6ODQ0My9hdXRoL3JlYWxtcy9mZWdzdGciLCJhdWQiOiJrdWJlIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiSUQiLCJhenAiOiJrdWJlIiwic2Vzc2lvbl9zdGF0ZSI6ImYzY2NiMTNlLWRmYzEtNDJlYS05YTA5LTljMjdmYWMzMWZiYiIsImF0X2hhc2giOiJfZ2wxVWJ3VkR0TW1ZMUhLZlFJdUF3IiwiYWNyIjoiMSIsImdyb3VwcyI6WyJvY3Bfbm9uLXByb2RfY2x1c3Rlci1hZG1pbiIsIm9jcF9wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfbTFjel9jX2NsdXN0ZXItYWRtaW4iLCJvY3BfY2ZtZV9hZG1pbnMiXSwidXNlcm5hbWUiOiJkdm9qYW4yIn0.oGZDajvLGZZpJ6V3l_wHPg5dpmjBUHJVJgz7aJp5UU-XHq-mqiCNByGVOwfirnwQaPYgmlljhLpGsOj2zO0l8yfPJudwy33YoM1SEY1qQZwdG0ERmjLYVSqmwmGpmrGGz6WeoqYbGCDuUtRJ6VN0MoDwKm8mHZne_NW9Vxps1uXrTdc-WSud5MA6j36DcNrKOGw2ylJj0C5IXhOWRzi9y9bYPhALQKdJQf0rFFIXkfhHklvUGxvTQPfSiHrb71ZOmFI1CZNK39ATOkG05LYWoHhICKeH1XaaYIw7DmMtip7KeY_gsnPQKugxHJ837jP7bs3bz3SMMHtG31-m6LZsFA","not-before-policy":0,"session_state":"f3ccb13e-dfc1-42ea-9a09-9c27fac31fbb","scope":"openid"}' ++ [[ {"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiZjE4N2ZiNWQtY2JiNy00NjJlLWJmYTYtZTRlMDExOTI2NzYzIiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoia3ViZSIsInNlc3Npb25fc3RhdGUiOiJmM2NjYjEzZS1kZmMxLTQyZWEtOWEwOS05YzI3ZmFjMzFmYmIiLCJhY3IiOiIxIiwic2NvcGUiOiJvcGVuaWQiLCJncm91cHMiOlsib2NwX25vbi1wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfcHJvZF9jbHVzdGVyLWFkbWluIiwib2NwX20xY3pfY19jbHVzdGVyLWFkbWluIiwib2NwX2NmbWVfYWRtaW5zIl0sInVzZXJuYW1lIjoiZHZvamFuMiJ9.td0FuP0HVNpEHOtKDJGSJ3TeBnLtQTasYNbB9viKbR4sWMDygicFhsjz-y7v7yogxs6-ZTFoC-0Y7a9fkxjH_c5Reix3BLhI6UB-WLla3cj6qO3ESQMaIbo0sJNTQUZoBuUJ8abUxODJcM8T9tUNQYf0sQr6ZeW51JIadKHjHngXV8BNIdOMvfeSYBkT51xtpEJ0XDkeQ3fy_MuYK6iAO4aCe3tpHowUjS4zdYEACFh9ttftfbom2JuU5oYq52SjoNnZ2DS2bHVzQJQ7gLS10BOTgMFlF7qPBUEswKUnkMkqx_UXerrxpTasSQ78_w0HKkSzylHyXQfSfeWEc-c8Ng","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjU5NmU0Zi0zMzZhLTQ3Y2UtODkwZi1kNjQwZjIzZmE2YjYifQ.eyJleHAiOjE2MTM2NzIyMzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiYWYxM2YyOTUtYTIxYi00MTE5LWFjNzgtMjAwNjFhMDVmNjQ1IiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwiYXVkIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Imt1YmUiLCJzZXNzaW9uX3N0YXRlIjoiZjNjY2IxM2UtZGZjMS00MmVhLTlhMDktOWMyN2ZhYzMxZmJiIiwic2NvcGUiOiJvcGVuaWQifQ.kCZmRhjVp5CRuYR8gZIEWcH9DAFUkD1IBj4l7K1fUQs","token_type":"Bearer","id_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwiYXV0aF90aW1lIjowLCJqdGkiOiI0MTY2NjA3Yy1lZDJjLTQ0MTAtYTQwZi03YjVkYjhhYWI3ZDIiLCJpc3MiOiJodHRwczovLzEwLjE1MC4xNTIuMTU6ODQ0My9hdXRoL3JlYWxtcy9mZWdzdGciLCJhdWQiOiJrdWJlIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiSUQiLCJhenAiOiJrdWJlIiwic2Vzc2lvbl9zdGF0ZSI6ImYzY2NiMTNlLWRmYzEtNDJlYS05YTA5LTljMjdmYWMzMWZiYiIsImF0X2hhc2giOiJfZ2wxVWJ3VkR0TW1ZMUhLZlFJdUF3IiwiYWNyIjoiMSIsImdyb3VwcyI6WyJvY3Bfbm9uLXByb2RfY2x1c3Rlci1hZG1pbiIsIm9jcF9wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfbTFjel9jX2NsdXN0ZXItYWRtaW4iLCJvY3BfY2ZtZV9hZG1pbnMiXSwidXNlcm5hbWUiOiJkdm9qYW4yIn0.oGZDajvLGZZpJ6V3l_wHPg5dpmjBUHJVJgz7aJp5UU-XHq-mqiCNByGVOwfirnwQaPYgmlljhLpGsOj2zO0l8yfPJudwy33YoM1SEY1qQZwdG0ERmjLYVSqmwmGpmrGGz6WeoqYbGCDuUtRJ6VN0MoDwKm8mHZne_NW9Vxps1uXrTdc-WSud5MA6j36DcNrKOGw2ylJj0C5IXhOWRzi9y9bYPhALQKdJQf0rFFIXkfhHklvUGxvTQPfSiHrb71ZOmFI1CZNK39ATOkG05LYWoHhICKeH1XaaYIw7DmMtip7KeY_gsnPQKugxHJ837jP7bs3bz3SMMHtG31-m6LZsFA","not-before-policy":0,"session_state":"f3ccb13e-dfc1-42ea-9a09-9c27fac31fbb","scope":"openid"} != \n\u\l\l ]] ++ export 'KEYCLOAK_TOKEN={"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiZjE4N2ZiNWQtY2JiNy00NjJlLWJmYTYtZTRlMDExOTI2NzYzIiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoia3ViZSIsInNlc3Npb25fc3RhdGUiOiJmM2NjYjEzZS1kZmMxLTQyZWEtOWEwOS05YzI3ZmFjMzFmYmIiLCJhY3IiOiIxIiwic2NvcGUiOiJvcGVuaWQiLCJncm91cHMiOlsib2NwX25vbi1wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfcHJvZF9jbHVzdGVyLWFkbWluIiwib2NwX20xY3pfY19jbHVzdGVyLWFkbWluIiwib2NwX2NmbWVfYWRtaW5zIl0sInVzZXJuYW1lIjoiZHZvamFuMiJ9.td0FuP0HVNpEHOtKDJGSJ3TeBnLtQTasYNbB9viKbR4sWMDygicFhsjz-y7v7yogxs6-ZTFoC-0Y7a9fkxjH_c5Reix3BLhI6UB-WLla3cj6qO3ESQMaIbo0sJNTQUZoBuUJ8abUxODJcM8T9tUNQYf0sQr6ZeW51JIadKHjHngXV8BNIdOMvfeSYBkT51xtpEJ0XDkeQ3fy_MuYK6iAO4aCe3tpHowUjS4zdYEACFh9ttftfbom2JuU5oYq52SjoNnZ2DS2bHVzQJQ7gLS10BOTgMFlF7qPBUEswKUnkMkqx_UXerrxpTasSQ78_w0HKkSzylHyXQfSfeWEc-c8Ng","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjU5NmU0Zi0zMzZhLTQ3Y2UtODkwZi1kNjQwZjIzZmE2YjYifQ.eyJleHAiOjE2MTM2NzIyMzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiYWYxM2YyOTUtYTIxYi00MTE5LWFjNzgtMjAwNjFhMDVmNjQ1IiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwiYXVkIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Imt1YmUiLCJzZXNzaW9uX3N0YXRlIjoiZjNjY2IxM2UtZGZjMS00MmVhLTlhMDktOWMyN2ZhYzMxZmJiIiwic2NvcGUiOiJvcGVuaWQifQ.kCZmRhjVp5CRuYR8gZIEWcH9DAFUkD1IBj4l7K1fUQs","token_type":"Bearer","id_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwiYXV0aF90aW1lIjowLCJqdGkiOiI0MTY2NjA3Yy1lZDJjLTQ0MTAtYTQwZi03YjVkYjhhYWI3ZDIiLCJpc3MiOiJodHRwczovLzEwLjE1MC4xNTIuMTU6ODQ0My9hdXRoL3JlYWxtcy9mZWdzdGciLCJhdWQiOiJrdWJlIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiSUQiLCJhenAiOiJrdWJlIiwic2Vzc2lvbl9zdGF0ZSI6ImYzY2NiMTNlLWRmYzEtNDJlYS05YTA5LTljMjdmYWMzMWZiYiIsImF0X2hhc2giOiJfZ2wxVWJ3VkR0TW1ZMUhLZlFJdUF3IiwiYWNyIjoiMSIsImdyb3VwcyI6WyJvY3Bfbm9uLXByb2RfY2x1c3Rlci1hZG1pbiIsIm9jcF9wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfbTFjel9jX2NsdXN0ZXItYWRtaW4iLCJvY3BfY2ZtZV9hZG1pbnMiXSwidXNlcm5hbWUiOiJkdm9qYW4yIn0.oGZDajvLGZZpJ6V3l_wHPg5dpmjBUHJVJgz7aJp5UU-XHq-mqiCNByGVOwfirnwQaPYgmlljhLpGsOj2zO0l8yfPJudwy33YoM1SEY1qQZwdG0ERmjLYVSqmwmGpmrGGz6WeoqYbGCDuUtRJ6VN0MoDwKm8mHZne_NW9Vxps1uXrTdc-WSud5MA6j36DcNrKOGw2ylJj0C5IXhOWRzi9y9bYPhALQKdJQf0rFFIXkfhHklvUGxvTQPfSiHrb71ZOmFI1CZNK39ATOkG05LYWoHhICKeH1XaaYIw7DmMtip7KeY_gsnPQKugxHJ837jP7bs3bz3SMMHtG31-m6LZsFA","not-before-policy":0,"session_state":"f3ccb13e-dfc1-42ea-9a09-9c27fac31fbb","scope":"openid"}' ++ KEYCLOAK_TOKEN='{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiZjE4N2ZiNWQtY2JiNy00NjJlLWJmYTYtZTRlMDExOTI2NzYzIiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoia3ViZSIsInNlc3Npb25fc3RhdGUiOiJmM2NjYjEzZS1kZmMxLTQyZWEtOWEwOS05YzI3ZmFjMzFmYmIiLCJhY3IiOiIxIiwic2NvcGUiOiJvcGVuaWQiLCJncm91cHMiOlsib2NwX25vbi1wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfcHJvZF9jbHVzdGVyLWFkbWluIiwib2NwX20xY3pfY19jbHVzdGVyLWFkbWluIiwib2NwX2NmbWVfYWRtaW5zIl0sInVzZXJuYW1lIjoiZHZvamFuMiJ9.td0FuP0HVNpEHOtKDJGSJ3TeBnLtQTasYNbB9viKbR4sWMDygicFhsjz-y7v7yogxs6-ZTFoC-0Y7a9fkxjH_c5Reix3BLhI6UB-WLla3cj6qO3ESQMaIbo0sJNTQUZoBuUJ8abUxODJcM8T9tUNQYf0sQr6ZeW51JIadKHjHngXV8BNIdOMvfeSYBkT51xtpEJ0XDkeQ3fy_MuYK6iAO4aCe3tpHowUjS4zdYEACFh9ttftfbom2JuU5oYq52SjoNnZ2DS2bHVzQJQ7gLS10BOTgMFlF7qPBUEswKUnkMkqx_UXerrxpTasSQ78_w0HKkSzylHyXQfSfeWEc-c8Ng","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjU5NmU0Zi0zMzZhLTQ3Y2UtODkwZi1kNjQwZjIzZmE2YjYifQ.eyJleHAiOjE2MTM2NzIyMzEsImlhdCI6MTYxMzY3MDQzMSwianRpIjoiYWYxM2YyOTUtYTIxYi00MTE5LWFjNzgtMjAwNjFhMDVmNjQ1IiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwiYXVkIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Imt1YmUiLCJzZXNzaW9uX3N0YXRlIjoiZjNjY2IxM2UtZGZjMS00MmVhLTlhMDktOWMyN2ZhYzMxZmJiIiwic2NvcGUiOiJvcGVuaWQifQ.kCZmRhjVp5CRuYR8gZIEWcH9DAFUkD1IBj4l7K1fUQs","token_type":"Bearer","id_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NzA3MzEsImlhdCI6MTYxMzY3MDQzMSwiYXV0aF90aW1lIjowLCJqdGkiOiI0MTY2NjA3Yy1lZDJjLTQ0MTAtYTQwZi03YjVkYjhhYWI3ZDIiLCJpc3MiOiJodHRwczovLzEwLjE1MC4xNTIuMTU6ODQ0My9hdXRoL3JlYWxtcy9mZWdzdGciLCJhdWQiOiJrdWJlIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiSUQiLCJhenAiOiJrdWJlIiwic2Vzc2lvbl9zdGF0ZSI6ImYzY2NiMTNlLWRmYzEtNDJlYS05YTA5LTljMjdmYWMzMWZiYiIsImF0X2hhc2giOiJfZ2wxVWJ3VkR0TW1ZMUhLZlFJdUF3IiwiYWNyIjoiMSIsImdyb3VwcyI6WyJvY3Bfbm9uLXByb2RfY2x1c3Rlci1hZG1pbiIsIm9jcF9wcm9kX2NsdXN0ZXItYWRtaW4iLCJvY3BfbTFjel9jX2NsdXN0ZXItYWRtaW4iLCJvY3BfY2ZtZV9hZG1pbnMiXSwidXNlcm5hbWUiOiJkdm9qYW4yIn0.oGZDajvLGZZpJ6V3l_wHPg5dpmjBUHJVJgz7aJp5UU-XHq-mqiCNByGVOwfirnwQaPYgmlljhLpGsOj2zO0l8yfPJudwy33YoM1SEY1qQZwdG0ERmjLYVSqmwmGpmrGGz6WeoqYbGCDuUtRJ6VN0MoDwKm8mHZne_NW9Vxps1uXrTdc-WSud5MA6j36DcNrKOGw2ylJj0C5IXhOWRzi9y9bYPhALQKdJQf0rFFIXkfhHklvUGxvTQPfSiHrb71ZOmFI1CZNK39ATOkG05LYWoHhICKeH1XaaYIw7DmMtip7KeY_gsnPQKugxHJ837jP7bs3bz3SMMHtG31-m6LZsFA","not-before-policy":0,"session_state":"f3ccb13e-dfc1-42ea-9a09-9c27fac31fbb","scope":"openid"}' diff --git a/05_k8s/openid/gettoken.sh b/05_k8s/openid/gettoken.sh index 577f2de..986edc4 100755 --- a/05_k8s/openid/gettoken.sh +++ b/05_k8s/openid/gettoken.sh @@ -52,7 +52,7 @@ export TOKEN=$(curl -X POST "$KEYCLOAK_URL" "$INSECURE" \ -d 'grant_type=password' \ -d "client_id=$CLIENT_ID" \ -d "client_secret=$CLIENT_SECRET" \ - -d "scope=groups openid" -v ) + -d "scope=openid" -v ) echo $TOKEN diff --git a/05_k8s/openid/out.lst b/05_k8s/openid/out.lst new file mode 100644 index 0000000..7bb6c57 --- /dev/null +++ b/05_k8s/openid/out.lst @@ -0,0 +1 @@ +eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NDk4MzUsImlhdCI6MTYxMzY0OTUzNSwiYXV0aF90aW1lIjowLCJqdGkiOiI0MzRmZTQxYy0xYWU2LTQwZTYtYWJkNi1hYjFkZjU5OWM5MzEiLCJpc3MiOiJodHRwczovLzEwLjE1MC4xNTIuMTU6ODQ0My9hdXRoL3JlYWxtcy9mZWdzdGciLCJhdWQiOiJrdWJlIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiSUQiLCJhenAiOiJrdWJlIiwic2Vzc2lvbl9zdGF0ZSI6ImU2YzhlYjAwLTIwMTgtNGM1Ny1iMWQxLWI2NzkxZDM0MDdiMCIsImF0X2hhc2giOiJ1WElGSnpDSjF4bDhrUW05S1Vrd0RRIiwiYWNyIjoiMSJ9.gh3MCY1E6mCRbvM07daSdCJXafsKDKF18tmaM24BRnnndNGO-z0QnpUsRETbab923Fdi8GEeRjCkzbvWXRH7XbREbSwXEuIFcWIztW3--zqrTyhwM4ZllPOHjZZ6Q9d0X7FHSiVOpNqFV29pgipTiQ7IazxD71MMC4QdyY-YuR5IkIepXFx39ndXYAI0sVfA6IIgyKJ76nJAZ54rr5JxCtpKBQWAiaBKYEoA1dR3uazx7w2rJHOJTWBLHHLEhIkKDs8kkx-us6P0bdis0wq8S5RdTMdcvvrzoLNPrbyyhvusbBJFjeuRlWLKc-grLUOli2rYA1DRAcIDc-yk_ZKPJA diff --git a/05_k8s/openid/token.out b/05_k8s/openid/token.out new file mode 100644 index 0000000..d63007d --- /dev/null +++ b/05_k8s/openid/token.out @@ -0,0 +1 @@ +{"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NDk1NDcsImlhdCI6MTYxMzY0OTI0NywianRpIjoiMDI5Yzc5MWEtZmQxOS00YWVlLTkxNzItMTE4ZDhmMzI3MDU1IiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6IjRjNjFiOTZlLWY2MGUtNDU5YS1iMjllLTYwOTYzZDZmN2ZhZCIsInR5cCI6IkJlYXJlciIsImF6cCI6Imt1YmUiLCJzZXNzaW9uX3N0YXRlIjoiMmUxODFmMDAtZWJlOS00ZjAyLTgxMWYtODNiNzMyZjAyNjFjIiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwibmFtZSI6IkphbiBEdm_FmcOhayIsImdyb3VwcyI6WyIvb2NwX25vbi1wcm9kX2NsdXN0ZXItYWRtaW4iLCIvb2NwX3Byb2RfY2x1c3Rlci1hZG1pbiIsIi9vY3BfbTFjel9jX2NsdXN0ZXItYWRtaW4iLCIvb2NwX2NmbWVfYWRtaW5zIl0sInByZWZlcnJlZF91c2VybmFtZSI6ImR2b2phbjIiLCJnaXZlbl9uYW1lIjoiSmFuIiwiZmFtaWx5X25hbWUiOiJEdm_FmcOhayIsImVtYWlsIjoiZHZvcmFrLmphbjJAaWZvcnR1bmEuY3oifQ.hbYklVublr76fXcnnlVEvlJJ-NsKdb7srV0bWqr_CMnGb_W-DBF6mX0NFuHAK6X85PmxBI6hX_zwZTKyj88N2TXBDn30kuE1p4-V6GaJaU2R3gJ1JP5v95ONQEExsBDMQ3hl6aQIKCZW4peArsVV2ehcavj2RRQ2M4BzqgQQzNbir1gCnDYIV39nuyGEYtO4mVmDMsY9TJrdOI_VzeTwrB0OvbBkidTVUuelKjMjogDII2LQIMmCVFOXcqcADn4yD3pXP3TbhloopkLh4iCdRloB89QRCs_AP-3dT_T0si5xR9QKnBElHoBXogyQqem_vwLjrrx3rVd7YcNTOPetnw","expires_in":300,"refresh_expires_in":1800,"refresh_token":"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJmMjU5NmU0Zi0zMzZhLTQ3Y2UtODkwZi1kNjQwZjIzZmE2YjYifQ.eyJleHAiOjE2MTM2NTEwNDcsImlhdCI6MTYxMzY0OTI0NywianRpIjoiNjAzNmQxZjYtZDAxNS00YmU3LThhZDYtMmYwZTBlZjE0ZWEzIiwiaXNzIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwiYXVkIjoiaHR0cHM6Ly8xMC4xNTAuMTUyLjE1Ojg0NDMvYXV0aC9yZWFsbXMvZmVnc3RnIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6Imt1YmUiLCJzZXNzaW9uX3N0YXRlIjoiMmUxODFmMDAtZWJlOS00ZjAyLTgxMWYtODNiNzMyZjAyNjFjIiwic2NvcGUiOiJvcGVuaWQgcHJvZmlsZSBlbWFpbCJ9.4l1vR_qhivEZAY1mDAyqBLPoqevuJtIAIUXohFMrlw4","token_type":"Bearer","id_token":"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJrT0FBUDByODd4SWxHcmFXZXNRaWYzcVRCSVpyR1p4X295TmhEOTZQX3ZvIn0.eyJleHAiOjE2MTM2NDk1NDcsImlhdCI6MTYxMzY0OTI0NywiYXV0aF90aW1lIjowLCJqdGkiOiJmNjZmMTEyYi00ZTkyLTRmZWQtYjIxYi1jYTZjMzIyZjFiMTciLCJpc3MiOiJodHRwczovLzEwLjE1MC4xNTIuMTU6ODQ0My9hdXRoL3JlYWxtcy9mZWdzdGciLCJhdWQiOiJrdWJlIiwic3ViIjoiNGM2MWI5NmUtZjYwZS00NTlhLWIyOWUtNjA5NjNkNmY3ZmFkIiwidHlwIjoiSUQiLCJhenAiOiJrdWJlIiwic2Vzc2lvbl9zdGF0ZSI6IjJlMTgxZjAwLWViZTktNGYwMi04MTFmLTgzYjczMmYwMjYxYyIsImF0X2hhc2giOiJoUFh4QUlMbFpkSDg5WkJjMmM2NWJBIiwiYWNyIjoiMSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwibmFtZSI6IkphbiBEdm_FmcOhayIsImdyb3VwcyI6WyIvb2NwX25vbi1wcm9kX2NsdXN0ZXItYWRtaW4iLCIvb2NwX3Byb2RfY2x1c3Rlci1hZG1pbiIsIi9vY3BfbTFjel9jX2NsdXN0ZXItYWRtaW4iLCIvb2NwX2NmbWVfYWRtaW5zIl0sInByZWZlcnJlZF91c2VybmFtZSI6ImR2b2phbjIiLCJnaXZlbl9uYW1lIjoiSmFuIiwiZmFtaWx5X25hbWUiOiJEdm_FmcOhayIsImVtYWlsIjoiZHZvcmFrLmphbjJAaWZvcnR1bmEuY3oifQ.KZKODC1VobNkBfMgTc3KdtlbBQvWdR3JQHtVlO-UCmGcQvhry1y4fkqaYAajI6IQHBUbphdlqw_GONnzj2Em1tueEHwXDPzem0I2cVwkXf0cjY921t-eT-b_xBIYDA2C7i1eD0N28zkOviQQx6rLhcxSzwBbJgye8qOnQiJ8hsWemL4wy_EeKZ74qE7sIJaAmFkpqN5QG9hvVBunJ3WYMYF8T4t7kAzNdcOgZQuyiONQqAOT0L8yNwzWh9xhkwpoaoS7OV7kfveMkbktUE4KD_krnqkCuoHSFU8UGoBLRh2H-7CnYVtn_WcKQ6D6b4QgjQAAuORLUEB3jMFW7PfbIQ","not-before-policy":0,"session_state":"2e181f00-ebe9-4f02-811f-83b732f0261c","scope":"openid profile email"} diff --git a/08_keycloak/unsorted/scripts/gettoken.sh b/08_keycloak/unsorted/scripts/gettoken.sh index bc8c0e2..19d6989 100755 --- a/08_keycloak/unsorted/scripts/gettoken.sh +++ b/08_keycloak/unsorted/scripts/gettoken.sh @@ -18,7 +18,7 @@ USERNAME=$3 CLIENT_ID=$4 CLIENT_SECRET=$5 SECURE=$6 -PASSWORD=Heslo1234 +PASSWORD=Houston1 @@ -53,7 +53,7 @@ export TOKEN=$(curl -X POST "$KEYCLOAK_URL" "$INSECURE" \ -d 'grant_type=password' \ -d "client_id=$CLIENT_ID" \ -d "client_secret=$CLIENT_SECRET" \ - -d "scope=groups openid" 2>/dev/null ) + -d "scope=openid" 2>/dev/null ) echo $TOKEN diff --git a/08_keycloak/unsorted/scripts/out.json b/08_keycloak/unsorted/scripts/out.json new file mode 100644 index 0000000..441c648 --- /dev/null +++ b/08_keycloak/unsorted/scripts/out.json @@ -0,0 +1 @@ +{"issuer":"https://keycloak-keycloak-shared.t1czos.ifortuna.cz/auth/realms/kasarealm","authorization_endpoint":"https://keycloak-keycloak-shared.t1czos.ifortuna.cz/auth/realms/kasarealm/protocol/openid-connect/auth","token_endpoint":"https://keycloak-keycloak-shared.t1czos.ifortuna.cz/auth/realms/kasarealm/protocol/openid-connect/token","introspection_endpoint":"https://keycloak-keycloak-shared.t1czos.ifortuna.cz/auth/realms/kasarealm/protocol/openid-connect/token/introspect","userinfo_endpoint":"https://keycloak-keycloak-shared.t1czos.ifortuna.cz/auth/realms/kasarealm/protocol/openid-connect/userinfo","end_session_endpoint":"https://keycloak-keycloak-shared.t1czos.ifortuna.cz/auth/realms/kasarealm/protocol/openid-connect/logout","jwks_uri":"https://keycloak-keycloak-shared.t1czos.ifortuna.cz/auth/realms/kasarealm/protocol/openid-connect/certs","check_session_iframe":"https://keycloak-keycloak-shared.t1czos.ifortuna.cz/auth/realms/kasarealm/protocol/openid-connect/login-status-iframe.html","grant_types_supported":["authorization_code","implicit","refresh_token","password","client_credentials"],"response_types_supported":["code","none","id_token","token","id_token token","code id_token","code token","code id_token token"],"subject_types_supported":["public","pairwise"],"id_token_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512"],"id_token_encryption_alg_values_supported":["RSA-OAEP","RSA1_5"],"id_token_encryption_enc_values_supported":["A256GCM","A192GCM","A128GCM","A128CBC-HS256","A192CBC-HS384","A256CBC-HS512"],"userinfo_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512","none"],"request_object_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512","none"],"response_modes_supported":["query","fragment","form_post"],"registration_endpoint":"https://keycloak-keycloak-shared.t1czos.ifortuna.cz/auth/realms/kasarealm/clients-registrations/openid-connect","token_endpoint_auth_methods_supported":["private_key_jwt","client_secret_basic","client_secret_post","tls_client_auth","client_secret_jwt"],"token_endpoint_auth_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512"],"claims_supported":["aud","sub","iss","auth_time","name","given_name","family_name","preferred_username","email","acr"],"claim_types_supported":["normal"],"claims_parameter_supported":false,"scopes_supported":["openid","feg.kasa","groups","microprofile-jwt","web-origins","roles","phone","address","email","profile","offline_access"],"request_parameter_supported":true,"request_uri_parameter_supported":true,"code_challenge_methods_supported":["plain","S256"],"tls_client_certificate_bound_access_tokens":true} diff --git a/08_keycloak/unsorted/scripts/token.out b/08_keycloak/unsorted/scripts/token.out new file mode 100644 index 0000000..e69de29 diff --git a/99_general/.~lock.uidplan.ods# b/99_general/.~lock.uidplan.ods# new file mode 100644 index 0000000..5195fb3 --- /dev/null +++ b/99_general/.~lock.uidplan.ods# @@ -0,0 +1 @@ +,veldrane,czlx-dvojan2,16.02.2021 14:16,file:///home/veldrane/.config/libreoffice/4; \ No newline at end of file diff --git a/99_general/uidplan.ods b/99_general/uidplan.ods new file mode 100644 index 0000000000000000000000000000000000000000..c13eeeacbce28352a17c2b014dd88575d1975877 GIT binary patch literal 11016 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