OTP ISAPI extension state

AP.Remote.Access.Monitor.DA_OTP_HEURISTIC_AUTH_RUNNING (UnitMonitor)

The OTP authentication ISAPI extension has stopped, and DirectAccess cannot function as expected.

Knowledge Base article:

Summary

The OTP authentication ISAPI extension has stopped, and DirectAccess cannot function as expected.

Causes

1. OTP is configured incorrectly on the Remote Access server.

2. IIS is not running on the Remote Access server.

3. ISAPI is not installed on the Remote Access server.

Resolutions

1. Check for relevant errors in the Windows Event Viewer.

2. Ensure that OTP is configured correctly in the Remote Access Management console.

3. Apply DirectAccess policy with OTP disabled and then enable OTP again.

4. Verify that OTP settings have been activated on the Remote Access server.

5. Ensure that IIS is installed and running.

Element properties:

TargetAP.Remote.Access.Class.Otp
Parent MonitorSystem.Health.AvailabilityState
CategoryCustom
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeAP.Remote.Access.Monitor.HeuristicMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
OTP ISAPI extension stopped

Error Description - {0}
Error Cause - {1}
Error Resolution - {2}
RunAsDefault

Source Code:

<UnitMonitor ID="AP.Remote.Access.Monitor.DA_OTP_HEURISTIC_AUTH_RUNNING" Accessibility="Public" Enabled="true" Target="AP.Remote.Access.Class.Otp" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="AP.Remote.Access.Monitor.HeuristicMonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="AP.Remote.Access.Monitor.DA_OTP_HEURISTIC_AUTH_RUNNING_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/DataItem/Property[@Name='ErrorDesc']$</AlertParameter1>
<AlertParameter2>$Data/Context/DataItem/Property[@Name='ErrorCause']$</AlertParameter2>
<AlertParameter3>$Data/Context/DataItem/Property[@Name='ErrorResolution']$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="DA_OTP_HEURISTIC_AUTH_RUNNING_Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="DA_OTP_HEURISTIC_AUTH_RUNNING_Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="DA_OTP_HEURISTIC_AUTH_RUNNING_Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Interval>300</Interval>
<SyncTime/>
<ComponentName>Otp</ComponentName>
<HeuristicId>2148466689</HeuristicId>
<Debug>false</Debug>
</Configuration>
</UnitMonitor>