senati.blackboard.com
Open in
urlscan Pro
54.209.72.221
Public Scan
Submitted URL: http://senati.blackboard.com/
Effective URL: https://senati.blackboard.com/
Submission: On May 16 via api from US — Scanned from DE
Effective URL: https://senati.blackboard.com/
Submission: On May 16 via api from US — Scanned from DE
Form analysis
2 forms found in the DOMName: locale_picker — POST /webapps/portal/execute/changeLocale
<form action="/webapps/portal/execute/changeLocale" method="post" name="locale_picker" target="_top">
<script>
function loadLocale(code) {
document.locale_picker.locale.value = code;
document.locale_picker.submit();
}
FastInit.addOnLoad(function() {
function displayLanguages() {
var $langButton = $('lang-select-button');
var $langMenu = $('lang-list');
function showMenu() {
$langMenu.removeClassName('hide');
$langMenu.setAttribute('aria-hidden', 'false');
$langMenu.setAttribute('aria-expanded', 'true');
$langMenu.setAttribute('aria-pressed', 'true');
$langButton.setAttribute('aria-expanded', 'true');
$langButton.addClassName('expanded');
$langMenu.firstDescendant().firstDescendant().focus();
}
function hideMenu() {
$langMenu.addClassName('hide');
$langMenu.setAttribute('aria-hidden', 'true');
$langMenu.setAttribute('aria-expanded', 'false');
$langMenu.setAttribute('aria-pressed', 'false');
$langButton.setAttribute('aria-expanded', 'false');
$langButton.removeClassName('expanded');
}
//toggle logic
if ($langMenu.hasClassName('hide')) {
showMenu();
} else {
hideMenu();
}
//Press ESC hides the menu
$(document).on('keydown', function(e) {
if (e.which == 27) {
hideMenu();
}
});
$(document).on('click', function(e) {
hideMenu();
});
}
// reveal available languages on click
$('lang-select-button').on('click', 'button', function(e) {
displayLanguages();
e.stopPropagation();
});
});
</script>
<input type="hidden" name="target" value="/webapps/login/?action=login">
<button type="button" class="icon-languages" id="lang-select-button" aria-haspopup="true" aria-expanded="false" aria-controls="lang-list" aria-owns="lang-list" aria-pressed="false"
aria-label="Seleccionar idioma Idioma actual Español (España)"></button>
<ul id="lang-list" class="hide" aria-hidden="true" aria-expanded="false" role="menu">
<li aria-label="English (United States)"><a href="javascript:loadLocale('en_US');" title="English (United States)" lang="en_US">English (United States)</a></li>
<li aria-label="Español (España)"><a href="javascript:loadLocale('es_ES');" title="Español (España)" lang="es_ES">Español (España)</a></li>
</ul>
<input type="hidden" name="locale">
</form>
Name: login — POST /webapps/login/
<form action="/webapps/login/" onsubmit="return validate_form( this, false, true );" method="POST" name="login">
<script type="text/javascript">
function login_openForgotPassword(url) {
var passwordWin = window.open(url, 'forgotPasswordWindow', 'menubar=1,resizable=1,scrollbars=1,status=1,width=850,height=480');
passwordWin.focus();
}
FastInit.addOnLoad(function() {
if (typeof ClientCache !== 'undefined') {
ClientCache.clear();
}
var startingJSessionCookie = getCookie("JSESSIONID");
var guestLocaleCookie = getCookie("guest.session.locale");
deleteCookie("JSESSIONID", "/@@", null, true);
deleteCookie("JSESSIONID", "/courses", null, true);
deleteCookie("JSESSIONID", "/sessions", null, true);
deleteCookie("JSESSIONID", "/systemdata", null, true);
deleteCookie("JSESSIONID", "/images", null, true);
deleteCookie("JSESSIONID", "/images-ltr", null, true);
deleteCookie("JSESSIONID", "/images-rtl", null, true);
deleteCookie("JSESSIONID", "/reportbranding", null, true);
deleteCookie("JSESSIONID", "/reports", null, true);
deleteCookie("JSESSIONID", "/modules", null, true);
deleteCookie("JSESSIONID", "/groupjs", null, true);
deleteCookie("JSESSIONID", "/branding", null, true);
deleteCookie("JSESSIONID", "/queue_tasks", null, true);
deleteCookie("JSESSIONID", "/sponsors", null, true);
deleteCookie("JSESSIONID", "/course_image_main_images", null, true);
deleteCookie("JSESSIONID", "/course_image_2_images", null, true);
deleteCookie("JSESSIONID", "/course_image_nav_images", null, true);
deleteCookie("JSESSIONID", "/org_image_main_images", null, true);
deleteCookie("JSESSIONID", "/org_image_2_images", null, true);
deleteCookie("JSESSIONID", "/org_image_nav_images", null, true);
deleteCookie("JSESSIONID", "/avatar", null, true);
deleteCookie("JSESSIONID", "/bannerthumbnail", null, true);
deleteCookie("JSESSIONID", "/deployment", null, true);
deleteCookie("JSESSIONID", "/content_area", null, true);
deleteCookie("JSESSIONID", "/portfolio", null, true);
deleteCookie("JSESSIONID", "/evidence_area", null, true);
deleteCookie("JSESSIONID", "/public", null, true);
deleteCookie("JSESSIONID", "/pronunciation_audio", null, true);
deleteCookie("JSESSIONID", "", null, true);
deleteCookie("JSESSIONID", "/webapps/login", null, true);
deleteCookie("JSESSIONID", "/webapps/taglibs", null, true);
deleteCookie("JSESSIONID", "/webapps/ws", null, true);
deleteCookie("JSESSIONID", "/webapps/wysiwyg", null, true);
deleteCookie("JSESSIONID", "/bbcswebdav", null, true);
deleteCookie("JSESSIONID", "/webapps/cmsmain", null, true);
deleteCookie("JSESSIONID", "/webapps/xythoswfs", null, true);
deleteCookie("JSESSIONID", "/admin", null, true);
deleteCookie("JSESSIONID", "/colorpalettes", null, true);
deleteCookie("JSESSIONID", "/coursethemes", null, true);
deleteCookie("JSESSIONID", "/common", null, true);
deleteCookie("JSESSIONID", "/fonts", null, true);
deleteCookie("JSESSIONID", "/javascript", null, true);
deleteCookie("JSESSIONID", "/lib", null, true);
deleteCookie("JSESSIONID", "/login", null, true);
deleteCookie("JSESSIONID", "/themes", null, true);
deleteCookie("JSESSIONID", "/ui", null, true);
deleteCookie("JSESSIONID", "/ui-ultra", null, true);
deleteCookie("JSESSIONID", "/learn/api", null, true);
deleteCookie("JSESSIONID", "/webapps/software-updates", null, true);
deleteCookie("JSESSIONID", "/webapps/dataIntegration", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-gate-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/ai", null, true);
deleteCookie("JSESSIONID", "/webapps/goal", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-social-learning-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/api-gateway", null, true);
deleteCookie("JSESSIONID", "/webapps/rubric", null, true);
deleteCookie("JSESSIONID", "/webapps/streamViewer", null, true);
deleteCookie("JSESSIONID", "/webapps/submission-services", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-content-model-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-group-mgmt-LEARN", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-ultra-conversion", null, true);
deleteCookie("JSESSIONID", "/webapps/gradebook", null, true);
deleteCookie("JSESSIONID", "/webapps/assessment", null, true);
deleteCookie("JSESSIONID", "/webapps/videointegration", null, true);
deleteCookie("JSESSIONID", "/webapps/vtbe-tinymce-ephox-hyperlinking", null, true);
deleteCookie("JSESSIONID", "/webapps/vtbe-tinymce-ephox-spelling", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-common-styles-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-xss-filter-whitelist-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-xss-filter-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/vtbe-tinymce", null, true);
deleteCookie("JSESSIONID", "/webapps/bbcms", null, true);
deleteCookie("JSESSIONID", "/webapps/inline-grading", null, true);
deleteCookie("JSESSIONID", "/webapps/taskprogress", null, true);
deleteCookie("JSESSIONID", "/webapps/spreview", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-xss-input-validation-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/portfolio", null, true);
deleteCookie("JSESSIONID", "/webapps/blogs-journals", null, true);
deleteCookie("JSESSIONID", "/webapps/foundations-connector", null, true);
deleteCookie("JSESSIONID", "/webapps/partner-cloud", null, true);
deleteCookie("JSESSIONID", "/webapps/date-management", null, true);
deleteCookie("JSESSIONID", "/webapps/discussionboard", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-selfpeer-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-mygrades-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/assignment", null, true);
deleteCookie("JSESSIONID", "/webapps/bbgs-goal-performance-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/allyintegration", null, true);
deleteCookie("JSESSIONID", "/webapps/operational-data-store", null, true);
deleteCookie("JSESSIONID", "/webapps/Bb-wiki-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/retention", null, true);
deleteCookie("JSESSIONID", "/webapps/caliper", null, true);
deleteCookie("JSESSIONID", "/webapps/consulting-central", null, true);
deleteCookie("JSESSIONID", "/webapps/ultraui", null, true);
deleteCookie("JSESSIONID", "/webapps/notes", null, true);
deleteCookie("JSESSIONID", "/webapps/Bb-McGrawHill-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/ILP-IntegrationService-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-1027954530152-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/school-data-sync", null, true);
deleteCookie("JSESSIONID", "/webapps/foundations-token", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-auth-provider-ldap-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-auth-provider-cas-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/feature-flags", null, true);
deleteCookie("JSESSIONID", "/webapps/auth-provider-foundations", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-data-integration-lis-final-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-data-integration-ims-xml-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-1027720613048-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-data-integration-flatfile-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-data-integration-ss-xml-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/time-time-plgnhndl-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/mdb-sa-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-theme-diff-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bbtextbook", null, true);
deleteCookie("JSESSIONID", "/auth-saml", null, true);
deleteCookie("JSESSIONID", "/webapps/bbcxcourseconversion", null, true);
deleteCookie("JSESSIONID", "/webapps/bbcxcommoncartridge", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-financial-aid-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/privacy-disclosure", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-alerts-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/asset-processor", null, true);
deleteCookie("JSESSIONID", "/webapps/building-block-conversion", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-nautilus-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/Bb-mobile-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/plugins", null, true);
deleteCookie("JSESSIONID", "/webapps/cloudstorageintegration", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-telephony-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-mashups-flickr-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-mashups-slideshare-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/goal-mastery", null, true);
deleteCookie("JSESSIONID", "/webapps/collab-ultra", null, true);
deleteCookie("JSESSIONID", "/webapps/achievements", null, true);
deleteCookie("JSESSIONID", "/webapps/blackboard", null, true);
deleteCookie("JSESSIONID", "/webapps/insight-report", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-mashups-youtube-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/scor-scormengine-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/calendar", null, true);
deleteCookie("JSESSIONID", "/webapps/telemetry", null, true);
deleteCookie("JSESSIONID", "/webapps/enterpriseSurvey", null, true);
deleteCookie("JSESSIONID", "/webapps/bbgs-dshbrdfrmwrk-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/cmsadmin", null, true);
deleteCookie("JSESSIONID", "/webapps/attendance", null, true);
deleteCookie("JSESSIONID", "/webapps/portal", null, true);
deleteCookie("JSESSIONID", "/webapps/item-analysis", null, true);
deleteCookie("JSESSIONID", "/webapps/bbgs-GradeJourney-BB5eed7aa3f3eed", null, true);
deleteCookie("JSESSIONID", "/webapps/searchwidgets", null, true);
if (guestLocaleCookie != null) {
setCookie("guest.session.locale", guestLocaleCookie);
}
setCookie("JSESSIONID", startingJSessionCookie);
if (typeof aptrinsic !== 'undefined') {
window.aptrinsic('reset');
}
if (typeof pendo !== 'undefined') {
pendo.clearSession();
}
});
</script>
<div id="loginFormFields" class="clearfix">
<ul id="loginFormList" class="clearfix">
<li class="clearfix">
<label for="user_id">Nombre de usuario</label>
<input type="text" name="user_id" id="user_id" size="25" maxlength="50" autocomplete="off">
</li>
<li class="clearfix">
<label for="password">Contraseña</label>
<input size="25" name="password" id="password" type="password" autocomplete="off">
</li>
<li class="clearfix">
<input id="entry-login" type="submit" value="Iniciar sesión" name="login" class="button expand inverse outline">
</li>
</ul>
<div class="login-form-footer row collapse">
<div class="stay-signed-in small-6 columns text-left">
</div>
<div class="small-6 columns text-right">
<a href="/webapps/blackboard/password" onclick="login_openForgotPassword('/webapps/blackboard/password');return false;">¿Ha olvidado su contraseña?</a>
</div>
</div>
</div>
<script src="/javascript/qrcodejs/qrcode.min.js"></script>
<dialog id="mfa-registration" role="dialog" class="mfa-modal-container" aria-modal="true" style="display: none;">
<div class="mfa-registration-modal mfa-modal" aria-labelledby="mfa-registration-title" aria-describedby="mfa-registration-description">
<div class="mfa-modal-title">
<h1 id="mfa-registration-title">Autenticación de múltiples factores</h1>
</div>
<div class="registration-modal-body">
<div id="mfa-registration-description" class="registration-modal-body-description">
<div>
<span>Paso 1</span>
<p>Descargue e instale en su teléfono cualquier aplicación de autenticación (por ejemplo, <strong>Microsoft Authenticator, Google Authenticator o Authy</strong>).</p>
</div>
<div>
<span>Paso 2</span>
<p class="web-content">Abra la aplicación de autenticación y escanee la imagen que encontrará a continuación con la cámara de su teléfono o copie la clave.</p>
<p class="mobile-content">Abra la aplicación de autenticación y copie la clave a continuación.</p>
</div>
</div>
<div class="registration-qr-code">
<div class="qr-code-img" id="qrcode" tabindex="-1" aria-hidden="true" title="${mfaQRUri}"><canvas width="120" height="120" style="display: none;"></canvas><img
src="data:image/png;base64,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"
style="display: block;"></div>
<input type="hidden" id="qr-uri" tabindex="-1" aria-hidden="true" value="${mfaQRUri}">
<div class="secret-key-container">
<p id="secretkey">${mf aSec retK ey}</p>
<div class="copy-key">
<a id="copy-secret-key" tabindex="0" onclick="copyTextToClipboard();">Copiar clave</a>
<div id="copy-feedback" class="copyfeedback">
<span style="padding: 4px">-</span>
<div class="copy-success">
<span role="alert" aria-live="assertive" style="color: #007D2C;font-size: 12px;line-height: 18px;">Se copió la clave</span>
<img class="check-icon" src="/images/ci/icons/complete.svg" aria-hidden="true">
</div>
</div>
</div>
</div>
</div>
<div class="next-progress-info">
<span>Paso 3</span>
<p id="next-progress-description">Pulse continuar para escribir el código y asociarlo con su cuenta</p>
</div>
</div>
<div class="modal-footer">
<button id="reg-cancel-button" class="modal-button button-cancel">Cancelar</button>
<button id="reg-next-button" class="modal-button button-next">Siguiente</button>
</div>
</div>
</dialog>
<script type="text/javascript">
// Initialize QRCode with the provided URI and set display parameters
var qrcode = new QRCode(document.getElementById("qrcode"), {
text: document.getElementById("qr-uri").value,
width: 120,
height: 120,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.H
});
// Event listener for the 'Next' button click in the registration dialog
const nextButton = document.getElementById('reg-next-button');
nextButton.addEventListener('click', function(event) {
event.preventDefault();
// Hide registration dialog and show verification dialog
const registrationDialog = document.getElementById('mfa-registration');
const verificationDialog = document.getElementById('mfa-totp-verification');
const inputField = document.getElementById('totp-verification-input');
registrationDialog.style.display = 'none';
verificationDialog.style.display = 'flex';
inputField.focus();
// Update hidden input values to manage UI states
document.getElementById('showMFARegistration').value = 'false';
document.getElementById('showMFAVerification').value = 'true';
document.getElementById('showMFASuccessFul').value = 'false';
});
// Event listener for the 'Cancel' button click in the registration dialog
const regCancelButton = document.getElementById('reg-cancel-button');
regCancelButton.addEventListener('click', function(event) {
event.preventDefault();
// Navigate to login page.
window.location.href = '/webapps/login/?action=logout';
});
// Function to add a space after every 4 characters in the secret key
function formatSecretKey() {
const secretKeyElement = document.getElementById('secretkey');
const secretKeyText = secretKeyElement.textContent;
const formattedSecretKey = secretKeyText.replace(/(.{4})/g, '$1 ');
secretKeyElement.textContent = formattedSecretKey;
}
// Call the function to format the displayed secret key
formatSecretKey();
// Function to copy text to clipboard
function copyTextToClipboard(text) {
const textArea = document.createElement('textarea');
textArea.value = text;
document.body.appendChild(textArea);
textArea.select();
const copykey = document.execCommand('copy');
document.body.removeChild(textArea);
return copykey;
}
// Event listener for the 'Copy' button click to copy the secret key to clipboard
function handleCopykeyEvent() {
event.preventDefault();
const secretKeyElement = document.getElementById('secretkey');
const secretKeyText = secretKeyElement.textContent;
const unformattedSecretKey = secretKeyText.replace(/\s+/g, '');
copyTextToClipboard(unformattedSecretKey);
const copyFeedback = document.getElementById('copy-feedback');
copyFeedback.style.display = 'flex';
setTimeout(function() {
copyFeedback.style.display = 'none';
}, 10000);
document.getElementById('copy-secret-key').focus();
}
document.getElementById('copy-secret-key').addEventListener('click', handleCopykeyEvent);
document.getElementById('copy-secret-key').addEventListener('keydown', function(event) {
if (event.key === 'Enter' || event.code === 'Space') {
handleCopykeyEvent(event);
}
});
</script>
<dialog id="mfa-totp-verification" class="mfa-modal-container" style="display: none;">
<div class="mfa-verification-modal mfa-modal" role="dialog" aria-modal="true" aria-labelledby="mfa-verification-title">
<div class="mfa-modal-title">
<h1 id="mfa-verification-title">Autenticación de múltiples factores</h1>
</div>
<div class="verification-modal-body">
<div class="verification-modal-body-description">
<label for="totp-verification-input" class="custom-label">Escriba el código</label>
<p id="mfa-verification-description">Escriba el código temporal de 6 dígitos generado con la aplicación de autenticación</p>
</div>
<div id="totp-verification-input-container" class="verification-input">
<input name="secondaryAuthToken" id="totp-verification-input" type="text" onkeypress="return validateTOTP(event)" maxlength="6" tabindex="0" placeholder="000000" autocomplete="off" aria-describedby="mfa-verification-description"
aria-invalid="false">
</div>
<div id="loading-spinner" class="centered">
<div class="loader-outer">
<div id="loader">
<div class="loader-inner"></div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button id="totp-back-button2" class="modal-button button-back">Volver</button>
<button id="totp-submit-button" class="modal-button button-submit" type="submit" onclick="showLoadingSpinner();" disabled="">Enviar</button>
</div>
</div>
</dialog>
<script>
window.onload = function() {
const totpInput = document.getElementById("totp-verification-input");
if (totpInput) {
totpInput.focus();
}
}
function validateTOTP(event) {
const inputField = document.getElementById('totp-verification-input');
const key = event.key;
if ((key >= '0' && key <= '9') || key === 'Backspace' || (event.metaKey && key === 'a')) // for safari browser compatablity
{
return true; // Allow
} else if (key === 'Enter') {
if (inputField.value.length !== 6) {
event.preventDefault();
} else {
showLoadingSpinner();
return true;
}
} else {
return false; // Block
}
}
const inputField = document.getElementById('totp-verification-input');
// To enable/disable the submit button based on input value.
inputField.addEventListener('keyup', function() {
const submitButton = document.getElementById('totp-submit-button');
submitButton.disabled = !(inputField.value.length === 6);
});
inputField.addEventListener('input', function() {
const errorMessageContainer = document.getElementById('totp-error');
if (errorMessageContainer) {
errorMessageContainer.style.display = 'none'; // Hide the error message on focus
}
});
function showLoadingSpinner() {
const spinner = document.getElementById('loading-spinner');
const inputField = document.getElementById('totp-verification-input');
const inputContainer = document.getElementById('totp-verification-input-container');
const errorMessage = document.getElementById('errorMessage');
const backbutton1 = document.getElementById('totp-back-button1');
const backbutton2 = document.getElementById('totp-back-button2');
if (inputField.value.length === 6 && !errorMessage) {
inputContainer.style.display = 'none';
spinner.style.display = "flex";
if (backbutton1) {
backbutton1.disabled = true;
}
if (backbutton2) {
backbutton2.disabled = true;
}
} else if (errorMessage) {
spinner.style.display = 'none';
inputContainer.style.display = 'flex';
inputField.setAttribute('aria-invalid', 'true');
}
}
function clearTOTPCode() {
document.getElementById('totp-verification-input').value = '';
}
const totpButton2 = document.getElementById('totp-back-button2');
if (totpButton2) {
totpButton2.addEventListener('click', function(event) {
event.preventDefault();
clearTOTPCode();
window.location.href = '/webapps/login/?action=logout';
});
}
</script>
<dialog id="mfa-registration-success" role="dialog" class="mfa-modal-container" aria-modal="true" style="display: none;">
<div class="success-modal mfa-modal" tabindex="0" aria-labelledby="mfa-success-title" aria-describedby="mfa-success-description">
<div class="mfa-modal-title">
<h1 id="mfa-success-title">Autenticación de múltiples factores</h1>
</div>
<div class="modal-success-body">
<div id="mfa-success-description" class="success-description">
<div>
<span>Ya está todo listo</span>
<p>Habilitó la autenticación de múltiples factores mediante la aplicación de autenticación.</p>
</div>
<div>
<p class="web-content">Le solicitaremos un código de inicio de sesión cada vez que inicie sesión.</p>
<p class="mobile-content">Le solicitaremos un código de inicio de sesión cada vez que inicie sesión en un dispositivo que no reconozcamos.</p>
</div>
</div>
</div>
<div class="modal-footer">
<button id="mfa-registration-succes-button" class="modal-button button-done">Listo</button>
<input type="hidden" id="mfaSuccessfulNavUrl" value="${mfaSuccessfulNavUrl}">
</div>
</div>
</dialog>
<script>
const sucessNavButton = document.getElementById('mfa-registration-succes-button');
sucessNavButton.addEventListener('click', function(event) {
event.preventDefault();
const navUrl = document.getElementById('mfaSuccessfulNavUrl').value;
window.location = navUrl;
});
</script>
<input type="hidden" name="showMFARegistration" id="showMFARegistration" value="$showMFARegistration">
<input type="hidden" name="showMFAVerification" id="showMFAVerification" value="$showMFAVerification">
<input type="hidden" name="showMFASuccessFul" id="showMFASuccessFul" value="$showMFASuccessFul">
<input type="hidden" name="action" value="login">
<input type="hidden" name="new_loc" value="">
<input type="hidden" name="blackboard.platform.security.NonceUtil.nonce.ajax" value="995f6c56-b662-4bb8-92d8-fd60b83af534">
</form>
Text Content
* English (United States) * Español (España) VER OPCIONES Habilite JavaScript en su navegador para que funcione la aplicación Blackboard. * Nombre de usuario * Contraseña * ¿Ha olvidado su contraseña? AUTENTICACIÓN DE MÚLTIPLES FACTORES Paso 1 Descargue e instale en su teléfono cualquier aplicación de autenticación (por ejemplo, Microsoft Authenticator, Google Authenticator o Authy). Paso 2 Abra la aplicación de autenticación y escanee la imagen que encontrará a continuación con la cámara de su teléfono o copie la clave. Abra la aplicación de autenticación y copie la clave a continuación. ${mf aSec retK ey} Copiar clave - Se copió la clave Paso 3 Pulse continuar para escribir el código y asociarlo con su cuenta Cancelar Siguiente AUTENTICACIÓN DE MÚLTIPLES FACTORES Escriba el código Escriba el código temporal de 6 dígitos generado con la aplicación de autenticación Volver Enviar AUTENTICACIÓN DE MÚLTIPLES FACTORES Ya está todo listo Habilitó la autenticación de múltiples factores mediante la aplicación de autenticación. Le solicitaremos un código de inicio de sesión cada vez que inicie sesión. Le solicitaremos un código de inicio de sesión cada vez que inicie sesión en un dispositivo que no reconozcamos. Listo Iniciar sesión con una cuenta de terceros * Acceder con O365 * Iniciar sesión con el dominio senati.edu.pe Ingresa con tu correo @senati.pe CERRAR Bienvenido a la plataforma de educación electrónica de Blackboard —diseñada para permitir que las innovaciones educativas lleguen a cualquier lugar mediante la conexión de las personas y la tecnología © 1997-2019 Blackboard Inc. Todos los derechos reservados. Biblioteca Online Correo Blackboard Learn CONTENIDO PRIVACIDAD, COOKIES Y TÉRMINOS DE USO Blackboard recopilará, usará y almacenará la información personal que sea necesaria para usar esta aplicación y las funcionalidades relacionadas. Blackboard manipula esta información en nombre de su institución. La aplicación usa cookies que se requieren para ofrecer las funcionalidades que usted necesita. Para obtener más información sobre el uso de cookies y el modo en que Blackboard usa la información personal en nombre de su institución, lea la Declaración de privacidad de Blackboard. Al seleccionar "Aceptar", acepta las Condiciones de uso de Blackboard. Aceptar