Wifi Enterprise

Enterprise Login Methods

Enterprise Login Methods configure how users authenticate when enrolling for WPA2-Enterprise (802.1X) access. Each method connects Kiwire to an identity provider — from the built-in Kiwire account system to external directories and cloud identity platforms. Multiple instances of each type can be configured, making it possible to support several domains or departments from a single tenant.

'alt' => 'Dashboard overview', 'caption' => 'The default Kiwire dashboard layout', 'screenshot' => true, 'class' => '', ]) Drop images into: public/assets/img/docs/{page}/{filename} --}}
Image not uploaded yet public/assets/img/docs/enterprise-login/overview.png
The Enterprise Login Methods list — method type, instance name, status, and action buttons.

Available Method Types

TypeIdentifierHow it authenticates
Registered Accountregistered-accountVerifies the user's existing Kiwire username and password against the tenant's user database. Best for organisations that manage their own user directory within Kiwire.
Google Logingoogle-loginOAuth2 sign-in via a Google Workspace account. Users are redirected to Google, authenticate, and are returned to the enrolment flow. Domain restriction is enforced via the allowed_email_domain setting.
Microsoft Entramicrosoft-entraOIDC / OAuth2 sign-in via Azure Active Directory (Microsoft Entra ID). Supports multi-tenant and single-tenant Azure applications. Users authenticate with their Microsoft 365 credentials.
Active Directoryactive-directoryDirect LDAP bind against an on-premise Windows Server Active Directory domain controller. Users authenticate with their Windows domain credentials (username + password).

These login methods are distinct from captive portal login methods. Enterprise login methods are used exclusively within Enterprise Journeys for WPA2-Enterprise enrolment flows and do not appear in captive portal journey configuration.

Multi-Instance Support

Each login method type can have multiple configured instances. The method_type column is not unique — instances are distinguished by their name (instance label) and database id. This enables several common scenarios:

  • Two Active Directory instances for two separate Windows domains (e.g., corp.example.com and subsidiary.example.com)
  • Separate Google Login instances for different Google Workspace domains
  • Multiple Microsoft Entra instances pointing to different Azure AD tenants (e.g., main company + acquired company)

Each instance is independently enabled/disabled and can be assigned to a different Enterprise Journey, giving you full control over which authentication method applies to which SSID and user group.

Common Fields (All Types)

The following fields are available on every login method instance regardless of type:

FieldDescription
nameInstance label — a human-readable name to distinguish this instance from others of the same type (e.g., Corp AD – HQ, Corp AD – Branch)
is_activeEnable or disable this login method instance. Disabled instances cannot be selected in a journey.
profile_idThe access profile automatically assigned to users who authenticate through this method. Controls bandwidth, session time, and data limits.
account_expiryHow long (in days) a Kiwire user account created via this method remains valid. Set to 0 for no expiry.
cert_expiryHow long (in days) the client certificate issued during enrolment remains valid. After expiry, the user must repeat the enrolment journey to get a new certificate.
allow_create_accountWhether a new Kiwire user account is automatically created on first successful authentication (for methods that federate an external identity).
auto_activateWhether newly created accounts are immediately activated without admin approval.
allowed_email_domainRestrict authentication to email addresses from specified domains (comma-separated, e.g., example.com,subsidiary.com). Leave blank to allow any domain.
allow_emailWhitelist of individual email addresses always permitted, regardless of domain restrictions.
blacklist_emailIndividual email addresses that are explicitly blocked from authenticating.
blacklist_domainEntire email domains that are blocked (e.g., block all competitor.com addresses).

Microsoft Entra — Extra Fields

In addition to the common fields, the Microsoft Entra type requires these Azure-specific settings:

FieldDescription
azure_tenant_idYour Azure Active Directory tenant ID (GUID). Found in Azure Portal → Azure Active Directory → Overview → Tenant ID.
client_idApplication (client) ID of the registered Azure AD app. Found in Azure Portal → App registrations → your app → Application (client) ID.
client_secretClient secret value generated in Azure Portal → App registrations → your app → Certificates & secrets. Stored encrypted in Kiwire.

When registering the Azure AD app, set the redirect URI to https://your-kiwire-domain/enterprise/auth/entra/callback. Grant the openid, profile, and email API permissions. No admin consent is required for these basic scopes.

Active Directory — Extra Fields

The Active Directory type requires connection details for your on-premise domain controller:

FieldDescription
domain_controllerIP address or hostname of the domain controller (e.g., 192.168.1.10 or dc01.corp.example.com)
account_suffixDomain suffix appended to usernames for the LDAP bind (e.g., @corp.example.com). Users enter only their username; the suffix is added automatically.
admin_usernameService account UPN used for the initial LDAP bind to look up user attributes (e.g., svc-kiwire@corp.example.com). This account requires read access to the directory.
admin_passwordService account password. Stored encrypted at rest.
base_dnThe LDAP search base — the point in the directory tree from which Kiwire searches for users (e.g., DC=corp,DC=example,DC=com)
ad_mapping[]Attribute mapping: specifies which AD attribute maps to each Kiwire user field. See the Attribute Mapping section below.

Active Directory Attribute Mapping

The attribute mapping table tells Kiwire which AD attributes to read and store when a user authenticates. Common mappings:

AD AttributeKiwire Field
mailemail_address
displayNamefullname
telephoneNumberphone_number
departmentdepartment (used for zone auto-assignment rules)
employeeIDemployee_id
sAMAccountNameusername

Certificate Expiry

The cert_expiry field controls how long the client certificate issued during the enterprise journey remains valid. When a certificate expires:

  • The user's device will fail EAP-TLS authentication and be disconnected from the enterprise SSID.
  • The user must revisit the enterprise portal, re-authenticate via the login method, and download a new certificate and configuration profile.
  • The old (expired) certificate record is marked as revoked in the RADIUS certificate store.

Setting cert_expiry to a very short period (e.g., 7 days) increases security but requires users to re-enrol frequently. For unmanaged BYOD devices, a 365-day or longer expiry is typically more practical. For MDM-managed devices, shorter expiry periods are appropriate as re-enrolment can be automated.

Form Structure

The login method configuration form is split into two sections:

  • Core fields (always visible) — instance enable toggle and instance name
  • Advanced Configuration (collapsible) — all remaining fields organised into subsections: Identity Provider Settings, Account Provisioning, and Email Restrictions

The Advanced Configuration section auto-expands when editing an existing instance that already has data configured.

Required Permissions

view-enterprise-login-method · edit-enterprise-login-method