LINUX.ORG.RU

Вопрос про клиент и сервер с аутентификацией по kerberos

 , , , ,


0

1

Здравствуйте. Решил написать приложение клиент серверное с аутентификацией по керберос. Взял пример сервера https://github.com/krb5/krb5/tree/master/src/appl/sample/sserver

И соответственно пример клиента https://github.com/krb5/krb5/tree/master/src/appl/sample/sclient

Соответственно от транслировал эти примеры и появились следующие вопросы.

1)Правильно ли я понимаю чтобы все корректно работало. Код сервера должен запускаться на машине сервера контроллера домена( там где keytab ) файл и kfc 2) код клиентской части может запускаться на любой машине клиенте домена правильно? 3) я слышал такую вещь что свой(взятый из примера) тестовый сервер и клиент kerberos, я должен где то в домене как то прописать, чтобы аутентификация проходила и тд. Если это так то как это сделать? Можно по шагам..

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

контроллера домена

эта абракадабра применима к определённой системе ПО одного определённого производителя, и к керберос прямого отношения не имеет. И вообще ни к чему не имеет кроме вышеозначенного ПО.

Код сервера должен запускаться на

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

я слышал такую вещь

Можно по шагам

см. п1

kfc

полковник, ты?

mrjaggers
()
Ответ на: комментарий от annulen

Помню где-то (на сайте МИТ?) было олдовое объяснение в виде пьески с участием Афины и друзей.

mrjaggers
()

Код сервера должен запускаться на машине сервера контроллера домена

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

thesis ★★★★★
()
Ответ на: комментарий от thesis

Желательно на вопросы ответить мои.

kold2015
() автор топика

Работал с kerberos только с позиции админа, код примеров не смотрел

  1. Код сервера должен запускаться на машине сервера контроллера домена

Нет. У сервера в keytab’е должны быть ключи principal, выписанные на имя того хоста, где он работает. Например

HOST/$fqdn@$REALM
NFS/$fqdn@$REALM
HTTP/$fqdn@$REALM

$fqdn - hostname с доменом

$REALM - realm kerberos

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

На стороне клиента аналогично. У него должен быть keytab с ключом principal’а, от имени которого он будет подключаться к серверу

Если клиент и/или сервер используют GSSD, то keytab’ы лично им давать не нужно, добавь в общесистемный /etc/krb5.keytab и перезапусти gssd

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

Да, ели там есть keytab с соответствующим ключом principal

  1. я слышал такую вещь что свой(взятый из примера) тестовый сервер и клиент kerberos, я должен где то в домене как то прописать, чтобы аутентификация проходила и тд

Для стандартных нет. Нестандартные не использовал. Записи нужны для самого сервера kerberos, но не для твоего сервера, использующего kerberos.

Скорее всего, ты путаешь с каким-то service discovery. В любом случае, код у тебя, как-нибудь разребершься

router ★★★★★
()
Последнее исправление: router (всего исправлений: 4)
Ответ на: комментарий от router

Если не сложно оставьте контакт для приватного общения появятся вопросы задам

kold2015
() автор топика

для работы клиент/сервис необходимы 3 условия:

  • компы и клиент и сервера должны быть в домене kerberos
  • на сервере для сервиса должен быть выгружен ключ в отдельный keytab который можно подгрузить в API через переменную среды если сервис совсем тупой
  • пользователь должен пройти аутенфикацию в kerberos и так же у него будет ключ, доступ на сервис идет по принципалу SERVICE@hostname

домен kerberos подразумевает kdc сервер ключей, пусть этой работой займутся специалисты, там всё очень сложно и есть нюансы!

https://github.com/krb5/krb5/tree/master/src/appl/sample

почитайте для чего придумали GSS-API, 2015 это год рождения - тогда очень похвально что дети интересуются такой тематикой!

anonymous2 ★★★★★
()
Последнее исправление: anonymous2 (всего исправлений: 7)
Ответ на: комментарий от anonymous2

SERVICE- это в моем случае имя исполняемого файла моего(взятого из примера) сервера который аутентифицирет по kerberos через api да?

kold2015
() автор топика
Ответ на: комментарий от router

А в случае если клиентом к моему серверу самописному является браузер firefox(настроенный на аутентификацию kerberos) , он мне пришлет учетные данные(билет) в мою программу при подключение к моему серверу по http://ip:port?

kold2015
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.