OTP ISAPI SSL state

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

The OTP authentication ISAPI extension is not configured correctly, and DirectAccess cannot function as expected.

Knowledge Base article:

Summary

The OTP authentication ISAPI extension is not configured correctly, 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.

4. ISAPI extension is not configured correctly

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.

6. In a browser, type to verify that the ISAPI extension application page opens correctly.

Element properties:

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

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

Source Code:

<UnitMonitor ID="AP.Remote.Access.Monitor.DA_OTP_HEURISTIC_ISAPI_SSL_STATE" Accessibility="Public" Enabled="true" Target="AP.Remote.Access.Class.Otp" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="AP.Remote.Access.Monitor.HeuristicMonitorType" ConfirmDelivery="true">
<Category>Custom</Category>
<AlertSettings AlertMessage="AP.Remote.Access.Monitor.DA_OTP_HEURISTIC_ISAPI_SSL_STATE_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_ISAPI_SSL_STATE_Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="DA_OTP_HEURISTIC_ISAPI_SSL_STATE_Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="DA_OTP_HEURISTIC_ISAPI_SSL_STATE_Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
</OperationalStates>
<Configuration>
<Interval>300</Interval>
<SyncTime/>
<ComponentName>Otp</ComponentName>
<HeuristicId>2148466698</HeuristicId>
<Debug>false</Debug>
</Configuration>
</UnitMonitor>