Как имитировать поведение SSH и создать действительный билет Kerberos на целевом хосте

У нас есть приложение, которое в настоящее время передает билет Kerberos от hostA к hostB. Билет передается как есть и записывается в кэш учетных данных. Проблема заключается в том, что дополнительные билеты службы не могут быть созданы на hostB. Мы выяснили, что это связано с адресом билета.

Это билет, который существует на hostA:

hostA> /usr/lib/mit/bin/klist -f -a
Ticket cache: FILE:/tmp/krb5cc_12345
Default principal: user@COMPANY.COM

Valid starting     Expires            Service principal
09/09/17 15:31:45  09/10/17 01:31:45  krbtgt/COMPANY.COM@COMPANY.COM
        renew until 10/09/17 14:24:09, Flags: FRIA
        Addresses: hostA.company.com

Если мы запускаем ssh для hostB, то на hostB создается новый тикет с правильным адресом (hostB.company.com):

hostA> ssh hostB /usr/lib/mit/bin/klist -f -a
Ticket cache: FILE:/tmp/krb5cc_12345
Default principal: user@COMPANY.COM

Valid starting     Expires            Service principal
09/09/17 15:39:46  09/10/17 01:39:46  krbtgt/COMPANY.COM@COMPANY.COM
        renew until 10/09/17 14:24:09, Flags: FfRA
        Addresses: hostB.company.com

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

Очевидно, что когда мы передаем билет как есть, мы получаем hostA.company.com в качестве адреса, и мы не можем создать дополнительные билеты службы. например

hostB> /usr/lib/mit/bin/kvno HTTP/myservice.company.com
HTTP/myservice.company.com@COMPANY.COM: KDC reply did not match expectations while getting credentials

Это работает, однако, при получении билета с "kinit -A" - мы получаем "(none)" в качестве адреса, и это работает как на hostA, так и на hostB. Тем не менее - мы не используем этот метод, так как у пользователей нет такого типа адреса по умолчанию, и он потребует явного kinit.

Вопрос в том, как ssh пересылает билет и создает действительный билет TGT на хосте B? Как мы можем сделать то же самое в нашем приложении, без использования SSH?

0 ответов

Другие вопросы по тегам