1<!DOCTYPE html><html lang="en"> 2 3<head> 4 <meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /><title>VÅ B-TUO Login</title> 5 6 <link rel="stylesheet" type="text/css" href="/webjars/normalize.css/8.0.1/normalize-112272e51c80ffe5bd01becd2ce7d656.css" /><link rel="stylesheet" type="text/css" href="/webjars/bootstrap/5.3.8/css/bootstrap-grid.min-895b9494c7178ac12ad9c56d81305665.css" /><link rel="stylesheet" type="text/css" href="/webjars/material-components-web/14.0.0/dist/material-components-web.min-9da9033e8d04504fe54b3dbb1298fd78.css" /><link rel="stylesheet" type="text/css" href="/webjars/mdi__font/7.4.47/css/materialdesignicons.min-2c83c4bce691e18f82409f87b2bf84e4.css" /><link rel="stylesheet" type="text/css" href="/webjars/datatables/2.3.2/css/dataTables.dataTables-86c98d6ce5aa289ccf4492ac3a785fad.css" /><link rel="stylesheet" type="text/css" href="/css/cas-a90aca7e2afb259734284377211db332.css" /><link rel="stylesheet" type="text/css" href="/css/custom-28a03ab010347cfd323342d14a775858.css" /><link rel="stylesheet" type="text/css" href="/css/font/vsb-drive-font-4ea7d6ca8d7261e1e29bf58bf8234cb4.css" /><link rel="shortcut icon" href="/favicon-fd573f1ab24e391171474b3513749f41.ico" /></head> 7 8<body class="login mdc-typography"> 9
9<script type="text/javascript" src="/webjars/jquery/3.7.1/jquery.min-2c872dbe60f4ba70fb85356113d8b35e.js"></script>
vendor: 1 bytes, line 9
9
10<script type="text/javascript" src="/webjars/datatables/2.3.2/js/dataTables-8e31487c41abe2938c55b5dcde42a604.js"></script>
vendor: 1 bytes, line 10
10
11<script type="text/javascript" src="/webjars/clientjs/0.2.1/dist/client.min-5b6a46b3fb2ab9307d013def98fd7289.js"></script>
11 12
13<script type="text/javascript" src="/webjars/material-components-web/14.0.0/dist/material-components-web.min-3c99031127092dd1984f2e3aa6aeed8b.js"></script>
vendor: 1 bytes, line 13
13
14<script type="text/javascript" src="/js/cas-cd46228f2a9b608731f0c9dacfb9758c.js"></script>
vendor: 1 bytes, line 14
14
15<script type="text/javascript" src="/js/material-b55ff53584b5e775934a54f8a5dd3ba8.js"></script>
vendor: 1 bytes, line 15
15
16<script type="text/javascript" src="/js/custom-c26ad985d37da75a44ff9aa04ecd3b47.js"></script>
vendor: 1 bytes, line 16
16
17<script> 18 if (typeof resourceLoadedSuccessfully === "function") { 19 resourceLoadedSuccessfully(); 20 } 21 let trackGeoLocation = false; 22</script>
22 23 24<div> 25 26 <header id="app-bar" class="mdc-top-app-bar mdc-top-app-bar--fixed mdc-elevation--z4 shadow-sm" 27 role="banner"> 28 <nav class="mdc-top-app-bar__row navbar navbar-dark bg-dark"> 29 <div class="container-fluid container-fluid d-flex align-items-center justify-content-between"> 30 <section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-start"> 31 </section> 32 <section class="mdc-top-app-bar__section"> 33 <div class="cas-brand mx-auto"> 34 <h1 class="visually-hidden">VÅ B-TUO</h1> 35 <a href="/"> 36 <img id="cas-logo" 37 class="cas-logo" 38 alt="VÅ B-TUO" 39 src="/images/vsb_en-4f6693bc3e3112d02698c95371dae108.svg" 40 /></a> 41 </div> 42 </section> 43 <section class="mdc-top-app-bar__section mdc-top-app-bar__section--align-end"> 44 </section> 45 </div> 46 </nav> 47 </header> 48 49 <div id="logindrawer"> 50 </div> 51 52
52<script>let countMessages = 0;</script>
52 53
53<script type="text/javascript"> 54 function supportsCookies() { 55 try { 56 document.cookie = 'testcookie=1'; 57 const ret = document.cookie.indexOf('testcookie=') !== -1; 58 document.cookie = 'testcookie=1; expires=Thu, 01-Jan-1970 00:00:01 GMT'; 59 return ret; 60 } catch (e) { 61 console.log(e); 62 return false; 63 } 64 } 65 document.addEventListener('DOMContentLoaded', () => { 66 if (!supportsCookies()) { 67 countMessages++; 68 window.jQuery('#cookiesSupportedDiv').show(); 69 } 70 71 if (countMessages === 0) { 72 window.jQuery('#notifications-count').remove(); 73 window.jQuery('#cas-notifications-menu').remove(); 74 } else { 75 window.jQuery('#notifications-count').text(`(${countMessages})`) 76 } 77 }); 78 </script>
78 79</div> 80 81 <div class="mdc-drawer-scrim"></div> 82 83 <div class="fade-in mdc-drawer-app-content mdc-top-app-bar--fixed-adjust d-flex justify-content-center bgimage"> 84 <main id="main-content" class="container-lg py-4" role="main"> 85 <div id="content" class="d-flex justify-content-center"> 86 <div class="d-flex justify-content-center flex-md-row flex-column mdc-card mdc-card-content card flex-grow-1"> 87 88 <section id="loginForm" 89 class="login-section login-form card-body"> 90 <div class="d-flex flex-column justify-content-between m-auto"> 91 92 <div> 93 <div id="serviceui" class="banner banner-info mb-4 text-justify"> 94 95 <div class="d-flex align-items-center p-3"> 96 <div id="servicedesc" class="ml-2"> 97 <h3><i class="mdi mdi-web" aria-hidden="true"></i> Web InNET</h3> 98 </div> 99 </div> 100 101 </div> 102 </div> 103 104 <div class="form-wrapper"> 105 106 <div id="login-tabs" class="mdc-tab-bar" role="tablist"> 107 <div class="mdc-tab-scroller"> 108 <div class="mdc-tab-scroller__scroll-area"> 109 <nav class="nav nav-tabs mdc-tab-scroller__scroll-content"> 110 <button id="password-tab" class="mdc-tab nav-link" role="tab" aria-selected="true" data-toggle="tab" data-target="login-tab-0"> 111 <span class="mdc-tab__content"> 112 <i class="mdc-tab__icon mdi mdi-form-textbox-password fas fa-form-textbox-password" style="height: auto" aria-hidden="true"></i> 113 <span class="mdc-tab__text-label">Username/Password</span> 114 </span> 115 <span class="mdc-tab-indicator"> 116 <span class="mdc-tab-indicator__content mdc-tab-indicator__content--underline"></span> 117 </span> 118 <span class="mdc-tab__ripple"></span> 119 </button> 120 <button id="fido2-tab" class="mdc-tab nav-link" role="tab" aria-selected="true" data-toggle="tab" data-target="login-tab-1"> 121 <span class="mdc-tab__content"> 122 <i class="mdc-tab__icon mdi mdi-fingerprint fas fa-fingerprint" aria-hidden="true" style="height: auto"></i> 123 <span class="mdc-tab__text-label">Passkey</span> 124 </span> 125 <span class="mdc-tab-indicator"> 126 <span class="mdc-tab-indicator__content mdc-tab-indicator__content--underline"></span> 127 </span> 128 <span class="mdc-tab__ripple"></span> 129 </button> 130 </nav> 131 </div> 132 </div> 133 </div> 134 135 <section id="login-tab-0" class="login-tab tab-pane active"> 136 <div class="my-4" id="divLoginPassword" role="tabpanel" aria-labelledby="login-tab"> 137 138 <form method="post" id="fm1" action="login" onsubmit="loginFormSubmission();"> 139 <div id="login-form-controls"> 140 <h3 class="text-center"> 141 <i class="mdi mdi-login fas fa-shield-alt" aria-hidden="true"></i> 142 <span>Enter Username & Password</span> 143 </h3> 144 <section class="cas-field form-group my-3" id="usernameSection"> 145 <label for="username" 146 class="mdc-text-field mdc-text-field--outlined control-label w-100"> 147 <span class="mdc-notched-outline"> 148 <span class="mdc-notched-outline__leading"></span>
149 <span class="mdc-notched-outline__notch"> 150 <span class="mdc-floating-label"><span class="accesskey">U</span>sername:</span> 151 </span> 152 <span class="mdc-notched-outline__trailing"></span> 153 </span> 154 <input class="mdc-text-field__input form-control" id="username" 155 type="text" 156 accesskey="u" 157 autocapitalize="none" 158 spellcheck="false" 159 aria-describedby="usernameValidationMessage" 160 autocomplete="username" required name="username" value=""/></label> 161 162 <div class="mdc-text-field-helper-line invalid-feedback"> 163 <div class="mdc-text-field-helper-text mdc-text-field-helper-text--validation-msg" 164 aria-hidden="true"> 165 <span id="usernameValidationMessage">Username is a required field.</span> 166 </div> 167 </div> 168 169
169<script type="text/javascript"> 170 /*<![CDATA[*/ 171 let username = ""; 172 let disabled = false; 173 174 if (username != null && username !== "") { 175 $("#username").val(username); 176 if (disabled) { 177 $("#usernameSection").hide(); 178 } 179 } 180 /*]]>*/ 181 </script>
181 182 </section> 183 184 <section class="cas-field form-group my-3 mdc-input-group form-group" id="passwordSection"> 185 <div class="mdc-input-group-field mdc-input-group-field-append"> 186 <label for="password" 187 class="mdc-text-field caps-check mdc-text-field--outlined control-label mdc-text-field--with-trailing-icon control-label w-100"> 188 <span class="mdc-notched-outline"> 189 <span class="mdc-notched-outline__leading"></span> 190 <span class="mdc-notched-outline__notch"> 191 <span class="mdc-floating-label"><span class="accesskey">P</span>assword:</span> 192 </span> 193 <span class="mdc-notched-outline__trailing"></span> 194 </span> 195 <input class="mdc-text-field__input form-control pwd" 196 type="password" 197 id="password" 198 required 199 accesskey="p" 200 aria-describedby="passwordValidationMessage" 201 autocomplete="current-password" name="password" value=""/></label> 202 <div class="mdc-text-field-helper-line invalid-feedback"> 203 <div class="mdc-text-field-helper-text mdc-text-field-helper-text--validation-msg" 204 aria-hidden="true"> 205 <span id="passwordValidationMessage">Password is a required field.</span> 206 </div> 207 </div> 208 209 </div> 210 211 <div class="mdc-text-field-helper-line invalid-feedback caps-warn"> 212 <div class="mdc-text-field-helper-text mdc-text-field-helper-text--persistent mdc-text-field-helper-text--validation-msg text-danger"> 213 <span>CAPSLOCK key is turned on!</span> 214 </div> 215 </div> 216 </section> 217 218 <section class="cas-field form-group my-3"> 219 </section> 220 221 <section class="cas-field"> 222 <input type="hidden" name="execution" value="e1s1"/><input type="hidden" name="_eventId" value="submit"/><input type="hidden" name="geolocation"/><input type="hidden" name="deviceFingerprint"/>
222<script type="text/javascript"> 223 let client = new ClientJS(); 224 let fingerprint = client.getFingerprint(); 225 $("[name=\"deviceFingerprint\"]").val(fingerprint); 226 </script>
226 227 </section> 228 229 <button 230 class="mdc-button mdc-button--raised btn btn-primary btn-primary flex-shrink-0" 231 name="submitBtn" 232 id="submitBtn" 233 accesskey="l" 234 type="submit"> 235 <i class="mdi fas mdi-login fa-shield-alt" aria-hidden="true"></i> 236 <span class="mdc-button__label">Login</span> 237 </button> 238 239 </div> 240 </form> 241 242 <hr class="my-4"/></div> 243 </section> 244 245 <section id="login-tab-1" class="d-none login-tab tab-pane"> 246 <div class="my-4" id="divFido2" role="tabpanel" aria-labelledby="login-tab"> 247 <span id="webauthnLoginPanel"> 248
248<script type="text/javascript"> 249 $("#webauthnLoginPanel").show(); 250 </script>
250 251 252 <div> 253 254
254<script type="text/javascript" src="/webjars/text-encoding/0.7.0/lib/encoding-022884ab2a5bd42b6f4fff580fa0dd34.js"></script>
254 255
255<script type="text/javascript" src="/webjars/text-encoding/0.7.0/lib/encoding-indexes-50f27403be5972eae4831f5b69db1f80.js"></script>
255 256
256<script type="text/javascript" src="/webjars/whatwg-fetch/3.6.20/dist/fetch.umd-fae84870d6ffb664a803da352f63d32c.js"></script>
256 257
257<script type="text/javascript" src="/webjars/base64-js/1.5.1/base64js.min-c21c099915e3fa53e245c717db6b9074.js"></script>
257 258 259
259<script type="text/javascript" src="/webjars/sweetalert2/11.23.0/dist/sweetalert2.all.min-68a9af2dce9580c8491cfb79371d8619.js"></script>
259 260
260<script type="text/javascript" src="/webjars/highlightjs/11.11.1/highlight.min-e43d5372b6165de50a5320cd67559be3.js"></script>
260 261 <link rel="stylesheet" type="text/css" href="/webjars/sweetalert2/11.23.0/dist/sweetalert2.min-2cddf2eb9214f8e5826b0038906d1d29.css" /><link rel="stylesheet" type="text/css" href="/webjars/animate.css/4.1.1/animate.min-c0be8e53226ac34833fd9b5dbc01ebc5.css" /><link rel="stylesheet" type="text/css" href="/webjars/highlightjs/11.11.1/styles/rainbow.min-0eeda5bf2c393fbf51d6f63588638601.css"/>
261<script type="text/javascript"> 262 /*<![CDATA[*/ 263 const appId = "https:\/\/www.sso.vsb.cz"; 264 const contextPath = ("\/").slice(0,-1); 265 /*]]>*/ 266 </script>
266 267 268
268<script type="text/javascript"> 269 const authFailTitle = "Authentication Failed"; 270 const authFailDesc = "The authentication attempt has failed. Please make sure your username and chosen device are registered with CAS."; 271 const authSendResponse = "Sending response to server..."; 272 const authError = "Error"; 273 const authNotSupported = "Web Authentication (WebAuthn) is not supported by this browser."; 274 const authUnsupported = "Unsupported browser"; 275 const authInitRegCeremony = "Initiating registration ceremony with server..."; 276 const authCreateCredential = "Asking authenticators to create credential..."; 277 const authRegistrationSuccessful = "Registration successful."; 278 const authAttestationNotTrusted = "ttestation cannot be trusted."; 279 const authRegistrationFailed = "Registration failed."; 280 const authCredentialFailedAlready = "Credential creation failed, probably because an already registered credential is available."; 281 const authCredentialFailedUnknown = "Credential creation failed for an unknown reason."; 282 const authAlreadyRegistered = "This authenticator is already registered for the account"; 283 const authInitCeremony = "Initiating authentication ceremony..."; 284 const authAskAssertion = "Asking authenticators to perform assertion..."; 285 const authSuccessful = "Authentication successful."; 286 const authFinalizing = "Finalizing attempt for"; 287 const authWaitProcess = "Please wait while your authentication attempt is processed..."; 288 const authNotRegistered = "This authenticator is not registered for the account"; 289 const authUserVerificationRequired = "User verification required (for example, password, PIN, fingerprint, public key, etc.). Do you have a PIN defined for your FIDO2 device?"; 290 291 function trusted(checked) { 292 if (checked) { 293 $("#webauthnLoginForm").append("<input type='hidden' name='trustedBrowser' />"); 294 } else { 295 $("#webauthnLoginForm input[name='trustedBrowser']").remove(); 296 } 297 } 298 </script>
298 299 300
300<script src="/js/webauthn/webauthn-2092f8d31763f8cda947b6fb20145c99.js"></script>
300 301 302 <div style="display: none" id="diagnostics"> 303 <p> 304 <button class="btn btn-primary" type="button" data-toggle="collapse" 305 data-target="#serverResponse" aria-expanded="false" aria-controls="serverResponse"> 306 Server Response 307 </button> 308 <button class="btn btn-primary" type="button" data-toggle="collapse" 309 data-target="#authenticatorResponse" aria-expanded="false" aria-controls="authenticatorResponse"> 310 Authenticator Response 311 </button> 312 <button class="btn btn-primary" type="button" data-toggle="collapse" 313 data-target="#requestPanel" aria-expanded="false" aria-controls="requestPanel"> 314 Request 315 </button> 316 </p> 317 <div class="collapse" id="serverResponse"> 318 <div class="card card-body"> 319 <h4>Server Response:</h4> 320 <pre id="session"></pre> 321 <pre id="server-response"></pre> 322 </div> 323 </div> 324 <div class="collapse" id="authenticatorResponse"> 325 <div class="card card-body"> 326 <h4>Authenticator Response:</h4> 327 <pre id="authenticator-response"></pre> 328 </div> 329 </div> 330 <div class="collapse" id="requestPanel"> 331 <div class="card card-body"> 332 <h4>WebAuthN Request:</h4> 333 <pre id="request"></pre> 334 </div> 335 </div> 336 </div> 337 338 <div id="webauthnContainer" class="d-flex justify-content-center flex-column mdc-card card p-4 m-auto"> 339 <div class="d-flex justify-content-center flex-column align-items-center"> 340 <h3 id="status" >Login with FIDO2-enabled Device</h3> 341 </div> 342 343 <p id="descriptionPasswordless">To log in without a password, use your FIDO2-enabled access key, such as a mobile phone, computer, or hardware USB token that you have registered with us. The device must have your login details saved.</p> 344 <p id="description" class="d-flex justify-content-center flex-column align-items-center">Use your registered FIDO2-enabled device to login. To successfully perform this action, your device must already be registered with SSO.</p> 345 346 <div id="messages" class="d-flex justify-content-center flex-column align-items-center"></div> 347 <div id="device-info"> 348 <div class="d-flex justify-content-center flex-column align-items-center"> 349 <br><img id="device-icon"/><br><span id="device-name"></span> 350 </div> 351 </div> 352 <div id="loginPanel" class="d-flex justify-content-center flex-column align-items-center"> 353 <button class="mdc-button mdc-button--raised btn btn-primary me-0 mt-3" 354 name="authnButton" id="authnButton" accesskey="a" type="button"> 355 <i class="mdi mdi-fingerprint fas fa-fingerprint" aria-hidden="true"></i> 356 <span id="authnButtonText" class="mdc-button__label">Login</span> 357 </button> 358 359 <div id="trustedBrowserCheckboxField" class="mdc-form-field form-check" > 360 <div class="mdc-checkbox"> 361 <input id="trustedBrowserCheckbox" 362 name="trustedBrowserCheckbox" 363 class="mdc-checkbox__native-control form-check-input" 364 type="checkbox" 365 onclick="trusted(this.checked)"/><div class="mdc-checkbox__background"> 366 <svg class="mdc-checkbox__checkmark" viewBox="0 0 24 24"> 367 <path class="mdc-checkbox__checkmark-path" fill="none" 368 d="M1.73,12.91 8.1,19.28 22.79,4.59"/></svg> 369 <div class="mdc-checkbox__mixedmark"></div> 370 </div> 371 <div class="mdc-checkbox__ripple"></div> 372 </div> 373 <label class="form-check-label" 374 for="trustedBrowserCheckbox" 375 title="For a period of time, a second factor will not be required for this browser.">Trusted web browser</label> 376 </div> 377 378 </div> 379 380 <div> 381 <div class="w-100 mdc-data-table table-responsive mx-auto my-4" id="divDeviceInfo" style="display: none"> 382 <table id="deviceTable" class="table table-striped" style="white-space: unset"> 383 <thead> 384 <tr class="mdc-data-table__header-row"> 385 <th class="w-50 mdc-data-table__header-cell" role="columnheader" scope="col">Attribute</th> 386 <th class="w-50 mdc-data-table__header-cell" role="columnheader" scope="col">Value(s)</th> 387 </tr> 388 </thead> 389 <tbody class="mdc-data-table__content"> 390 </tbody> 391 </table> 392 </div> 393 </div> 394 395 <form method="POST" id="webauthnLoginForm" class="fm-v clearfix" action="/login"><input type="hidden" name="_csrf" value="Iui2z58rxxpGKKomVgFhphKZW7-W8Kn0-dKd-lsE8GBcmjBUEdGA_v0T_i9rGMxAMyxVn3Sgdoamk5vZzOGsnGg2xFRqrwFg"/> 396 <input type="hidden" name="_eventId" value="validate"/><input type="hidden" id="token" name="token"/><input type="hidden" name="geolocation"/>
396<input type="hidden" id="authnCsrfToken" name="_csrf" value="0a9fe059-a787-4d23-ae86-593d308e6714"/><input type="hidden" name="execution" value="e1s1"/></form> 397 398
398<script type="text/javascript"> 399 const csrfToken = getCookie('XSRF-TOKEN'); 400 401 /*<![CDATA[*/ 402 let QRCodeAuthentication = null; 403 const QRCodeTicket = null; 404 const csrfParameterName = "_csrf"; 405 /*]]>*/ 406 if (QRCodeTicket !== undefined && QRCodeTicket !== null) { 407 $(`#webauthnQRCodeVerifyForm input[name=${csrfParameterName}]`).val(csrfToken); 408 } 409 if (QRCodeAuthentication === undefined || QRCodeAuthentication === null) { 410 QRCodeAuthentication = false; 411 } 412 console.log(`Using CSRF token: ${csrfToken}`); 413 console.log(`QR Code Authentication: ${QRCodeAuthentication}`); 414 const url = window.location.href; 415 const btn = document.getElementById('authnButton'); 416 btn.addEventListener('click', event => { 417 $("#errorPanel").hide(); 418 let username = null; 419 console.log(`Authenticating user: ${username}`); 420 authenticate(username); 421 }, false); 422 </script>
422 423 424 </div> 425 426 <hr class="my-4"/></span> 427 </div> 428 </section> 429 430 431 <div> 432 <div id="pmlinks" class="my-2"> 433 <div class="mt-2"> 434<!-- 435 <span class="mdi mdi-account-question" aria-hidden="true"></span> --><span><a href="https://idoc.vsb.cz/xwiki/bin/view/uzivatel/hesla/jednotne-heslo">Forgot your password? </a></span> 436 </div> 437 </div> 438 </div> 439 440
440<script type="text/javascript"> 441 /*<![CDATA[*/ 442 var i = "One moment please..." 443 var j = "Login" 444 /*]]>*/ 445 $(window).on("pageshow", function () { 446 $(":submit").prop("disabled", false); 447 $(":submit").attr("value", j); 448 }); 449 $(document).ready(function () { 450 $("#fm1").submit(function () { 451 $(":submit").attr("disabled", true); 452 $(":submit").attr("value", i); 453 return true; 454 }); 455 }); 456 </script>
456 457 458
458<script type="text/javascript"> 459 document.addEventListener("DOMContentLoaded", (event) => { 460 const tabs = new mdc.tabBar.MDCTabBar(document.querySelector("#login-tabs")); 461 tabs.listen('MDCTabBar:activated', ev => { 462 let index = ev.detail.index; 463 $('.login-tab').addClass('d-none'); 464 $(`#login-tab-${index}`).removeClass('d-none'); 465 if (typeof (Storage) !== "undefined"){ 466 if (index > 0) { 467 window.localStorage.setItem("loginTab", index); 468 } else { 469 window.localStorage.removeItem("loginTab"); 470 } 471 } 472 }); 473 tabs.useAutomaticActivation = true; 474 if (typeof (Storage) === "undefined"){ 475 console.log("Browser does not support local storage"); 476 } else { 477 let loginTab = window.localStorage.getItem("loginTab"); 478 if (loginTab && loginTab > 0) { 479 tabs.activateTab(Number(loginTab)); 480 document.getElementById("fido2-tab").blur(); 481 } 482 } 483 }); 484 </script>
484 485 486 </div> 487 488 <div id="infoAlertSymbol"> 489 <i class="mdi mdi-alert-circle" aria-hidden="true"></i> 490 <div>Set up <a href="https://idoc.vsb.cz/xwiki/bin/view/uzivatel/hesla/multifaktorova-autentizace">multi-factor authentication</a>, <strong>it will soon be mandatory</strong>: <ul><li><span class="alert-text"><strong>From 1/6/2026</strong></span> for VPN and SAP Fiori</li><li><span class="alert-text"><strong>From 1/9/2026</strong></span> for all SSO applications (InNET, canteen, EDISON, ...)</li></ul></div> 491 </div> 492 493 <div> 494 <div id="sidebar"> 495 <div class="sidebar-content"> 496 <p id="securityNotice">For security reasons, please <a href="logout">log out</a> and exit your web browser when you are done accessing services that require authentication!</p> 497 </div> 498 </div> 499 </div> 500 501 <div id="accountLink" > 502 <span>Log in to manage your <a href="/account">SSO account</a>.</span> 503 </div> 504 505
505<script type="text/javascript"> 506 let params = new URLSearchParams(document.location.search); 507 let service = params.get("service"); 508 if (service != null && service.endsWith(document.location.origin + "/account")){ 509 document.getElementById("accountLink").style.display = "none"; 510 } 511 </script>
511 512 513 </div> 514 </section> 515 </div> 516 <div class="login-side-info"> 517 518 <div id="serviceui" class="banner banner-info mb-4 text-justify"> 519 520 <div class="d-flex align-items-center p-3"> 521 <div id="servicedesc" class="ml-2"> 522 <h3><i class="mdi mdi-web" aria-hidden="true"></i> Web InNET</h3> 523 </div> 524 </div> 525 526 </div> 527 528 <section id="loginInfo" 529 class="login-info"> 530 <p>You are logging into <strong>Single Sign On system (SSO)</strong>. After a single login, this system enables you to access multiple secured applications (e.g. portal, EPS) using an unique web browser instance.</p> 531 <p>As for Username and Password, please use the <strong>username</strong> and <strong>password</strong> from <strong>LDAP</strong> (ie. username and password used for logging reading the mail).</p> 532 <div id="infoAlertSymbol"> 533 <i class="mdi mdi-alert-circle" aria-hidden="true"></i> 534 <div>Set up <a href="https://idoc.vsb.cz/xwiki/bin/view/uzivatel/hesla/multifaktorova-autentizace">multi-factor authentication</a>, <strong>it will soon be mandatory</strong>: <ul><li><span class="alert-text"><strong>From 1/6/2026</strong></span> for VPN and SAP Fiori</li><li><span class="alert-text"><strong>From 1/9/2026</strong></span> for all SSO applications (InNET, canteen, EDISON, ...)</li></ul></div> 535 </div> 536 </section> 537 </div> 538</div> 539 </main> 540 </div> 541 542 <footer class="py-3 d-flex justify-content-center align-items-center cas-footer" 543 id="casFooter" role="contentinfo"> 544 <span>© 2004 - <span>2026</span> <span title="7.3.8.2 8/25/26, 5:24â¯PM">CIT</span>, VÅ B-TUO</span> 545</footer> 546 547</body> 548 549</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.