CINXE.COM

Loculus Authentication

<!DOCTYPE html><html lang="en"><head><script> window.kcContext= (()=>{ const out = { "execution": "bf64724e-5ded-4fbf-8ded-495dba2d8dde", "social": { "displayInfo": true, "providers": [ { "displayName": "ORCID", "providerId": "orcid", "loginUrl": "\/realms/loculus/broker/orcid/login?client_id=backend-client&tab_id=s4hZfGFrfDw&session_code=PwDTq4kTtCokES7G2r5ZO2BMQvGiCh_056I_EzBxRt0", "iconClasses": "", "alias": "orcid", }, ], }, "auth": { "showResetCredentials": false, "authenticationSelections": [ { "helpText": "auth-username-password-form-help-text", "displayName": "auth-username-password-form-display-name", "iconCssClass": "kcAuthenticatorDefaultClass", "authExecId": "bf64724e-5ded-4fbf-8ded-495dba2d8dde", "authenticationExecution": { "authenticatorFlow": false, "conditional": false, "required": true, "enabled": true, "disabled": false, "id": "bf64724e-5ded-4fbf-8ded-495dba2d8dde", "parentFlow": "a5a20a58-1d3b-4bd9-a65f-9f345e11b07b", "authenticator": "auth-username-password-form", "alternative": false, "requirement": { "stableIndex": "0", }, "priority": "10", }, }, ], "showUsername": false, "showTryAnotherWayLink": false, /*If you need 'attemptedUsername' on login.ftl, please submit an issue to the Keycloakify repo*/ }, "login": { /*If you need 'login.password' on login.ftl, please submit an issue to the Keycloakify repo*/ }, "url": { "oauthAction": "\/realms/loculus/login-actions/authenticate", "resourcesPath": "\/resources/7hwir/login/loculus", "loginAction": "https://authentication.pathoplexus.org/realms/loculus/login-actions/authenticate?session_code=PwDTq4kTtCokES7G2r5ZO2BMQvGiCh_056I_EzBxRt0&execution=bf64724e-5ded-4fbf-8ded-495dba2d8dde&client_id=backend-client&tab_id=s4hZfGFrfDw", "loginUrl": "\/realms/loculus/login-actions/authenticate?client_id=backend-client&tab_id=s4hZfGFrfDw", "resourcesCommonPath": "\/resources/7hwir/common/keycloak", "firstBrokerLoginUrl": "\/realms/loculus/login-actions/first-broker-login?client_id=backend-client&tab_id=s4hZfGFrfDw", "registrationUrl": "\/realms/loculus/login-actions/registration?client_id=backend-client&tab_id=s4hZfGFrfDw", "logoutConfirmAction": "\/realms/loculus/protocol/openid-connect/logout/logout-confirm?client_id=backend-client&tab_id=s4hZfGFrfDw", /*If you need 'url.loginUpdateProfileUrl' on login.ftl, please submit an issue to the Keycloakify repo*/ "registrationAction": "https://authentication.pathoplexus.org/realms/loculus/login-actions/authenticate?session_code=PwDTq4kTtCokES7G2r5ZO2BMQvGiCh_056I_EzBxRt0&execution=bf64724e-5ded-4fbf-8ded-495dba2d8dde&client_id=backend-client&tab_id=s4hZfGFrfDw", "loginResetCredentialsUrl": "\/realms/loculus/login-actions/reset-credentials?client_id=backend-client&tab_id=s4hZfGFrfDw", "ssoLoginInOtherTabsUrl": "\/realms/loculus/login-actions/restart?client_id=backend-client&tab_id=s4hZfGFrfDw&skip_logout=true", /*If you need 'url.loginUsernameReminderUrl' on login.ftl, please submit an issue to the Keycloakify repo*/ "resourcesUrl": "\/resources/7hwir?client_id=backend-client&tab_id=s4hZfGFrfDw/login/loculus", "loginRestartFlowUrl": "\/realms/loculus/login-actions/restart?client_id=backend-client&tab_id=s4hZfGFrfDw&skip_logout=false", "oauth2DeviceVerificationAction": "\/realms/loculus/login-actions/authenticate", }, "authenticationSession": { "tabId": "s4hZfGFrfDw", "authSessionId": "a4adbe25-ef46-4f44-84ab-51fcfcbe7d56", }, "messagesPerField": { }, "client": { "clientId": "backend-client", "attributes": { "post.logout.redirect.uris": "+", }, }, "realm": { "displayName": "loculus", "registrationAllowed": true, "displayNameHtml": "loculus", "resetPasswordAllowed": true, "resetCredentialsActionTokenLifespanMinutes": "30", "password": true, "actionTokenGeneratedByUserLifespanMinutes": "30", "internationalizationEnabled": false, "idpVerifyAccountLinkActionTokenLifespanMinutes": "30", "verifyEmailActionTokenLifespanMinutes": "30", "loginWithEmailAllowed": true, "duplicateEmailsAllowed": false, "editUsernameAllowed": false, "name": "loculus", "rememberMe": false, "registrationEmailAsUsername": false, "identityFederationEnabled": true, }, "scripts": [ ], "properties": { "kcLogoIdP-facebook": "fa fa-facebook", "parent": "keycloak", "kcAuthenticatorOTPClass": "fa fa-mobile list-view-pf-icon-lg", "kcLogoIdP-bitbucket": "fa fa-bitbucket", "kcAuthenticatorWebAuthnClass": "fa fa-key list-view-pf-icon-lg", "kcWebAuthnDefaultIcon": "pficon pficon-key", "REGISTRATION_TERMS_MESSAGE": "Do you agree to the <a href=\"https://pathoplexus.org/about/terms-of-use/terms-of-service\">terms of use<\/a> and the <a href=\"https://pathoplexus.org/about/terms-of-use/privacy-policy\">privacy policy<\/a>?", "kcLogoIdP-stackoverflow": "fa fa-stack-overflow", "kcSelectAuthListItemClass": "pf-l-stack__item select-auth-box-parent pf-l-split", "kcLogoIdP-microsoft": "fa fa-windows", "kcLoginOTPListItemHeaderClass": "pf-c-tile__header", "kcLocaleItemClass": "pf-c-dropdown__menu-item", "kcLoginOTPListItemIconBodyClass": "pf-c-tile__icon", "kcInputHelperTextAfterClass": "pf-c-form__helper-text pf-c-form__helper-text-after", "kcFormClass": "form-horizontal", "kcSelectAuthListClass": "pf-l-stack select-auth-container", "kcInputClassRadioCheckboxLabelDisabled": "pf-m-disabled", "kcSelectAuthListItemIconClass": "pf-l-split__item select-auth-box-icon", "kcRecoveryCodesWarning": "kc-recovery-codes-warning", "kcFormSettingClass": "login-pf-settings", "kcWebAuthnBLE": "fa fa-bluetooth-b", "kcInputWrapperClass": "col-xs-12 col-sm-12 col-md-12 col-lg-12", "kcSelectAuthListItemArrowIconClass": "fa fa-angle-right fa-lg", "meta": "viewport==width=device-width,initial-scale=1", "styles": "css/login.css", "kcFeedbackAreaClass": "col-md-12", "kcFormPasswordVisibilityButtonClass": "pf-c-button pf-m-control", "kcLogoIdP-google": "fa fa-google", "kcCheckLabelClass": "pf-c-check__label", "kcSelectAuthListItemFillClass": "pf-l-split__item pf-m-fill", "kcAuthenticatorDefaultClass": "fa fa-list list-view-pf-icon-lg", "kcLogoIdP-gitlab": "fa fa-gitlab", "kcFormAreaClass": "col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-2", "kcFormButtonsClass": "col-xs-12 col-sm-12 col-md-12 col-lg-12", "kcInputClassRadioLabel": "pf-c-radio__label", "kcAuthenticatorWebAuthnPasswordlessClass": "fa fa-key list-view-pf-icon-lg", "kcSelectAuthListItemHeadingClass": "pf-l-stack__item select-auth-box-headline pf-c-title", "kcInfoAreaClass": "col-xs-12 col-sm-4 col-md-4 col-lg-5 details", "kcLogoLink": "http://www.keycloak.org", "kcContainerClass": "container-fluid", "kcSelectAuthListItemTitle": "select-auth-box-paragraph", "kcHtmlClass": "login-pf", "kcLoginOTPListItemTitleClass": "pf-c-tile__title", "locales": "ar,ca,cs,da,de,el,en,es,fa,fr,fi,hu,it,ja,lt,nl,no,pl,pt-BR,ru,sk,sv,th,tr,zh-CN", "kcLogoIdP-openshift-v4": "pf-icon pf-icon-openshift", "kcWebAuthnUnknownIcon": "pficon pficon-key unknown-transport-class", "kcFormSocialAccountNameClass": "kc-social-provider-name", "kcLogoIdP-openshift-v3": "pf-icon pf-icon-openshift", "kcLoginOTPListInputClass": "pf-c-tile__input", "kcWebAuthnUSB": "fa fa-usb", "kcInputClassRadio": "pf-c-radio", "kcWebAuthnKeyIcon": "pficon pficon-key", "kcFeedbackInfoIcon": "fa fa-fw fa-info-circle", "kcCommonLogoIdP": "kc-social-provider-logo kc-social-gray", "stylesCommon": "node_modules/@patternfly/patternfly/patternfly.min.css node_modules/patternfly/dist/css/patternfly.min.css node_modules/patternfly/dist/css/patternfly-additions.min.css lib/pficon/pficon.css", "kcRecoveryCodesActions": "kc-recovery-codes-actions", "kcFormGroupHeader": "pf-c-form__group", "kcFormSocialAccountSectionClass": "kc-social-section kc-social-gray", "kcLogoIdP-instagram": "fa fa-instagram", "kcAlertClass": "pf-c-alert pf-m-inline", "kcHeaderClass": "login-pf-page-header", "kcLabelWrapperClass": "col-xs-12 col-sm-12 col-md-12 col-lg-12", "kcFormPasswordVisibilityIconShow": "fa fa-eye", "kcFormSocialAccountLinkClass": "pf-c-login__main-footer-links-item-link", "kcLocaleMainClass": "pf-c-dropdown", "kcInputGroup": "pf-c-input-group", "kcTextareaClass": "form-control", "kcButtonBlockClass": "pf-m-block", "kcButtonClass": "pf-c-button", "kcWebAuthnNFC": "fa fa-wifi", "kcLocaleClass": "col-xs-12 col-sm-1", "kcInputClassCheckboxInput": "pf-c-check__input", "kcFeedbackErrorIcon": "fa fa-fw fa-exclamation-circle", "kcInputLargeClass": "input-lg", "kcInputErrorMessageClass": "pf-c-form__helper-text pf-m-error required kc-feedback-text", "kcRecoveryCodesList": "kc-recovery-codes-list", "kcFormSocialAccountListClass": "pf-c-login__main-footer-links kc-social-links", "kcAlertTitleClass": "pf-c-alert__title kc-feedback-text", "kcAuthenticatorPasswordClass": "fa fa-unlock list-view-pf-icon-lg", "kcCheckInputClass": "pf-c-check__input", "kcLogoIdP-linkedin": "fa fa-linkedin", "kcLogoIdP-twitter": "fa fa-twitter", "kcFeedbackWarningIcon": "fa fa-fw fa-exclamation-triangle", "kcResetFlowIcon": "pficon pficon-arrow fa", "kcSelectAuthListItemIconPropertyClass": "fa-2x select-auth-box-icon-properties", "kcFeedbackSuccessIcon": "fa fa-fw fa-check-circle", "kcLoginOTPListClass": "pf-c-tile", "kcSrOnlyClass": "sr-only", "kcFormSocialAccountListGridClass": "pf-l-grid kc-social-grid", "kcButtonDefaultClass": "btn-default", "kcFormGroupErrorClass": "has-error", "kcSelectAuthListItemDescriptionClass": "pf-l-stack__item select-auth-box-desc", "kcSelectAuthListItemBodyClass": "pf-l-split__item pf-l-stack", "import": "common/keycloak", "kcWebAuthnInternal": "pficon pficon-key", "kcSelectAuthListItemArrowClass": "pf-l-split__item select-auth-box-arrow", "kcCheckClass": "pf-c-check", "kcContentClass": "col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3 col-lg-6 col-lg-offset-3", "kcLogoClass": "login-pf-brand", "kcLoginOTPListItemIconClass": "fa fa-mobile", "kcLoginClass": "login-pf-page", "kcSignUpClass": "login-pf-signup", "kcButtonLargeClass": "btn-lg", "kcFormCardClass": "card-pf", "kcLocaleListClass": "pf-c-dropdown__menu pf-m-align-right", "kcInputClass": "pf-c-form-control", "kcFormGroupClass": "form-group", "kcLogoIdP-paypal": "fa fa-paypal", "kcInputClassCheckbox": "pf-c-check", "kcRecoveryCodesConfirmation": "kc-recovery-codes-confirmation", "kcFormPasswordVisibilityIconHide": "fa fa-eye-slash", "kcInputClassRadioInput": "pf-c-radio__input", "kcFormSocialAccountListButtonClass": "pf-c-button pf-m-control pf-m-block kc-social-item kc-social-gray", "kcInputClassCheckboxLabel": "pf-c-check__label", "kcFormOptionsClass": "col-xs-12 col-sm-12 col-md-12 col-lg-12", "kcFormHeaderClass": "login-pf-header", "kcFormSocialAccountGridItem": "pf-l-grid__item", "kcButtonPrimaryClass": "pf-m-primary", "kcInputHelperTextBeforeClass": "pf-c-form__helper-text pf-c-form__helper-text-before", "kcLogoIdP-github": "fa fa-github", "kcLabelClass": "pf-c-form__label pf-c-form__label-text", }, }; out["msg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); }; out["advancedMsg"]= function(){ throw new Error("use import { useKcMessage } from 'keycloakify'"); }; out["messagesPerField"]= { "printIfExists": function (fieldName, text) { if(fieldName === "totp" ){ return undefined; } if(fieldName === "userLabel" ){ return undefined; } if(fieldName === "password" ){ return undefined; } if(fieldName === "password-confirm" ){ return undefined; } if(fieldName === "username" ){ return undefined; } if(fieldName === "email" ){ return undefined; } if(fieldName === "firstName" ){ return undefined; } if(fieldName === "lastName" ){ return undefined; } if(fieldName === "global" ){ return undefined; } throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated"); }, "existsError": function (fieldName) { if(fieldName === "totp" ){ return false; } if(fieldName === "userLabel" ){ return false; } if(fieldName === "password" ){ return false; } if(fieldName === "password-confirm" ){ return false; } if(fieldName === "username" ){ return false; } if(fieldName === "email" ){ return false; } if(fieldName === "firstName" ){ return false; } if(fieldName === "lastName" ){ return false; } if(fieldName === "global" ){ return false; } throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated"); }, "get": function (fieldName) { if(fieldName === "totp" ){ return ""; } if(fieldName === "userLabel" ){ return ""; } if(fieldName === "password" ){ return ""; } if(fieldName === "password-confirm" ){ return ""; } if(fieldName === "username" ){ return ""; } if(fieldName === "email" ){ return ""; } if(fieldName === "firstName" ){ return ""; } if(fieldName === "lastName" ){ return ""; } if(fieldName === "global" ){ return ""; } throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated"); }, "exists": function (fieldName) { if(fieldName === "totp" ){ return false; } if(fieldName === "userLabel" ){ return false; } if(fieldName === "password" ){ return false; } if(fieldName === "password-confirm" ){ return false; } if(fieldName === "username" ){ return false; } if(fieldName === "email" ){ return false; } if(fieldName === "firstName" ){ return false; } if(fieldName === "lastName" ){ return false; } if(fieldName === "global" ){ return false; } throw new Error(fieldName + "is probably runtime generated, see: https://docs.keycloakify.dev/limitations#field-names-cant-be-runtime-generated"); } }; out["keycloakifyVersion"] = "9.7.2"; out["themeVersion"] = "0.0.1"; out["themeType"] = "login"; out["themeName"] = "loculus"; out["pageId"] = "login.ftl"; try { out["url"]["resourcesCommonPath"] = out["url"]["resourcesPath"] + "/" + "resources-common"; } catch(error) { } return out; })() ; </script> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Notice the use of / in the tags above. It will be replaced with the URL of the `public` folder during the build. Only files inside the `public` folder can be referenced from the HTML. Unlike "/favicon.ico" or "favicon.ico", "/favicon.ico" will work correctly both with client-side routing and a non-root public URL. --> <link rel="icon" type="image/svg+xml" sizes="32x32" href="/resources/7hwir/login/loculus/build/favicon.svg"> <title>Loculus Authentication</title> <script type="module" crossorigin="" src="/resources/7hwir/login/loculus/build/assets/index-Ybp_gpTG.js"></script> </head> <body> <div id="root"></div> </body></html>