Der AD FS-Windows-Dienst kann nicht gestartet werden, da das AD FS-Dienstkonto nicht auf den privaten Schlüssel für das Tokensignatur- oder Tokenentschlüsselungszertifikat zugreifen kann, das sich in der AD FS-Konfigurationsdatenbank befindet.
Wenn der AD FS-Windows-Dienst erfolgreich gestartet wird, wechselt der Monitor in einen "grünen" Bereich, und die ursprüngliche kritische Warnung wird automatisch aufgelöst.
Diese Bedingung kann auftreten, wenn das Zertifikat im angegebenen Speicher gefunden wird, aber ein Problem beim Zugriff auf den privaten Schlüssel für das Zertifikat besteht. Häufige Ursachen für diese Bedingung:
Das Zertifikat wurde aus einer Quelle installiert, in der der private Schlüssel nicht enthalten war, z. B. einer CER- oder P7B-Datei.
Der private Schlüssel des Zertifikats wurde aus einer Datei (z. B. aus einer PFX-Datei) in einen Speicher importiert, bei dem es sich nicht um den in diesem Ereignis angegebenen Speicher handelt.
Das Zertifikat wurde als Teil einer Zertifikatanforderung generiert, in der die Option "Computerschlüssel" nicht angegeben war.
Der Verbunddienstidentität wurde der Lesezugriff auf den privaten Schlüssel des Zertifikats nicht erteilt.
Mögliche Lösungen für diese Bedingung:
Wenn das Zertifikat aus einer Quelle importiert wurde, die keinen privaten Schlüssel aufweist, wählen Sie ein Zertifikat mit privatem Schlüssel aus, oder importieren Sie das Zertifikat erneut aus einer Quelle, die den privaten Schlüssel enthält (z. B. aus einer PFX-Datei).
Wenn das Zertifikat in einen Benutzerkontext importiert wurde, überprüfen Sie, ob der zuvor angegebene Speicher mit dem Speicher übereinstimmt, in den das Zertifikat importiert wurde.
Wenn das Zertifikat durch eine Zertifikatanforderung generiert wurde, in der die Option "Computerschlüssel" nicht angegeben war, und der Schlüssel als exportierbar gekennzeichnet ist, exportieren Sie das Zertifikat mit einem privaten Schlüssel aus dem Benutzerspeicher in eine PFX-Datei, und importieren Sie es dann erneut direkt in den in der Konfigurationsdatei angegebenen Speicher.
Wenn der Schlüssel nicht als exportierbar gekennzeichnet ist, fordern Sie mithilfe der Option "Computerschlüssel" ein neues Zertifikat an.
Wenn der Verbunddienstidentität der Lesezugriff auf den privaten Schlüssel des Zertifikats nicht erteilt wurde, korrigieren Sie diese Bedingung mithilfe des Zertifikat-Snap-Ins. Weitere Informationen finden Sie im Verfahren "Überprüfen, ob das AD FS-Dienstbenutzerkonto auf private Schlüssel für Zertifikate zugreifen kann" im Abschnitt "Vor einer Problembehandlung in AD FS auszuführende Schritte" im Leitfaden zur Problembehandlung in AD FS.
Target | Microsoft.ActiveDirectoryFederationServices.2016.FederationServer | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.2SingleEventLog2StateMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.ActiveDirectoryFederationServices.2016.FederationServerBadConfigurationIdentityCertificateHasNoPrivateKeyMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.ActiveDirectoryFederationServices.2016.FederationServer" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.ActiveDirectoryFederationServices.2016.FederationServerBadConfigurationIdentityCertificateHasNoPrivateKeyMonitor_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="FirstEventRaised" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
<OperationalState ID="SecondEventRaised" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>$Target/Property[Type="Microsoft.ActiveDirectoryFederationServices.2016.FederationServer"]/ADFSEventLog$</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">133</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>MatchesMOM2005RegularExpression</Operator>
<Pattern>(^AD FS$)</Pattern>
</RegExExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>$Target/Property[Type="Microsoft.ActiveDirectoryFederationServices.2016.FederationServer"]/ADFSEventLog$</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">100</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>MatchesMOM2005RegularExpression</Operator>
<Pattern>(^AD FS$)</Pattern>
</RegExExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>