CINXE.COM
Salk Institute Identity Server
<!doctype html> <html> <head> <!-- header --> <!-- localize.jsp MUST already be included in the calling script --> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="icon" href="libs/theme/assets/images/favicon.ico" type="image/x-icon"/> <link href="libs/theme/wso2-default.min.css" rel="stylesheet"> <title>Salk Institute Identity Server</title> <style> html, body { height: 100%; } body { flex-direction: column; display: flex; } main { flex-shrink: 0; } main.center-segment { margin: auto; display: flex; align-items: center; } main.center-segment > .ui.container.medium { max-width: 450px !important; } main.center-segment > .ui.container.large { max-width: 700px !important; } main.center-segment > .ui.container > .ui.segment { padding: 3rem; } main.center-segment > .ui.container > .ui.segment .segment-form .buttons { margin-top: 1em; } main.center-segment > .ui.container > .ui.segment .segment-form .buttons.align-right button, main.center-segment > .ui.container > .ui.segment .segment-form .buttons.align-right input { margin: 0 0 0 0.25em; } main.center-segment > .ui.container > .ui.segment .segment-form .column .buttons.align-left button.link-button, main.center-segment > .ui.container > .ui.segment .segment-form .column .buttons.align-left input.link-button { padding: .78571429em 1.5em .78571429em 0; } main.center-segment > .ui.container > .ui.segment .segment-form { text-align: left; } main.center-segment > .ui.container > .ui.segment .segment-form .align-center { text-align: center; } main.center-segment > .ui.container > .ui.segment .segment-form .align-right { text-align: right; } .cookie-policy-message { font-size: 14px; } footer { padding: 2rem 0; } body .product-title .product-title-text { margin: 0; } body .center-segment .product-title .product-title-text { margin-top: 2em; margin-bottom: 1em; } .ui.menu.fixed.app-header .product-logo { padding-left: 0; } /* Table of content styling */ main #toc { position: sticky; top: 93px; } main .ui.segment.toc { padding: 20px; } main .ui.segment.toc ul.ui.list.nav > li.sub { margin-left: 20px; } main .ui.segment.toc ul.ui.list.nav > li > a { color: rgba(0,0,0,.87); text-decoration: none; } main .ui.segment.toc ul.ui.list.nav > li:before { content: "\2219"; font-weight: bold; font-size: 1.6em; line-height: 0.5em; display: inline-block; width: 1em; margin-left: -0.7em; } main .ui.segment.toc ul.ui.list.nav > li.sub:before { content: "\2192"; margin-left: -1em; } main .ui.segment.toc ul.ui.list.nav > li:hover a { color: #ff5000; text-decoration: none; } main .ui.segment.toc ul.ui.list.nav > li:hover:before { color: #ff5000; } </style> <script src="libs/jquery_3.6.0/jquery-3.6.0.js"></script> </head> <body onload="checkSessionKey()"> <main class="center-segment"> <div class="ui container medium center aligned middle aligned"> <!-- product-title --> <!-- localize.jsp MUST already be included in the calling script --> <div class="product-title"> <div class="theme-icon inline auto transparent product-logo" style="margin-top:-7px;"> <svg version="1.1" id="svg2" width="70" height="70" viewBox="0 0 166.39999 166.39999" sodipodi:docname="salk_logo_sq_k.eps" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> <defs id="defs6" /> <sodipodi:namedview id="namedview4" pagecolor="#ffffff" bordercolor="#000000" borderopacity="0.25" inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" /> <g id="g8" inkscape:groupmode="layer" inkscape:label="ink_ext_XXXXXX" transform="matrix(1.3333333,0,0,-1.3333333,-16,104.4)"> <g id="g10" transform="scale(0.1)"> <path d="m 304.52,532.137 c -5.457,37.121 -20.36,48.722 -46.52,48.722 -21.078,0 -35.629,-10.902 -35.629,-31.261 0,-61.09 152.672,-85.809 152.672,-202.129 0,-69.821 -47.973,-105.449 -114.152,-105.449 -71.239,0 -111.981,40.718 -124.328,109.07 l 71.269,19.629 c 5.09,-32.711 16.707,-61.789 53.777,-61.789 21.114,0 36.371,12.347 36.371,34.168 0,67.609 -152.691,93.05 -152.691,199.941 0,61.82 48,104.719 109.063,104.719 63.988,0 117.347,-45.781 119.238,-115.692 l -69.07,0.071" style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path14" /> <path d="m 561.59,447.789 c -74.16,-42.16 -92.352,-69.07 -92.352,-103.25 0,-25.441 13.102,-35.621 37.821,-35.621 22.531,0 40.711,16.738 54.531,36.371 z m -163.902,84.289 c 1.378,83.621 50.468,115.668 126.808,115.668 75.633,0 118.512,-34.898 118.512,-106.156 V 290.758 c 0,-12.371 2.922,-28.371 5.09,-41.461 h -77.801 c -0.731,10.902 -3.617,21.082 -4.367,30.531 -30.532,-24.719 -55.981,-37.789 -95.242,-37.789 -55.258,0 -82.891,37.789 -82.891,87.957 0,85.813 56.723,133.063 173.793,177.41 v 23.274 c 0,32.726 -13.102,50.379 -40.012,50.168 -34.012,-0.258 -43.648,-10.25 -46.531,-48.77 h -77.359" style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path16" /> <path d="m 679.379,774.262 h 81.449 V 249.309 h -81.449 v 524.953" style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path18" /> <path d="M 975.387,516.871 1069.9,249.313 h -82.146 l -65.43,194.117 h -1.469 L 882.316,385.98 V 249.313 h -81.421 v 524.949 h 81.421 v -271.93 h 1.45 l 89.449,138.148 h 87.225 L 975.387,516.871" style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path20" /> <path d="m 1131.23,277.297 c 6.14,0 13,-0.301 13,7.84 0,6.539 -5.27,7.5 -10.15,7.5 h -10.13 v -15.34 z m -7.28,-26.012 h -6.35 v 46.649 h 17.88 c 10.46,0 15.1,-4.559 15.1,-12.911 0,-8.238 -5.39,-11.839 -10.78,-13.007 l 13.02,-20.731 h -7.21 l -12.68,20.731 h -8.98 z m 41.13,23.371 c 0,18.93 -14.05,33.969 -32.89,33.969 -18.84,0 -32.89,-15.039 -32.89,-33.969 0,-18.929 14.05,-33.937 32.89,-33.937 18.84,0 32.89,15.008 32.89,33.937 m 6.35,0 c 0,-21.57 -17.56,-39.234 -39.24,-39.234 -21.69,0 -39.24,17.664 -39.24,39.234 0,21.571 17.55,39.239 39.24,39.239 21.68,0 39.24,-17.668 39.24,-39.239" style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none" id="path22" /> </g> </g> </svg> </div> <h1 class="product-title-text">Identity Server</h1> </div> <div class="ui segment"> <h3 class="ui header text-right-baseline"> Sign In </h3> <div class="segment-form text-right-baseline"> <script> function goBack() { window.history.back(); } // Handle form submission preventing double submission. $(document).ready(function(){ $.fn.preventDoubleSubmission = function() { $(this).on('submit',function(e){ var $form = $(this); if ($form.data('submitted') === true) { // Previously submitted - don't submit again. e.preventDefault(); console.warn("Prevented a possible double submit event"); } else { e.preventDefault(); var isEmailUsernameEnabled = JSON.parse("false"); var tenantName = getParameterByName("tenantDomain"); var userName = document.getElementById("username"); var usernameUserInput = document.getElementById("usernameUserInput"); var isEmailUsernameValidationDisabled = JSON.parse("false"); if (usernameUserInput) { var usernameUserInputValue = usernameUserInput.value.trim(); if (tenantName && tenantName !== "null") { if (isEmailUsernameEnabled && !isEmailUsernameValidationDisabled) { if (usernameUserInputValue.split("@").length <= 1) { var errorMessage = document.getElementById("error-msg"); errorMessage.innerHTML = "Invalid Username. Username has to be an email address."; errorMessage.style.display = "block"; return; } if (usernameUserInputValue.split("@").length === 2) { userName.value = usernameUserInputValue + "@" + tenantName; } else { userName.value = usernameUserInputValue; } } else { if (usernameUserInputValue.split("@").length > 1) { userName.value = usernameUserInputValue; } else { userName.value = usernameUserInputValue + "@" + tenantName; } } } else { userName.value = usernameUserInputValue; } } if (userName.value) { let contextPath = "" if (contextPath !== "") { contextPath = contextPath.startsWith('/') ? contextPath : "/" + contextPath contextPath = contextPath.endsWith('/') ? contextPath.substring(0, contextPath.length - 1) : contextPath } $.ajax({ type: "GET", url: contextPath + "/logincontext?sessionDataKey=" + getParameterByName("sessionDataKey") + "&relyingParty=" + getParameterByName("relyingParty") + "&tenantDomain=" + tenantName, success: function (data) { if (data && data.status == 'redirect' && data.redirectUrl && data.redirectUrl.length > 0) { window.location.href = data.redirectUrl; } else if ($form.data('submitted') !== true) { $form.data('submitted', true); document.getElementById("loginForm").submit(); } else { console.warn("Prevented a possible double submit event."); } }, cache: false }); } } }); return this; }; $('#loginForm').preventDoubleSubmission(); }); </script> <form class="ui large form" action="../samlsso" method="post" id="loginForm"> <input id="tocommonauth" name="tocommonauth" type="hidden" value="true"> <div class="ui visible negative message" style="display: none;" id="error-msg"></div> <div class="field"> <div class="ui fluid left icon input"> <input type="text" id="usernameUserInput" value="" name="usernameUserInput" tabindex="1" placeholder="Salk AD Username" required> <i aria-hidden="true" class="user icon"></i> <input id="username" name="username" type="hidden" value="null"> </div> </div> <div class="field"> <div class="ui fluid left icon input"> <input type="password" id="password" name="password" value="" autocomplete="off" tabindex="2" placeholder="Salk AD Password"> <i aria-hidden="true" class="lock icon"></i> </div> </div> </div> <div class="ui divider hidden"></div> <div class="field"> <div class="ui checkbox"> <input tabindex="3" type="checkbox" id="chkRemember" name="chkRemember"> <label>Remember me on this computer</label> </div> </div> <input type="hidden" name="sessionDataKey" value='587f0b5f-ad5e-4664-babb-a2c2c524a4eb'/> <div class="ui divider hidden"></div> <div class="ui one column stackable grid"> <div class="column mobile center aligned tablet center aligned computer center aligned buttons tablet no-margin-center-last-child computer no-margin-center-last-child"> <button type="submit" class="ui primary large button" tabindex="4" role="button"> Continue </button> </div> </div> </form> </div> </div> </div> </main> <!-- product-footer --> <!-- localize.jsp MUST already be included in the calling script --> <!-- footer --> <footer class="footer" style="text-align: center"> <div class="container-fluid"> <p>Salk Institute Identity Server © <script>document.write(new Date().getFullYear());</script> </p> </div> </footer> <!-- footer --> <script src="libs/theme/semantic.min.js"></script> <script> function checkSessionKey() { var proxyPath = "" $.ajax({ type: "GET", url: proxyPath + "/logincontext?sessionDataKey=" + getParameterByName("sessionDataKey") + "&relyingParty=" + getParameterByName("relyingParty") + "&tenantDomain=" + getParameterByName("tenantDomain"), success: function (data) { if (data && data.status == 'redirect' && data.redirectUrl && data.redirectUrl.length > 0) { window.location.href = data.redirectUrl; } }, cache: false }); } function getParameterByName(name, url) { if (!url) { url = window.location.href; } name = name.replace(/[\[\]]/g, '\$&'); var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url); if (!results) return null; if (!results[2]) return ""; return decodeURIComponent(results[2].replace(/\+/g, ' ')); } $(document).ready(function () { $('.main-link').click(function () { $('.main-link').next().hide(); $(this).next().toggle('fast'); var w = $(document).width(); var h = $(document).height(); $('.overlay').css("width", w + "px").css("height", h + "px").show(); }); $('.overlay').click(function () { $(this).hide(); $('.main-link').next().hide(); }); }); function myFunction(key, value, name) { var object = document.getElementById(name); var domain = object.value; if (domain != "") { document.location = "../commonauth?idp=" + key + "&authenticator=" + value + "&sessionDataKey=587f0b5f-ad5e-4664-babb-a2c2c524a4eb&domain=" + domain; } else { document.location = "../commonauth?idp=" + key + "&authenticator=" + value + "&sessionDataKey=587f0b5f-ad5e-4664-babb-a2c2c524a4eb"; } } function handleNoDomain(elem, key, value) { var linkClicked = "link-clicked"; if ($(elem).hasClass(linkClicked)) { console.warn("Preventing multi click.") } else { $(elem).addClass(linkClicked); document.location = "../commonauth?idp=" + key + "&authenticator=" + value + "&sessionDataKey=587f0b5f-ad5e-4664-babb-a2c2c524a4eb" + ""; } } window.onunload = function(){}; function changeUsername (e) { document.getElementById("changeUserForm").submit(); } $('.isHubIdpPopupButton').popup({ popup: '.isHubIdpPopup', on: 'click', position: 'top left', delay: { show: 300, hide: 800 } }); </script> </body> </html>