This system may contain and is approved up to Controlled Unclassified Information (CUI)

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
ConfiForms Form Definition
additionalFormAdminsWEB-DEV
formSuperUserszzafreeman
hideAdminUItrue
formNameRequestorIdentify
autoDeletetrue
bypassAttachmentCreatePermissiontrue
secureStoragetrue
saveButtonLabelSubmit
readonlyAfterRegistrationtrue
showOnlyOwnRecordstrue


Field Definitions: This is the area where you define the fields 

-----------------------------------------------------------------------------------

Captcha Access Section

CaptchaVerifiedComplete the CAPTCHA to

...

Submitcaptchatrue

...



-

...

CaptchaValueCaptchaValuetext

*CaptchaValue=[entry.CaptchaVerified]Set valuetrueCaptchaVerified

----------------------------------------------------------------------------------

...

Requestor Identify Section

Enter your First NameFirstNameFirst Nametexttrue

Middle InitialMiddleInitialMiddle Initial text

...

Last NameLastNameLast Nametexttrue

Email AddressEmailEmail Addresstexttrue

(XXX) XXX-XXXXPhoneNumbertruePhone Number

...

texttrue^

...

\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$

EntityTypeRequestor Entity Type

...

false[USMil=US Military (Active Duty, National Guard, Reserver)|USGS=US DoD Civilian (GS)|USSeta=US DoD SETA|USDoDCtr=US DoD Contractor/Subcontractor|]Please Select One falseradio_group


Hidden field and rule for normalizing the phone number

PhoneNumberFormattedPhoneNumberFormattedtext

setPhoneNumberValue(formName, formId)Run custom JavaScripttruePhoneNumber

-----------------------------------------------------------------------------------

DoD Organizational Affiliation Section

Us DOD Activity Code

US DoD Activity/Office Code

...

DoDOrgAffiliationUS DoD Activity/Office Codetext


DoD Contractor PreDefined Organizations

OrgSelectionOrganizationfalse[OI_HII=MAF DMO O&I Team (HII and subs)|Other=Other|]select



DoD Contractor  Additional Fields

OrganizationOrgNameOrganization Nametext

OrgAddress1Address Line 1text

OrgAddress2Address Line 2text

OrgCityCitytext

OrgStateStatetext

...


Rules to Hide and Show addition fields

...


!EntityType:

...

Contractors:trueOrgAffiliationHide containerContractors#propertrue

...

USDoDCtrOrgName, OrgAddress1, OrgAddress2, OrgCity, OrgStateHide container

...

EntityType#contractorAffiliationtrue

!(EntityType:USMil OR EntityType:USGS OR EntityType:USSeta)DoDOrgAffiliationHide containerEntityType#dodAffiliationtrue

EntityType:USDoDCtr OR EntityType:USMil OR EntityType:USGS OR EntityType:USSetaDoDOrgAffiliationHide containerEntityType#affiliationPlaceholdertrue

!OrgSelection:OtherHide containerOrgSelection#org-othertrue


----------------------------------------------------------------------------------

Sponsoring Activity Section

SponsActivitySponsoring Activityfalse[1=

...

MAF DMO HII/Sub-Contractor|2=Government (ALFCMC/WNR MAF DMO PMO)|3=C-5|4=C-17|5=C-130J|6=KC-46|7=KC-135|8=Other|]selecttrue



------------------------------------------------------------------------------------

Multi Factor Authentication type


MultiFactorMulti-Factor Authentication Typefalse[CAC=CAC|

...

DUOSOFT=Duo Mobile App|DUOHARD=Duo Hard Token|]selecttrue


--------------------------------------------------------------------------------------

CAC Fields

fillCacInfoCollect user information from CACcheckbox

Not startedcacFetchStatusCAC Information Collection StatusNot Startedread_only

|subject|undefinedcacSubjectCAC Subjecthttps://clientcert.memorsolutions.com/client-cert-apitext

cacJSONCAC JSONtextarea



MultiFactor:CACShow containerMultiFactor#cacInfoCollectiontrue

fillCacInfo:truegetCacInfo(formName,formId)Run custom JavaScripttruefillCacInfo

