2009-12-11 7 views
2

Я думал, что хочу использовать GSS-API, но теперь я не уверен, так как мне трудно найти хороший образец кода для тривиальной пары клиент/сервер. Sun имеет documentation including sample code, но он написан специально для реализации их API GSS, используя несколько собственных функций, не относящихся к примеру. GNU GSS-API (и для которого мне не сразу понятно, как их реализовать повторно при реализации GNU). Плюс, он написан в pre-ANSI C, с объявлениями K & R и т. Д. (У меня не было проблем с преобразованием деклараций, но это заставило меня подумать, что пример кода Sun может быть настолько старым, чтобы быть неактуальным).Какие программы используют GSS-API? Какие-нибудь достойные примеры программ?

Вы использовали GSS-API в приложении, скажем, в последнее десятилетие? Вы знаете какой-то самостоятельный учебник с примерами программ, которые стоит прочитать?

В качестве альтернативы, возможно, я ошибаюсь и должен попробовать SASL вместо этого. Сам автор GNU GSS-API suggests as much.

Для чего это стоит, я использую GCC на Linux, и Kerberos настроен уже для других целей.

ответ

4

Да, вы должны абсолютно использовать SASL вместо GSSAPI. Это гораздо лучше поддерживаемый протокол, и библиотеки довольно хороши. По крайней мере, вы можете рассматривать это как улучшающую здравомыслящую оболочку над GSSAPI, поскольку это один из типичных плагинов, реализованных для SASL. Единственная причина, по которой вам следует использовать GSSAPI напрямую, - это реализовать библиотеку SASL. Но не делайте этого. :)

SASL также имеет широкое применение. Он указан как часть IMAP и XMPP.

Выполняете ли вы какой-то пользовательский протокол через TCP?

+0

У меня уже есть пользовательский протокол по TCP (и другим транспортом). Я хотел бы добавить к нему аутентификацию. –

+1

Да, SASL будет работать нормально для этого. Вам просто нужно определить какой-то механизм в вашем протоколе для обмена информацией SASL, и вы настроены. Обратите внимание, что SASL не обеспечивает шифрование, как правило, вы сначала используете TLS, затем SASL. –

0

Sun использует GSSAPI в своем коде Java. Вы можете найти немного больше информации об этом здесь:

Equivalent of 'gss_import_name' and 'gss_init_sec_context' methods in java?

Также вы можете посмотреть на реализацию кода сделано людьми на OpenJDK:

http://www.docjar.org/docs/api/sun/security/jgss/GSSContextImpl.html

Они опубликовали полный рабочий пример GSSAPI, написанный на Java.

Грант

+0

Я закончил использовать SASL. Он работает нормально. –