Ich verwende die Kerberos node.js -Bibliothek, um die Kerberos -Service -Tickets zu überprüfen. Mein Setup enthält:
- Active Directory Windows Server im Netzwerk. Auf dem Server: < /p>
Code: Select all
Error: Unspecified GSS failure. Minor code may provide more information: Ticket not yet valid
< /code>
Client-Code (funktioniert gut) < /H2>
import Kerberos from "kerberos";
const service = "HTTP/[email protected]";
Kerberos.initializeClient(service, {}, (err, client) => {
if (err) throw err;
client.step('', (err, token) => {
if (err) throw err;
console.log(btoa(token)); // Base64-encoded service ticket
// Send this ticket to the server
});
});
< /code>
Servercode (Fehler) < /H2>
import Kerberos from "kerberos";
// Point Kerberos to the keytab file
process.env.KRB5_KTNAME = "/path/to/http.keytab";
const serviceTokenFromClient = "base64TokenFromClientBeingSendOverHTTP";
const kerberosServer = await Kerberos.initializeServer("[email protected]");
const actualToken = btoa(serviceTokenFromClient);
const responseToken = await kerberosServer.step(actualToken);
console.log(responseToken);
if (kerberosServer.username) {
console.log(kerberosServer.username);
}
< /code>
Zusätzlicher Kontext < /H2>
SPN wurde unter Verwendung dieser Frage über den Stapelüberlauf eingerichtet und funktioniert < /li>
Der Fehler tritt nur auf, wenn das Ticket auf dem Linux -Server in Verbindung steht.w32tm
), da der Linux -Server nicht mit der Domäne verbunden ist. However, comparing system clocks shows nearly identical times:
Linux: Sat Sep 13 05:04:39 PM CEST 2025
- Windows: Saturday, September 13, 2025 5:04:40 PM
Frage < /H2>
Warum bekomme ich < /p>
Code: Select all
Ticket not yet valid
< /code>
Beim Überprüfen des Service -Tickets mit der Kerberos < /code> node.js -Bibliothek und wie kann ich es trotz der Takte, die synchronisiert werden, auflösen? Maschine < /strong> < /p>
[list]
[*][DateTime]::UtcNow.toString("u")
-2025-09-14 19: 44: 53z
[*]
- Sun SEP 14 2025 12:44:53 GMT -0700 (pazifische Tageslichtzeit)
Auf der Linux -Maschine
[*]
Code: Select all
date -u - Sun Sep 14 07:44:53 PM UTC 2025
new Date().toString() - Sun SEP 14. September 2025 21:44:53 GMT+0200 (mitteleuropäische Sommerzeit)
[/list]
Ich bin kein Kerberos -Experte wie Grawity , aber für mich sieht es so aus.>
Ich verwende die Kerberos node.js -Bibliothek, um die Kerberos -Service -Tickets zu überprüfen. Mein Setup enthält:
[list]
[*] [b] Active Directory Windows Server [/b] im Netzwerk. Auf dem Server: < /p>
[code]Error: Unspecified GSS failure. Minor code may provide more information: Ticket not yet valid
< /code>
Client-Code (funktioniert gut) < /H2>
import Kerberos from "kerberos";
const service = "HTTP/
[email protected]";
Kerberos.initializeClient(service, {}, (err, client) => {
if (err) throw err;
client.step('', (err, token) => {
if (err) throw err;
console.log(btoa(token)); // Base64-encoded service ticket
// Send this ticket to the server
});
});
< /code>
Servercode (Fehler) < /H2>
import Kerberos from "kerberos";
// Point Kerberos to the keytab file
process.env.KRB5_KTNAME = "/path/to/http.keytab";
const serviceTokenFromClient = "base64TokenFromClientBeingSendOverHTTP";
const kerberosServer = await Kerberos.initializeServer("
[email protected]");
const actualToken = btoa(serviceTokenFromClient);
const responseToken = await kerberosServer.step(actualToken);
console.log(responseToken);
if (kerberosServer.username) {
console.log(kerberosServer.username);
}
< /code>
Zusätzlicher Kontext < /H2>
SPN wurde unter Verwendung dieser Frage über den Stapelüberlauf eingerichtet und funktioniert < /li>
Der Fehler tritt nur auf, wenn das Ticket auf dem Linux -Server in Verbindung steht.w32tm[/code]), da der Linux -Server nicht mit der Domäne verbunden ist. However, comparing system clocks shows nearly identical times:
Linux: Sat Sep 13 05:04:39 PM CEST 2025
[*]Windows: Saturday, September 13, 2025 5:04:40 PM
[/list]
Frage < /H2>
Warum bekomme ich < /p>
[code]Ticket not yet valid
< /code>
Beim Überprüfen des Service -Tickets mit der Kerberos < /code> node.js -Bibliothek und wie kann ich es trotz der Takte, die synchronisiert werden, auflösen? Maschine < /strong> < /p>
[list]
[*][DateTime]::UtcNow.toString("u")[/code]-2025-09-14 19: 44: 53z
[*][code]new Date().toString()[/code] - Sun SEP 14 2025 12:44:53 GMT -0700 (pazifische Tageslichtzeit)
[b] Auf der Linux -Maschine [/b]
[*] [code]date -u - Sun Sep 14 07:44:53 PM UTC 2025 [/code]
new Date().toString() - Sun SEP 14. September 2025 21:44:53 GMT+0200 (mitteleuropäische Sommerzeit)
[/list]
Ich bin kein Kerberos -Experte wie Grawity , aber für mich sieht es so aus.>