fillCacInfo:falsecfResetValue(formId,'cacSubject');cfResetValue(formId,'cacJSON');cfSetValue(formId,'cacFetchStatus', 'Not started')Run custom JavaScriptfillCacInfo



--------------------------------------------------------------------------------------

Cybersecurity Training Certificate Section


CyberCertCybersecurity Training CertificateUpload Cybersecurity Training Certificate Herefile

...

CaptchaVerifiedtrue

...

This would be the main form

CaptchaValuetrue

...


------------------------------------------------------------------------------------

IP Catcher

IPCatcherIP Addresstrueip




----------------------------------------------------------------------------------------

Sends Info to Jira New Account Project

Create JIRA IssueonCreated







 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Below is where the Fields are shown on the page. 

RequestorIdentify

...

Your MAF DMO request has been submitted. Thank you for your interest in becoming part of the MAF DMO community. Our support team will route your request for verification of identity and approval by the respective sponsor. This process normally takes 2 business days, but may be longer in certain circumstances. Our team will reach out to you via the registered e-mail or phone number for any further communication.EmbeddedPlease confirm that you are ready to submit your request.#main-formRequestor Identify

 FirstNametrueINLINE

 MiddleInitialtrueINLINE

 LastNametrueINLINE

PhoneNumbertrueINLINE

EmailtrueINLINE  

EntityTypetrueINLINE

   Contractors/Sub-Contractors Check this Box Contractors

...

OrgAffiliationtruetrue

     

                                         

                      

affiliationPlaceholderaffiliationPlaceholderOrganizational Affiliation:


dodAffiliationdodAffiliationOrganizational Affiliation: DoD

DoDOrgAffiliationtrue

contractorAffiliationcontractorAffiliationOrganizational Affiliation: DoD Contractorflex-containerflex-item-leftOrgSelectiontrueorg-otherflex-item-right

OrgNametrue

OrgAddress1true

OrgAddress2true

OrgStatetrue

OrgCitytrue

Sponsoring ActivitySponsActivitytruetrueMulti-Factor Authentication Type

Access to the MAF DMO site requires multi-factor authentication (MAF). We support 2 methods to satisfy this requirement:

  1. Authentication using a DoD issued Common Access Card (CAC)
  2. Authentication using username and password, augmented by a second factor using Duo. Duo supports authentication using push verification or one-time passcode (OTP) using the Duo mobile app. Alternatively, Duo supports hardware tokens.

When electing which method to chose below, consider the locations and system you expect to access the web site from, and select the method that will best support access from that environment. (e.g. if you expect to require access the website from a location where you are unable to take you cell phone, you must elect ether CAC or Duo Hard Token).

MultiFactortruetrue

cacInfoCollection


In order to complete your request for using CAC based MFA, we must collect information from it that will be used to create your account. Please insert your CAC into the reader and then click the checkbox below. This will prompt you to select your certificate and enter your PIN. Do not submit your request until the "Status" field indicates success. If the status field indicates failure, you may uncheck and recheck the box to attempt again. If you are unable to successfully retrieve the CAC user info using this form, contact the MAF DMO O&I contractor at mafdmo-it-support@hii-tsd.com for further assistance. 

fillCacInfotrue     cacFetchStatustrue



Cyber Security Training Certificate

Access to the MAF DMO website requires verification that you have completed cyber security training, such as the DISA Cyber Awareness Challenge or equivalent corporate training. This training must have been completed within the last 12 months. Continued access to the MAF DMO web site will require maintaining cyber security training annually.



If you are able, uploading your cyber security training certificate here now will help expedite the process of verifying your eligibility for access to the MAF DMO Website.

No cyber security certificate file has been uploaded yet.CyberCert

captcha-boxCAPTCHA Verification

CaptchaVerifiedtrue

