Frage

Ich bin die DCOM verwenden, um verschiedene Anwendungs-services auf einem Windows-Netzwerk mit Kerberos zur Authentifizierung verarbeiten.Das system normal funktioniert gut, aber ich bin in Probleme laufen den Zugriff auf den Dienst aus einem separaten (vertrauenswürdigen) - Domäne.Vor allem, der service ist nicht in der Lage, um Rückrufe zu der client-Anwendung, erhalten Sie den Fehler "A security package specific error occurred".Auch, wenn ich die Anpassung des service, um speziell Kerberos-Authentifizierung erforderlich (anstatt SNEGO/verhandeln), kann der client noch nicht nennen, die in den server (erneut empfangen "A security package specific error occurred").

Das verwirrende ist, dass die Dinge funktionieren seit Jahren ohne Problem.Allerdings, ein paar Dinge sind hier anders, als im Vergleich zu dem, was wir getan haben, bevor.Zum einen den beteiligten Servern unter Windows 2008, das habe ich bisher nicht verwendet.Auch, wie oben erwähnt, wird der Fehler nur dann Auftritt, wenn der Dienst zugegriffen wird, von einem Konto aus einer anderen Domäne, und die Vorherige Nutzung hat nie versucht, diese.

Nun zu der Frage:Ich bin nicht mit ein SPN (service principal name) für die DCOM-Dienst, aber einige der Fehler-und Ereignis-logs lässt mich denken, dass das problem sein könnte.Jedoch, alle die Dokumente, die ich gefunden habe ist unklar, ob dies korrekt ist, oder wie würde ich das einrichten der SPN, wenn ich es brauche. Weiß jemand sicher, ob ein SPN ist das, was ich hier fehlt? Wenn so, können Sie zeigen Sie mir, wie dies geschehen soll?

Weitere details:

Für das Szenario, in dem der server konfiguriert ist, um die Kraft der Kerberos-Authentifizierung einschalten Erweiterte RPC-Debuggen gibt einige zusätzliche Hinweise.Der client erfolgreich eine Verbindung mit CoCreateInstanceEx, fordert jedoch die service-Schnittstelle scheitern, wie oben erwähnt.Der RPC-Fehler-Aufzeichnungen zeigen einen Fehler an Position 140, und die Fehler code ist 0x80090303 ("Das angegebene Ziel ist unbekannt oder nicht erreichbar"), und der Dritte parameter für die Aufzeichnung ist eine leere Zeichenfolge.Dies verweist auf ein fehlendes SPN als Täter.

War es hilfreich?

Lösung 2

Bearbeiten : Es sieht aus wie ich darüber etwas verwechselt werden kann. Mindestens eine Website I-Staaten, die DCOM SPN automatisch für Sie Griffe (siehe unten auf der Seite), und ich bestätigte, dass Kunden erfolgreich verbinden können, wenn sie die Kerberos-Authentifizierung verlangen und verwenden „Host / [Computer]“, wie das SPN.


Es ist wie ein SPN sieht für den Dienst erforderlich, wenn Sie explizit die Kerberos-Authentifizierung erfordern, wenn CoInitializeSecurity in dem DCOM-Server-Prozess aufrufen. Für mich sah das Gespräch wie folgt aus:

. Achtung: Bitte verwenden Sie diesen Code nicht direkt kopieren, ohne sicherzustellen, dass die Werte für Ihre Sicherheitsanforderungen angemessen sind

SOLE_AUTHENTICATION_SERVICE sas;
sas.dwAuthnSvc = RPC_C_AUTHN_GSS_KERBEROS;
sas.dwAuthzSvc = RPC_C_AUTHZ_NONE;
sas.pPrincipalName = L"myservice/mymachine";
sas.hr = S_OK;
CoInitializeSecurity( 0, 1, &sas, 0, RPC_C_AUTHN_LEVEL_DEFAULT,
    RPC_C_IMP_LEVEL_DEFAULT, 0, EOAC_NONE, 0 );

Die SPN kann mit setspn konfiguriert werden, wie unten gezeigt, :

setspn -A myservice/mymachine serviceusername

(siehe setspn Dokumentation für weitere Details).

Leider noch das hat mein Problem nicht lösen, aber ich denke, die noch offene Frage zu einem spezifischen Problem mit den Testmaschinen verwendet ist.

Andere Tipps

Für was seinen Wert, Kerberos-per definition erfordert SPNs.Sie könnten in der Lage sein zu verwenden die gebaut-in SPNS (host/) und die verschiedenen Aromen, die host setzt (in Diesem alias übersetzung ist gespeichert in der ANZEIGE, aber für das Leben von mir, ich kann nicht scheinen zu finden, die Artikel Liste wo diese zu finden ist).

Ich würde anfangen, indem man die cross-domain-Authentifizierung - Es kann schwierig sein, mit kerberos.Ich würde zuerst auf den vollen die kerberos-Protokollierung auf dem client und dem server und sehen, ob das dreht sich alles.

Ich habe über diesen Fehler kam bei dem Versuch, eine Instanz des Remote-COM-Objekts zu erstellen. Wir können diesem Fehler konfrontiert Wenn „Delegate“ Identitätswechselebene durch die Kunden während des Gesprächs zu CoInitializeSecurity () verwendet wird, und die COM + Dienst unter einem Benutzerkonto ausgeführt wird, die keine „Delegation“ Erlaubnis auf Domain-Ebene hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top