Клиент SSPI требует меньше итераций, чем сервер GSSAPI - PullRequest
0 голосов
/ 25 сентября 2018

Я использую nsspi для вызова API SSPI из приложения C # для клиентской стороны.Я использую cyrus sasl с реализацией MIT Kerberos GSSAPI на стороне сервера.

Кажется, что два протокола взаимодействуют друг с другом, но для сервера требуется больше вызовов для клиента, чем дляклиент готов выполнить.

Вот журнал отладки клиента:

- Creating client context
- CONTINUE_NEEDED after calling InitializeSecurityContext, sending clientToken to the server
- received new server challenge
- OK after calling InitializeSecurityContext, out clientToken is null.
- no data to send to the server, sending NULL data
- received new server challenge
- NSspi.SSPIException: Failed to invoke InitializeSecurityContext for a client. Error Code = '0x80090301' - "The handle provided to the API was invalid.".

вот журнал отладки сервера:

- received client packet
- SASL start with GSSAPI
- GSSAPI server step 1
- received CONTINUE
- sending challenge to client
- received client packet with NULL data
- GSSAPI server step 2
- sending challenge to client
- client ended unexpectedly

Код довольно длинный, поэтому яне могу вставить это здесь полностью.Похоже, проблема заключается в количестве раундов аутентификации: клиент удовлетворен всего за один раунд, серверу, похоже, требуется больше раундов, но у клиента нет данных для его передачи.

Я использую те же флаги, что и для демонстрации клиента nsspi для создания контекста.

У кого-нибудь есть идеи, почему это может происходить?

...