login.microsoftonline.com Open in urlscan Pro
2603:1026:3000:148::7  Public Scan

Submitted URL: https://recruiters.cardiff.ac.uk/
Effective URL: https://login.microsoftonline.com/bdb74b30-9568-4856-bdbf-06759778fcbc/saml2?binding=urn%3aoasis%3anames%3atc%3aSAML%3a2.0%3abindi...
Submission: On November 20 via api from US — Scanned from GB

Form analysis 2 forms found in the DOM

Name: f1POST https://login.microsoftonline.com/bdb74b30-9568-4856-bdbf-06759778fcbc/login

<form name="f1" id="i0281" novalidate="novalidate" spellcheck="false" method="post" target="_top" autocomplete="off"
  data-bind="visible: !isLoginPageHidden(), autoSubmit: forceSubmit, attr: { action: postUrl }, ariaHidden: !!activeDialog(), css: { 'provide-min-height': svr.fUseMinHeight }"
  action="https://login.microsoftonline.com/bdb74b30-9568-4856-bdbf-06759778fcbc/login" class="provide-min-height">
  <!-- ko withProperties: { '$loginPage': $data } -->
  <div class="login-paginated-page" data-bind="component: { name: 'master-page',
        publicMethods: masterPageMethods,
        params: {
            serverData: svr,
            showButtons: svr.fShowButtons,
            showFooterLinks: true,
            useWizardBehavior: svr.fUseWizardBehavior,
            handleWizardButtons: false,
            password: password,
            hideFromAria: ariaHidden },
        event: {
            footerAgreementClick: footer_agreementClick } }"><!--  -->
    <!-- ko ifnot: useLayoutTemplates --><!-- /ko -->
    <!-- ko if: useLayoutTemplates -->
    <!-- ko withProperties: { '$page': $parent } -->
    <!-- ko if: isLightboxTemplate() --><!-- /ko -->
    <!-- ko if: isVerticalSplitTemplate() && isTemplateLoaded() -->
    <div id="verticalSplitTemplateContainer" data-bind="component: { name: 'vertical-split-template', params: { serverData: svr, showHeader: $page.showHeader(), headerLogo: $page.headerLogo() } }, css: { 'provide-min-height': svr.fUseMinHeight }"
      class="provide-min-height"><!--  -->
      <!-- ko if: svr.iBannerEnvironment --><!-- /ko -->
      <!-- ko withProperties: { '$masterPageContext': $parentContext } -->
      <div class="outer" data-bind="css: { 'app': $page.backgroundLogoUrl }">
        <!-- ko if: showHeader --><!-- /ko -->
        <div class="template-section main-section">
          <div class="template-main-container vertical-split-main-container">
            <div data-bind="externalCss: { 'vertical-split-main-section': true }" class="vertical-split-main-section ext-vertical-split-main-section">
              <div id="verticalSplitBackgroundContainer" data-bind="
                    css: { 'provide-min-height': svr.fUseMinHeight },
                    externalCss: { 'vertical-split-background-image-container': true },
                    component: { name: 'background-image-control',
                        publicMethods: $page.backgroundControlMethods,
                        event: { load: $page.backgroundImageControl_onLoad } }" class="provide-min-height vertical-split-background-image-container ext-vertical-split-background-image-container">
                <div class="background-image-holder" role="presentation" data-bind="css: { app: isAppBranding }, style: { background: backgroundStyle }">
                  <!-- ko if: smallImageUrl --><!-- /ko -->
                  <!-- ko if: backgroundImageUrl -->
                  <div id="backgroundImage" role="img" data-bind="backgroundImage: backgroundImageUrl(), externalCss: { 'background-image': true }, ariaLabel: str['STR_Background_Image_AltText']" class="background-image ext-background-image"
                    aria-label="Organisation background image" style="background-image: url(&quot;https://aadcdn.msauthimages.net/c1c6b6c8-w8qqpo8lx5po-gelwtvgilbr3oavqla6jq5-t2e2adm/logintenantbranding/0/illustration?ts=638651711574967423&quot;);">
                  </div>
                  <!-- ko if: useImageMask -->
                  <div data-bind="externalCss: { 'background-overlay': true }" class="background-overlay ext-background-overlay"></div>
                  <!-- /ko -->
                  <!-- /ko -->
                </div>
              </div>
              <div id="verticalSplitLightboxContainer" class="top vertical-lightbox-container">
                <div data-bind="component: { name: 'content-control', params: { serverData: svr, isVerticalSplitTemplate: $page.isVerticalSplitTemplate(), hasHeader: showHeader } }"><!--  -->
                  <!-- ko withProperties: { '$content': $data } -->
                  <div class="flex-column">
                    <!-- ko if: $page.paginationControlHelper.showBackgroundLogoHolder --><!-- /ko -->
                    <!-- ko if: $page.paginationControlHelper.showPageLevelTitleControl --><!-- /ko -->
                    <div class="win-scroll">
                      <div id="lightbox" data-bind="
            animationEnd: $page.paginationControlHelper.animationEnd,
            externalCss: { 'sign-in-box': true },
            css: {
                'inner':  $content.isVerticalSplitTemplate,
                'vertical-split-content': $content.isVerticalSplitTemplate,
                'app': $page.backgroundLogoUrl,
                'wide': $page.paginationControlHelper.useWiderWidth,
                'fade-in-lightbox': $page.fadeInLightBox,
                'has-popup': $page.showFedCredAndNewSession &amp;&amp; ($page.showFedCredButtons() || $page.newSession()),
                'transparent-lightbox': $page.backgroundControlMethods() &amp;&amp; $page.backgroundControlMethods().useTransparentLightBox,
                'lightbox-bottom-margin-debug': $page.showDebugDetails,
                'has-header': $content.hasHeader }" class="sign-in-box ext-sign-in-box inner vertical-split-content fade-in-lightbox has-popup">
                        <!-- ko template: { nodes: $masterPageContext.$componentTemplateNodes, data: $page } -->
                        <!-- ko if: svr.fShowCookieBanner --><!-- /ko -->
                        <div class="lightbox-cover" data-bind="css: { 'disable-lightbox': svr.fAllowGrayOutLightBox &amp;&amp; showLightboxProgress() }"></div>
                        <!-- ko if: showLightboxProgress --><!-- /ko -->
                        <!-- ko if: loadBannerLogo -->
                        <div data-bind="component: { name: 'logo-control',
            params: {
                isChinaDc: svr.fIsChinaDc,
                bannerLogoUrl: bannerLogoUrl() } }"><!--  -->
                          <!-- ko if: bannerLogoUrl -->
                          <!-- ko if: svr.fTenantBrandingCdnAddEventHandlers -->
                          <img id="bannerLogo" data-bind="addEventHandlers, attr: { src: bannerLogoUrl, alt: str['STR_Banner_Logo_AltText'] }, externalCss: { 'banner-logo': true }"
                            src="https://aadcdn.msauthimages.net/c1c6b6c8-w8qqpo8lx5po-gelwtvgilbr3oavqla6jq5-t2e2adm/logintenantbranding/0/bannerlogo?ts=638651711551154586" alt="Organisation banner logo" class="banner-logo ext-banner-logo">
                          <!-- /ko -->
                          <!-- ko if: !svr.fTenantBrandingCdnAddEventHandlers --><!-- /ko -->
                          <!-- /ko -->
                          <!-- ko if: !bannerLogoUrl && !isChinaDc && !isCiamUserFlowUx --><!-- /ko -->
                          <!-- ko if: !bannerLogoUrl && isCiamUserFlowUx && bannerLogoText --><!-- /ko -->
                        </div>
                        <!-- /ko -->
                        <!-- ko if: svr.strLWADisclaimerMsg && paginationControlHelper.showLwaDisclaimer() --><!-- /ko -->
                        <!-- ko if: asyncInitReady -->
                        <div role="main" data-bind="component: { name: 'pagination-control',
            publicMethods: paginationControlMethods,
            params: {
                enableCssAnimation: svr.fEnableCssAnimation,
                disableAnimationIfAnimationEndUnsupported: svr.fDisableAnimationIfAnimationEndUnsupported,
                initialViewId: initialViewId,
                currentViewId: currentViewId,
                initialSharedData: initialSharedData,
                initialError: $loginPage.getServerError() },
            event: {
                cancel: paginationControl_onCancel,
                load: paginationControlHelper.onLoad,
                unload: paginationControlHelper.onUnload,
                loadView: view_onLoadView,
                showView: view_onShow,
                setLightBoxFadeIn: view_onSetLightBoxFadeIn,
                animationStateChange: paginationControl_onAnimationStateChange } }"><!--  -->
                          <div data-bind="css: { 'zero-opacity': hidePaginatedView() }" class="">
                            <!-- ko if: showIdentityBanner() && (sharedData.displayName || svr.sPOST_Username) --><!-- /ko -->
                            <div class="pagination-view animate slide-in-next" data-bind="css: {
        'has-identity-banner': showIdentityBanner() &amp;&amp; (sharedData.displayName || svr.sPOST_Username),
        'zero-opacity': hidePaginatedView.hideSubView(),
        'animate': animate(),
        'slide-out-next': animate.isSlideOutNext(),
        'slide-in-next': animate.isSlideInNext(),
        'slide-out-back': animate.isSlideOutBack(),
        'slide-in-back': animate.isSlideInBack() }">
                              <!-- ko foreach: views -->
                              <!-- ko if: $parent.currentViewIndex() === $index() -->
                              <!-- ko template: { nodes: [$data], data: $parent } -->
                              <div data-viewid="1" data-showfedcredbutton="true" data-bind="pageViewComponent: { name: 'login-paginated-username-view',
                params: {
                    serverData: svr,
                    serverError: initialError,
                    isInitialView: isInitialState,
                    displayName: sharedData.displayName,
                    otherIdpRedirectUrl: sharedData.otherIdpRedirectUrl,
                    prefillNames: $loginPage.prefillNames,
                    flowToken: sharedData.flowToken,
                    availableSignupCreds: sharedData.availableSignupCreds,
                    customStrings: $loginPage.stringCustomizationObservables.customStrings(),
                    isCustomizationFailure: $loginPage.stringCustomizationObservables.isCustomStringsLoadFailure(),
                    userIdLabel: $loginPage.userIdLabel,
                    cantAccessYourAccountText: $loginPage.cantAccessYourAccountText,
                    hideAccountResetCredentials: $loginPage.hideAccountResetCredentials,
                    accessRecoveryLink: $loginPage.accessRecoveryLink,
                    boilerPlateText: $loginPage.boilerPlateText },
                event: {
                    restoreIsRecoveryAttemptPost: $loginPage.view_onRestoreIsRecoveryAttemptPost,
                    redirect: $loginPage.view_onRedirect,
                    updateDFPUrl: $loginPage.view_onUpdateDFPUrl,
                    setPendingRequest: $loginPage.view_onSetPendingRequest,
                    registerDialog: $loginPage.view_onRegisterDialog,
                    unregisterDialog: $loginPage.view_onUnregisterDialog,
                    showDialog: $loginPage.view_onShowDialog,
                    updateAvailableCredsWithoutUsername: $loginPage.view_onUpdateAvailableCreds,
                    agreementClick: $loginPage.footer_agreementClick } }"><!--  -->
                                <div data-bind="component: { name: 'header-control',
    params: {
        serverData: svr,
        title: customTitle() || str['WF_STR_HeaderDefault_Title'],
        headerDescription: customDescription() } }">
                                  <div>
                                    <div class="row title ext-title" id="loginHeader" data-bind="externalCss: { 'title': true }">
                                      <div role="heading" aria-level="1" data-bind="text: title">Sign in</div>
                                      <!-- ko if: isSubtitleVisible --><!-- /ko -->
                                    </div>
                                    <!-- ko if: headerDescription --><!-- /ko -->
                                  </div>
                                </div>
                                <!-- ko if: pageDescription && !svr.fHideLoginDesc --><!-- /ko -->
                                <div class="row">
                                  <!-- ko if: svr.fEnableAriaLiveUpdates --><!-- /ko -->
                                  <!-- ko ifnot: svr.fEnableAriaLiveUpdates -->
                                  <div role="alert" aria-live="assertive">
                                    <!-- ko if: usernameTextbox.error --><!-- /ko -->
                                  </div>
                                  <!-- /ko -->
                                  <div class="form-group col-md-24">
                                    <!-- ko if: prefillNames().length > 1 --><!-- /ko -->
                                    <!-- ko ifnot: prefillNames().length > 1 -->
                                    <div class="placeholderContainer" data-bind="component: { name: 'placeholder-textbox-field',
            publicMethods: usernameTextbox.placeholderTextboxMethods,
            params: {
                serverData: svr,
                hintText: svr.fEnableLivePreview ? userIdLabel : tenantBranding.unsafe_userIdLabel || str['STR_SSSU_Username_Hint'] || str['CT_PWD_STR_Email_Example'],
                hintCss: 'placeholder' + (!svr.fAllowPhoneSignIn ? ' ltr_override' : '') },
            event: {
                updateFocus: usernameTextbox.textbox_onUpdateFocus } }"><!-- ko withProperties: { '$placeholderText': placeholderText } -->
                                      <!-- ko template: { nodes: $componentTemplateNodes, data: $parent } -->
                                      <input type="email" name="loginfmt" id="i0116" maxlength="113" class="form-control ltr_override input ext-input text-box ext-text-box" aria-required="true" data-report-event="Signin_Email_Phone_Skype"
                                        data-report-trigger="click" data-report-value="Email_Phone_Skype_Entry" data-bind="
                    attr: { lang: svr.fApplyAsciiRegexOnInput ? null : 'en',
                            autocomplete: svr.fIsUpdatedAutocompleteEnabled ? 'username' : null },
                    externalCss: {
                        'input': true,
                        'text-box': true,
                        'has-error': usernameTextbox.error },
                    ariaLabel: tenantBranding.unsafe_userIdLabel || str['CT_PWD_STR_Username_AriaLabel'],
                    ariaDescribedBy: 'loginHeader' + (pageDescription &amp;&amp; !svr.fHideLoginDesc ? ' loginDescription usernameError' : ' usernameError'),
                    textInput: usernameTextbox.value,
                    hasFocusEx: usernameTextbox.focused,
                    placeholder: $placeholderText" autocomplete="username" aria-label="abc123@cardiff.ac.uk" aria-describedby="loginHeader usernameError" placeholder="abc123@cardiff.ac.uk" data-report-attached="1">
                                      <!-- ko if: svr.fIsUpdatedAutocompleteEnabled -->
                                      <input name="passwd" type="password" id="i0118" data-bind="moveOffScreen, textInput: passwordBrowserPrefill" class="moveOffScreen" tabindex="-1" aria-hidden="true">
                                      <!-- /ko -->
                                      <!-- ko ifnot: svr.fIsUpdatedAutocompleteEnabled --><!-- /ko -->
                                      <!-- /ko -->
                                      <!-- /ko -->
                                      <!-- ko ifnot: usePlaceholderAttribute --><!-- /ko -->
                                    </div>
                                    <!-- /ko -->
                                  </div>
                                </div>
                                <div data-bind="css: { 'position-buttons': !tenantBranding.BoilerPlateText &amp;&amp; !boilerPlateText }, externalCss: { 'password-reset-links-container': true }"
                                  class="password-reset-links-container ext-password-reset-links-container">
                                  <div class="row">
                                    <div class="col-md-24">
                                      <div class="text-13">
                                        <!-- ko if: svr.fCBShowSignUp && !svr.fDoIfExists && !svr.fCheckProofForAliases --><!-- /ko -->
                                        <!-- ko ifnot: hideCantAccessYourAccount --><!-- /ko -->
                                        <!-- ko if: showFidoLinkInline && hasFido() && (availableCredsWithoutUsername().length >= 2 || svr.fShowForgotUsernameLink || isOfflineAccountVisible) --><!-- /ko -->
                                        <!-- ko if: svr.fEnableShowPickerCredObservable -->
                                        <!-- ko if: showCredPicker() --><!-- /ko -->
                                        <!-- /ko -->
                                        <!-- ko ifnot: svr.fEnableShowPickerCredObservable --><!-- /ko -->
                                        <!-- ko if: svr.urlSkipZtd --><!-- /ko -->
                                      </div>
                                    </div>
                                  </div>
                                </div>
                                <!-- ko if: svr.fShowLegalMessagingInline --><!-- /ko -->
                                <div class="win-button-pin-bottom boilerplate-button-bottom" data-bind="css : { 'boilerplate-button-bottom': tenantBranding.BoilerPlateText || boilerPlateText }">
                                  <div class="row move-buttons" data-bind="css: { 'move-buttons': tenantBranding.BoilerPlateText || boilerPlateText }">
                                    <div data-bind="component: { name: 'footer-buttons-field',
            params: {
                serverData: svr,
                isPrimaryButtonEnabled: !isRequestPending(),
                isPrimaryButtonVisible: svr.fShowButtons,
                isSecondaryButtonEnabled: true,
                isSecondaryButtonVisible: svr.fShowButtons &amp;&amp; isSecondaryButtonVisible(),
                secondaryButtonText: secondaryButtonText() },
            event: {
                primaryButtonClick: primaryButton_onClick,
                secondaryButtonClick: secondaryButton_onClick } }">
                                      <div class="col-xs-24 no-padding-left-right button-container button-field-container ext-button-field-container" data-bind="
    visible: isPrimaryButtonVisible() || isSecondaryButtonVisible(),
    css: { 'no-margin-bottom': removeBottomMargin },
    externalCss: { 'button-field-container': true }">
                                        <!-- ko if: isSecondaryButtonVisible --><!-- /ko -->
                                        <div data-bind="css: { 'inline-block': isPrimaryButtonVisible }, externalCss: { 'button-item': true }" class="inline-block button-item ext-button-item">
                                          <!-- type="submit" is needed in-addition to 'type' in primaryButtonAttributes observable to support IE8 -->
                                          <!-- ko ifnot: svr.fConsentButtonIdViaName -->
                                          <input type="submit" id="idSIButton9" class="win-button button_primary button ext-button primary ext-primary" data-report-event="Signin_Submit" data-report-trigger="click" data-report-value="Submit"
                                            data-bind="
                attr: primaryButtonAttributes,
                css: { 'high-contrast-overrides': svr.fUseHighContrastOverrides },
                externalCss: {
                    'button': true,
                    'primary': true },
                value: primaryButtonText() || str['CT_PWD_STR_SignIn_Button_Next'],
                hasFocus: focusOnPrimaryButton,
                click: svr.fEnableLivePreview ?  function() { } : primaryButton_onClick,
                clickBubble: !svr.fEnableLivePreview,
                enable: isPrimaryButtonEnabled,
                visible: isPrimaryButtonVisible,
                preventTabbing: primaryButtonPreventTabbing" value="Next" data-report-attached="1">
                                          <!-- /ko -->
                                          <!-- ko if: svr.fConsentButtonIdViaName --><!-- /ko -->
                                        </div>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                                <!-- ko if: tenantBranding.BoilerPlateText || boilerPlateText -->
                                <div id="idBoilerPlateText" class="wrap-content boilerplate-text ext-boilerplate-text" data-bind="
    htmlWithMods: svr.fEnableLivePreview ? boilerPlateText : tenantBranding.BoilerPlateText,
    htmlMods: { filterLinks: svr.fIsHosted },
    css: { 'transparent-lightbox': tenantBranding.UseTransparentLightBox },
    externalCss: { 'boilerplate-text': true }">
                                  <p><a href="https://password.cardiff.ac.uk" rel="noopener noreferrer" target="_blank">Can't access your account?</a></p>
                                  <p><a href="https://www.cardiff.ac.uk/help/multi-factor-authentication" rel="noopener noreferrer" target="_blank">Having trouble with MFA?</a></p>
                                  <p>Use of this service is governed by <a href="http://www.cardiff.ac.uk/public-information/policies-and-procedures/it-regulations" rel="noopener noreferrer" target="_blank">University IT regulations</a>. Logging in
                                    to Cardiff University confirms that you accept and agree to be bound by these regulations.</p>
                                </div>
                                <!-- /ko -->
                              </div><!-- /ko -->
                              <!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- ko if: $parent.currentViewIndex() === $index() --><!-- /ko -->
                              <!-- /ko -->
                            </div>
                          </div>
                        </div>
                        <!-- /ko -->
                        <input type="hidden" name="ps" data-bind="value: postedLoginStateViewId" value="">
                        <input type="hidden" name="psRNGCDefaultType" data-bind="value: postedLoginStateViewRNGCDefaultType" value="">
                        <input type="hidden" name="psRNGCEntropy" data-bind="value: postedLoginStateViewRNGCEntropy" value="">
                        <input type="hidden" name="psRNGCSLK" data-bind="value: postedLoginStateViewRNGCSLK" value="">
                        <!-- ko if: svr.sCanaryTokenName && !svr.fSkipRenderingNewCanaryToken -->
                        <input type="hidden" data-bind="attr: { name: svr.sCanaryTokenName }, value: svr.canary" name="canary" value="IiwhbapCUbt6lCRzxsGoSPlthxVSMCFXRDlAU/qk4O0=4:1:CANARY:kNg275qIm5CAi62bvr2WE8aHVH0AJAZ+JOAJwAlRYII=">
                        <!-- /ko -->
                        <!-- ko if: !svr.sCanaryTokenName || svr.fSkipRenderingNewCanaryToken --><!-- /ko -->
                        <input type="hidden" name="ctx" data-bind="value: ctx"
                          value="rQQIARAAtZA_bNNAFMZ9aZKSitCIrWKlLMV_4vjiOFKELBOaRGkTxekfWKo755wccezkzmkiWBlgQIIJKeqAEGJgqhATC1XF1KkTAxMj6oAYK7HgFCRGJpb3Se89vd_7viWhuNMLwyEvynKfYZHfDzCXMEOcM-p3JScYyJwHMkcDT7bNjbraRF1SpzwkPmGyOQ57xA-pg0Ia-C0yGhMeBkxCfDhlV5cyRyD1nMYelg8-P20IcGV5BtIOYh3quhJypHH_Lfgn3bYbF-Df9E0y-QvnnLA51wp8Ph4QZhO2Tx1yQT8Gq3tZaLgG1A0REkUTNZIlIlKhIeYc5KBcB0Pi5k4B-AbAl1jCjhyqs4VrZT8kbMgoJ5ZHI2915HeiX-a23y1cxx2saziniAbMF0StAPNi1HJFJa9DQ9cLroOd0_jls3hMuXQeB68SUQjrL1NrH28cWk9eOLt-bEU4SchVOulhNLS2cJj3rNaDKV8P7KYX9qbb9oZ1Z7d12zO35FFfayglrZh9lkyfJIUfSfB4UZgtCh9SB-A_xXYL0wu7pTHzV3MoQJzySH00IHMNnajML0aiSkpU_-zPh5V2uyk2G3b7KC2cX3nz8_WnR--Pv1fOlm_2N7uqDkfVAbRMmlfxPlN3ygVU2a4oZs28t1ZrmLWJ6bXuVqulw4zwNSP8Ag2">
                        <input type="hidden" name="hpgrequestid" data-bind="value: svr.sessionId" value="2b09a047-26bf-43b0-8997-63586e021900">
                        <input type="hidden" id="i0327" data-bind="attr: { name: svr.sFTName }, value: flowToken" name="flowToken"
                          value="AQABIQEAAADW6jl31mB3T7ugrWTT8pFeQWR4gdC6VJkA2nJMooZ4O8ZB0dUHY0J-Rh6bM_BSaWsQjoF4bvaDZgRfxSdnfk2s_W1z1VwTPxaQ0sf4XIAptAZZ3QQ0FrVop0wCgH6GXUoIPTA3BMeTAvazWcWUYBzNLFfWVFu0TqJ4bMPJvJ7Bpk0Uy1rNxXDq2_unwByMwVv6RMQM_NEWQ2zAy9sfNZ-mEb6vtTvgzPkIPlP-4yR14fTBybP9cBTFVf4A_-2GZVUQoX8A5zEHXSx-_wb2sa5GM4U8FjQslArJaTdAgltQgXKc-EYuY1EGl5atEA2cifqxjxPKMMa-Ahj2Rqf19z8L3jyEuYFqUI95XPyErNmynpEdMLwwm-1ywkfB8mWYr8ewLnTc5mtRU4X12xCwoipjM2w8YdkIAMILzrFriMKH2gU6TK3NVGXLhsNHfwzp2N7WxT_tkepmB9y0UPeiiKx0pXUnr8xgo37awLI9VBgg_bpmN3KNEWZsdYtSXhepD4WRli2ez1OYMtER4P9j-05Cl7HeBcbJfNO13QxRN6YNSmDJKJ8N8RLDQ1zyI-CVACaCCffwrLmEzfVrRZyxNl5ZukEw0HIh2gMSMLI9wzwQ9SAA">
                        <input type="hidden" name="PPSX" data-bind="value: svr.sRandomBlob" value="">
                        <input type="hidden" name="NewUser" value="1">
                        <input type="hidden" name="FoundMSAs" data-bind="value: svr.sFoundMSAs" value="">
                        <input type="hidden" name="fspost" data-bind="value: svr.fPOST_ForceSignin ? 1 : 0" value="0">
                        <input type="hidden" name="i21" data-bind="value: wasLearnMoreShown() ? 1 : 0" value="0">
                        <input type="hidden" name="CookieDisclosure" data-bind="value: svr.fShowCookieBanner ? 1 : 0" value="0">
                        <input type="hidden" name="IsFidoSupported" data-bind="value: isFidoSupported() ? 1 : 0" value="1">
                        <input type="hidden" name="isSignupPost" data-bind="value: isSignupPost() ? 1 : 0" value="0">
                        <!-- ko ifnot: svr.fShouldSupportTargetCredentialForRecovery --><!-- /ko -->
                        <!-- ko if: svr.fEnableDFPIntegration -->
                        <input type="hidden" name="DfpArtifact" data-bind="value: dfpResult()" value="">
                        <!-- /ko -->
                        <!-- ko if: svr.fShouldSupportTargetCredentialForRecovery && targetCredentialForRecovery() --><!-- /ko -->
                        <div data-bind="component: { name: 'instrumentation-control',
            publicMethods: instrumentationMethods,
            params: { serverData: svr } }">
                          <input type="hidden" name="i19" data-bind="value: timeOnPage" value="">
                        </div>
                        <!-- /ko -->
                      </div>
                      <!-- ko if: $page.showFedCredAndNewSession -->
                      <!-- ko ifnot: svr.fUsePromotedFedCredTypesArray --><!-- /ko -->
                      <!-- ko if: svr.fUsePromotedFedCredTypesArray -->
                      <!-- ko if: $page.showFedCredButtons -->
                      <div data-bind="component: { name: 'fed-cred-buttons-control',
            params: {
                serverData: svr,
                fedCredOptions: $page.otherSigninOptions },
            event: {
                fedCredButtonClick: $page.otherSigninOptionsButton_onClick } }"><!--  -->
                        <!-- ko withProperties: { '$fedCredButtonsControl': $data } -->
                        <div data-bind="css: { 'app': $page.backgroundLogoUrl }, externalCss: { 'promoted-fed-cred-box': true }" class="promoted-fed-cred-box ext-promoted-fed-cred-box">
                          <div class="promoted-fed-cred-content" data-bind="css: {
        'animate': $page.useCssAnimations &amp;&amp; $page.animate(),
        'slide-out-next': $page.animate.isSlideOutNext,
        'slide-in-next': $page.animate.isSlideInNext,
        'slide-out-back': $page.animate.isSlideOutBack,
        'slide-in-back': $page.animate.isSlideInBack,
        'app': $page.backgroundLogoUrl }">
                            <!-- ko ifnot: svr.fIsQrCodePinSupported --><!-- /ko -->
                            <!-- ko if: svr.fIsQrCodePinSupported -->
                            <!-- ko foreach: $fedCredButtonsControl.fedCredOptions -->
                            <div class="tile-container" data-bind="css: { 'binaryChoice list': svr.fSupportWindowsStyles }">
                              <div class="row tile">
                                <div class="table" role="button" tabindex="0" data-bind="
                    css: { 'list-item': svr.fSupportWindowsStyles },
                    pressEnter: $fedCredButtonsControl.fedCredButton_onClick,
                    click: $fedCredButtonsControl.fedCredButton_onClick,
                    ariaLabel: $data.text" aria-label="Sign-in options">
                                  <div class="table-row">
                                    <div class="table-cell tile-img medium">
                                      <!-- ko component: 'accessible-image-control' --><!-- ko if: (isHighContrastBlackTheme || hasDarkBackground || svr.fHasBackgroundColor) && !isHighContrastWhiteTheme --><!-- /ko -->
                                      <!-- ko if: (isHighContrastWhiteTheme || (!hasDarkBackground && !svr.fHasBackgroundColor)) && !isHighContrastBlackTheme -->
                                      <!-- ko template: { nodes: [darkImageNode], data: $parent } --><img class="tile-img medium" role="presentation" data-bind="addEventHandlers, attr: { src: $data.darkIconUrl }"
                                        src="https://aadcdn.msauth.net/shared/1.0/content/images/signin-options_3e3f6b73c3f310c31d2c4d131a8ab8c6.svg"><!-- /ko -->
                                      <!-- /ko --><!-- /ko -->
                                    </div>
                                    <div class="table-cell text-left content" data-bind="css: { 'content': !svr.fSupportWindowsStyles }">
                                      <!-- ko if: $data.showPreviewBadge --><!-- /ko -->
                                      <!-- ko ifnot: $data.showPreviewBadge -->
                                      <div data-bind="text: $data.text, attr: { 'data-test-id': $data.testId }" data-test-id="signinOptions">Sign-in options</div>
                                      <!-- /ko -->
                                      <!-- ko if: $data.showHelpIcon --><!-- /ko -->
                                    </div>
                                  </div>
                                </div>
                              </div>
                              <!-- ko if: $data.showHelpIcon --><!-- /ko -->
                            </div>
                            <!-- /ko -->
                            <!-- /ko -->
                          </div>
                        </div>
                        <!-- /ko -->
                      </div>
                      <!-- /ko -->
                      <!-- ko if: $page.showSignupFedCredButtons --><!-- /ko -->
                      <!-- /ko -->
                      <!-- ko if: svr.fShowQrCodePinOption --><!-- /ko -->
                      <!-- ko if: $page.newSession --><!-- /ko -->
                      <!-- /ko -->
                      <!-- ko if: $page.showDebugDetails --><!-- /ko -->
                    </div>
                  </div>
                  <!-- /ko -->
                </div>
              </div>
            </div>
            <!-- ko if: $page.paginationControlHelper.showFooterControl -->
            <div id="footer" role="contentinfo" data-bind="
                externalCss: {
                    'footer': true,
                    'background-always-visible': $page.backgroundLogoUrl }" class="footer ext-footer">
              <div data-bind="component: { name: 'footer-control',
                    publicMethods: $page.footerMethods,
                    params: {
                        serverData: svr,
                        useDefaultBackground: true,
                        hasDarkBackground: $page.backgroundLogoUrl(),
                        showLinks: true,
                        showFooter: $page.showFooter(),
                        hideTOU: $page.hideTOU(),
                        termsText: $page.termsText(),
                        termsLink: $page.termsLink(),
                        hidePrivacy: $page.hidePrivacy(),
                        privacyText: $page.privacyText(),
                        privacyLink: $page.privacyLink() },
                    event: {
                        agreementClick: $page.footer_agreementClick,
                        showDebugDetails: $page.toggleDebugDetails_onClick } }"><!-- ko if: !hideFooter && (showLinks || impressumLink || showIcpLicense) -->
                <div id="footerLinks" class="footerNode text-secondary footer-links ext-footer-links" data-bind="externalCss: { 'footer-links': true }">
                  <!-- ko if: showFooter --><!-- /ko -->
                  <!-- Set attr binding before hasFocusEx to prevent Narrator from losing focus -->
                  <a id="moreOptions" href="#" role="button" data-bind="
        click: moreInfo_onClick,
        ariaLabel: str['CT_STR_More_Options_Ellipsis_AriaLabel'],
        attr: { 'aria-expanded': showDebugDetails().toString() },
        hasFocusEx: focusMoreInfo(),
        externalCss: {
            'footer-content': true,
            'footer-item': true,
            'debug-item': true,
            'has-background': !useDefaultBackground,
            'background-always-visible': hasDarkBackground }" aria-label="Click here for troubleshooting information" aria-expanded="false" class="footer-content ext-footer-content footer-item ext-footer-item debug-item ext-debug-item">...</a>
                </div>
                <!-- /ko -->
                <!-- ko if: svr.fShowLegalMessagingInline && showLinks --><!-- /ko -->
              </div>
            </div>
            <!-- /ko -->
          </div>
        </div>
      </div>
      <!-- /ko -->
    </div>
    <!-- /ko -->
    <!-- /ko -->
    <!-- /ko -->
  </div>
  <!-- /ko -->
</form>

POST

<form data-bind="postRedirectForm: postRedirect" method="POST" aria-hidden="true" target="_top"></form>

Text Content

Sign in




Can't access your account?

Having trouble with MFA?

Use of this service is governed by University IT regulations. Logging in to
Cardiff University confirms that you accept and agree to be bound by these
regulations.


Sign-in options
...