# AuthenticationModulesType (Complex Type)

### Namespace: http://midpoint.evolveum.com/xml/ns/public/common/common-3

Definition of authentication modules that midPoint is aware about. Each element has a configuration of a particular authentication element instance. Each modules specified in the container must have unique name.

Item Summary
Name | Type | Multiplicity | Description
--- | --- | --- | ---
loginForm | container LoginFormAuthenticationModuleType | [0,-1] | Definition of "login form" module.
httpBasic | container HttpBasicAuthenticationModuleType | [0,-1] | Definition of HTTP BASIC authentication module (RFC 7617).
httpHeader | container HttpHeaderAuthenticationModuleType | [0,-1] | Pseudo-authentication for pre-authenticated users.
saml2 | container Saml2AuthenticationModuleType | [0,-1] | SAML2 authentication module support authentication via Identity provider with SAML2.
oidc | container OidcAuthenticationModuleType | [0,-1] | OpenId Connect authentication module.
mailNonce | container MailNonceAuthenticationModuleType | [0,-1] | Mail nonce authentication module.
smsNonce | container SmsNonceAuthenticationModuleType | [0,-1] | SMS (mobile text message) nonce authentication module.
securityQuestionsForm | container SecurityQuestionsFormAuthenticationModuleType | [0,-1] | Definition of "security questions form" module.
httpSecQ | container HttpSecQAuthenticationModuleType | [0,-1] | Definition of HTTP SecQ module.
ldap | container LdapAuthenticationModuleType | [0,-1] | LDAP authentication module supports authentication via LDAP server.
attributeVerification | container AttributeVerificationAuthenticationModuleType | [0,-1] | The module can be used as an additional verification of the already authenticated user.
focusIdentification | container FocusIdentificationAuthenticationModuleType | [0,-1] | TODO
hint | container HintAuthenticationModuleType | [0,-1] | TODO
other | container OtherAuthenticationModuleType | [0,-1] |
archetypeSelection | container ArchetypeSelectionModuleType | [0,-1] | Module is used for the refining user search based on archetype selection.
correlation | container CorrelationAuthenticationModuleType | [0,-1] | Module is used for the user authentication using the correlation rules.
duo | container DuoAuthenticationModuleType | [0,-1] | Module is used for 2FA authentication.

- ### Items

  - #### loginForm

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    Definition of "login form" module. The module is used for interactive log-in of a user by using HTML forms.

  - #### httpBasic

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    Definition of HTTP BASIC authentication module (RFC 7617).

  - #### httpHeader

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    Pseudo-authentication for pre-authenticated users. Based on HTTP header values.

  - #### saml2

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    SAML2 authentication module support authentication via Identity provider with SAML2.

  - #### oidc

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    OpenId Connect authentication module.

  - #### mailNonce

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    Mail nonce authentication module. Module that sends randomly generated nonce in URL in mail message.

  - #### smsNonce

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    SMS (mobile text message) nonce authentication module. Module that sends randomly generated nonce in mobile text message (SMS).

  - #### securityQuestionsForm

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    Definition of "security questions form" module. The module is used for interactive log-in of a user by answering a set of security questions.

  - #### httpSecQ

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    Definition of HTTP SecQ module. The module is used for quasi-interative log-in of a user by answering a set of security questions. The HTTP SecQ mechanism is similar to HTTP BASIC mechanism, but it is using security questions instead of password.

  - #### ldap

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    LDAP authentication module supports authentication via LDAP server.

  - #### attributeVerification

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    The module can be used as an additional verification of the already authenticated user. Intended for interactive user verification by comparing the specified attribute with the value provided by the user.

  - #### focusIdentification

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    TODO

  - #### hint

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    TODO

  - #### other

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

  - #### archetypeSelection

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    Module is used for the refining user search based on archetype selection. For example, for "lost my username" case the archetypes provide the information about the user who can recover the username and this archetype is later used for the search.

  - #### correlation

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    Module is used for the user authentication using the correlation rules. Rules can be configured in object template per archetype or on global level. For example, for "lost my username" case the archetypes provide the information about correlation rules to be applied.

  - #### duo

    Flags: RAM,runtime

    Multiplicity: [0,-1]

    Display order:

    Module is used for 2FA authentication. Module use duo server for authentication via hardware key of mobile, tablet and so on. We cant use it as only one authentication module. We need some primary authentication module for example saml.