HTML
    <style>
      span[class^='i_holdingrow_'] label {
        width: 150px;
        max-width: 250px;
        display: inline-block;
        vertical-align: baseline;
      }
      span[id^='i_holdingrow_EntityType'] label {
        width: 500px;
        max-width: 500px;
        padding-left: 10px;
      }
      select[id^='i_OrgSelection'] {
        width: 300px !important;
        max-width: 500px !important;
      }
      label[id^='i_labelfor_MultiFactor'] {
        width: 300px !important;
        max-width: 500px !important;
      }
      label[id^='i_labelfor_fillCacInfo'],
      label[id^='i_labelfor_cacFetchStatus'] {
        width: auto !important;
        max-width: 500px !important;
        padding-right: 10px !important;
        vertical-align: baseline;
      }
      label[id^='i_labelfor_DoDOrgAffiliation'] {
        width: auto !important;
        padding-right: 10px !important;
      }
      .flex-container {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
      }
      .flex-item-left {
        flex-grow: 0;
        padding-right: 20px;
      }
      .flex-item-mid {
        flex-grow: 1;
        padding-right: 20px;
      }
      .flex-item-right {
        flex-grow: 8;
        padding-right: 20px;
      }
      @media only screen and (max-width: 1427px) {
        .flex-item-right {
          padding-top: 20px;
        }
      }
    </style>
HTML
<script>
function formatPhoneNumber(phoneNumberString) {
  var match = phoneNumberString.match(
    /^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$/,
  );
  if (match) {
    return `${match[1] ? '+' + match[1] + ' ' : ''}(${match[2]}) ${match[3]}-${match[4]}`;
  }
  return '';
}

function setPhoneNumberValue(formName, formId) {
  AJS.$(formName)
    .find('#i_PhoneNumberFormatted')
    .val(formatPhoneNumber(AJS.$(formName).find('#i_PhoneNumber').val()));
}

AJS.$('#rw_search_container').hide();
</script>

HTML
<script>
const getCacURL = 'https://clientcert.secure.mafdmo.com/client-cert-api';

async function fetchCacInfo() {
  let done = false;
  let fetchResult = { cacInfo: undefined, retryCount: 0 };

  console.log('Starting fetch operation some more...');

  while (!done && fetchResult.retryCount < 10) {
    console.log(`Fetching CAC info: ${fetchResult.retryCount}`);

    const response = await fetch(getCacURL, {
      credentials: 'include',
      mode: 'cors',
    }).catch((reason) => {
      console.error('fetch() promise failed:');
      console.error(reason);
      return undefined;
    });

    if (response) {
      await response
        .json()
        .then((value) => {
          fetchResult = { ...fetchResult, cacInfo: value };
          const cacInfoStr = JSON.stringify(value, null, 2);
          console.log('cacInfo:');
          console.log(cacInfoStr);
          done = true;
        })
        .catch((reason) => {
          console.error('response.json() promise failed:');
          console.error(reason);
        });
    }

    fetchResult.retryCount++;
  }

  if (!done) {
    console.log(`Fetch not done after ${fetchResult.retryCount} retries`);
  }

  console.log(JSON.stringify(fetchResult, null, 2));

  return fetchResult;
}

async function getCacInfo(formName, formId) {
  if (!formName) return;

  let fetchResult;

  cfSetValueWithEventPropagation(formId, 'cacFetchStatus', 'Fetching user information from CAC...');

  try {
    fetchResult = await fetchCacInfo();
  } catch (e) {
    cfSetValueWithEventPropagation(formId, 'cacFetchStatus', 'Failure accessing CAC certificate.');
    console.error('Error: ');
    console.error(JSON.stringify(e, null, 2));
    return;
  }

  console.log('fetchResult:');
  console.log(JSON.stringify(fetchResult, null, 2));

  if (fetchResult.cacInfo !== undefined) {
    cfSetValueWithEventPropagation(formId, 'cacSubject', fetchResult.cacInfo.subject);
    cfSetValueWithEventPropagation(formId, 'cacJSON', JSON.stringify(fetchResult.cacInfo, null, 2));
    cfSetValueWithEventPropagation(
      formId,
      'cacFetchStatus',
      'CAC user info successfully retrieved.',
    );
  } else {
    cfSetValueWithEventPropagation(
      formId,
      'cacFetchStatus',
      `Failure retrieving CAC information after ${fetchResult.retryCount} tries`,
    );
  }
}

</script>

...

Organization NameOrgNametrue

 Address OrgAddress1true 

CityOrgCitytrue

StateOrgStatetrue

...

SponsActivitytruetrue

...

MultiFactortruetrue

...