diff --git a/assets/vpu-signature.html.ejs b/assets/vpu-signature.html.ejs
index 99f7cc104208359bd3e6ee66c2b2ff725d36f023..4eabd2fd434bbcb7583bafec4084fbdd9b9448dc 100644
--- a/assets/vpu-signature.html.ejs
+++ b/assets/vpu-signature.html.ejs
@@ -129,7 +129,13 @@
 </head>
 
 <body>
-<vpu-app-signature lang="de" src="<%= geturl('vpu-signature.topic.metadata.json') %>" entry-point-url="<%= entryPointURL %>" base-path="<%= geturl('') %>"><vpu-loading-spinner></vpu-loading-spinner></vpu-app-signature>
+<vpu-app-signature
+    lang="de"
+    src="<%= geturl('vpu-signature.topic.metadata.json') %>"
+    entry-point-url="<%= entryPointURL %>"
+    base-path="<%= geturl('') %>"
+    keycloak-config='{"url": "<%= keyCloakBaseURL %>", "realm": "tugraz", "clientId": "<%= keyCloakClientId %>", "silentCheckSsoRedirectUri": "<%= geturl('silent-check-sso.html') %>"}'
+><vpu-loading-spinner></vpu-loading-spinner></vpu-app-signature>
 
 <!-- Error handling for too old browsers -->
 <script src="<%= geturl('local/vpu-signature/browser-check.js') %>" defer></script>
diff --git a/rollup.config.js b/rollup.config.js
index 8b85c513cc1e5627e07734a3adb114436228dad7..63eeed74d185fca6adb7f312b2a62f6180b812f0 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -33,6 +33,7 @@ let basePath = '';
 let entryPointURL = '';
 let keyCloakServer = '';
 let keyCloakBaseURL = '';
+let keyCloakClientId = '';
 let pdfAsQualifiedlySigningServer = 'sig-dev.tugraz.at';
 let matomoSiteId = 131;
 let useTerser = true;
@@ -45,6 +46,7 @@ switch (build) {
     entryPointURL = 'http://127.0.0.1:8000';
     keyCloakServer = 'auth-dev.tugraz.at';
     keyCloakBaseURL = 'https://' + keyCloakServer + '/auth';
+    keyCloakClientId = 'auth-dev-mw-frontend-local';
     useTerser = false;
     break;
   case 'development':
@@ -52,18 +54,21 @@ switch (build) {
     entryPointURL = 'https://mw-dev.tugraz.at';
     keyCloakServer = 'auth-dev.tugraz.at';
     keyCloakBaseURL = 'https://' + keyCloakServer + '/auth';
+    keyCloakClientId = 'auth-dev-mw-frontend';
     break;
   case 'demo':
     basePath = '/apps/signature/';
     entryPointURL = 'https://api-demo.tugraz.at';
     keyCloakServer = 'auth-test.tugraz.at';
     keyCloakBaseURL = 'https://' + keyCloakServer + '/auth';
+    keyCloakClientId = 'ibib-demo_tugraz_at-IBIB';
     break;
   case 'production':
     basePath = '/';
     entryPointURL = 'https://api.tugraz.at';
     keyCloakServer = 'auth.tugraz.at';
     keyCloakBaseURL = 'https://' + keyCloakServer + '/auth';
+    keyCloakClientId = 'ibib_tugraz_at-IBIB';
     pdfAsQualifiedlySigningServer = 'sig.tugraz.at';
     matomoSiteId = 130;
     break;
@@ -72,6 +77,7 @@ switch (build) {
     entryPointURL = '';
     keyCloakServer = '';
     keyCloakBaseURL = '';
+    keyCloakClientId = '';
     useTerser = false;
     break;
   default:
@@ -200,6 +206,7 @@ export default {
             entryPointURL: entryPointURL,
             keyCloakServer: keyCloakServer,
             keyCloakBaseURL: keyCloakBaseURL,
+            keyCloakClientId: keyCloakClientId,
             pdfAsQualifiedlySigningServer: pdfAsQualifiedlySigningServer,
             environment: build,
             matomoSiteId: matomoSiteId,
diff --git a/vendor/app-shell b/vendor/app-shell
index ce1f65f15e5cf1c22836118e097e7c0558e41ebf..a22f3f056add8c6db83ff3b73fb10df2d24e0e99 160000
--- a/vendor/app-shell
+++ b/vendor/app-shell
@@ -1 +1 @@
-Subproject commit ce1f65f15e5cf1c22836118e097e7c0558e41ebf
+Subproject commit a22f3f056add8c6db83ff3b73fb10df2d24e0e99
diff --git a/vendor/auth b/vendor/auth
index b9fbe487a8a6117ae90a423a8ba318a0321bf51b..2e179331c2f7572a85e98c825736a3c93494e1ea 160000
--- a/vendor/auth
+++ b/vendor/auth
@@ -1 +1 @@
-Subproject commit b9fbe487a8a6117ae90a423a8ba318a0321bf51b
+Subproject commit 2e179331c2f7572a85e98c825736a3c93494e1ea