Error: Unspecified GSS failure. Minor code may provide more information: Ticket not yet valid
< /code>
клиент-код (работает нормально) < /h2>
import Kerberos from "kerberos";
const service = "HTTP/schoolie-server.schooliead.local@SCHOOLIEAD.LOCAL";
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>
код сервера (ошибка пробросов) < /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("HTTP@schoolie-server.schooliead.local");
const actualToken = btoa(serviceTokenFromClient);
const responseToken = await kerberosServer.step(actualToken);
console.log(responseToken);
if (kerberosServer.username) {
console.log(kerberosServer.username);
}
< /code>
Дополнительный контекст < /h2>
SPN был настроен с использованием этого вопроса о переполнении стека и работает < /li>
Ошибка возникает только при проверке билета на сервере Linux.w32tm
), поскольку сервер Linux не соединяется с доменом. Тем не менее, сравнение системных часов показывает почти идентичные времена:
Ticket not yet valid
< /code>
При проверке билета службы в библиотеке Kerberos < /code> node.js, и как я могу его разрешить, несмотря на синхронизированные часы? Машина < /strong> < /p>
[*][DateTime]::UtcNow.toString("u")
Я использую библиотеку Kerberos node.js, чтобы проверить билеты на обслуживание Kerberos. Моя настройка включает в себя: [list] [*] [b] Active Directory Windows Server [/b] в сети. [*] [b] Server [/b], который проверяет билеты на обслуживание, полученные от клиентов для извлечения имен. Билет на сервере: < /p> [code]Error: Unspecified GSS failure. Minor code may provide more information: Ticket not yet valid < /code>
клиент-код (работает нормально) < /h2> import Kerberos from "kerberos";
const service = "HTTP/schoolie-server.schooliead.local@SCHOOLIEAD.LOCAL";
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>
код сервера (ошибка пробросов) < /h2> import Kerberos from "kerberos";
// Point Kerberos to the keytab file process.env.KRB5_KTNAME = "/path/to/http.keytab";
if (kerberosServer.username) { console.log(kerberosServer.username); } < /code>
Дополнительный контекст < /h2>
SPN был настроен с использованием этого вопроса о переполнении стека и работает < /li> Ошибка возникает только при проверке билета на сервере Linux.w32tm[/code]), поскольку сервер Linux не соединяется с доменом. Тем не менее, сравнение системных часов показывает почти идентичные времена:
Linux: Sat 13 сентября 05:04:39 CEST 2025 [*] Windows: суббота, 13 сентября 2025 5:04:40 PM
/> Вопрос < /h2> Почему я получаю < /p> [code]Ticket not yet valid < /code> При проверке билета службы в библиотеке Kerberos < /code> node.js, и как я могу его разрешить, несмотря на синхронизированные часы? Машина < /strong> < /p>
[*][DateTime]::UtcNow.toString("u")[/code]-2025-09-14 19: 44: 53Z [*][code]new Date().toString()[/code] - Sun 14 Sep 14 2025 12:44:53 GMT -0700 (Pacific Daylight) [/list] [b] на машине Linux [/b] [list] [*][code]date -u - Sun 14 сентября 07:44:53 UTC 2025 [/code] new Date().toString() - Sun 14 Sep 14 2025 21:44:53 GMT+0200 (Центральное европейское летнее время) [/list] Я не эксперт Kerberos, как Grawity , но для меня это должно работать.>