Переадресация Kerberos против проксимального билета - PullRequest
0 голосов
/ 13 марта 2020

Я пытаюсь найти разницу между билетами Forwardable и Proxiable в Kerberos (я использую MIT Kerberos 5).

В качестве основы я взял Spring Kerberos SPNe go пример делегирования

Там у меня есть 2 шлюза и 1 керберизованный сервис.

Вот поток:

  1. Я делаю kinit -f testuser, таким образом получая переадресацию тикет.
  2. Откройте мой браузер и укажите на службу Gateway1.
  3. Он аутентифицирует testuser и получает перенаправленный билет (TGT) для действий от имени testuser и отправляет полученный токен службе Gateway2.
  4. Служба Gateway2 делает то же самое и получает ресурс для службы Kerberized от имени testuser.

Когда на первом шаге I становится доступным forwardable ticket (kinit -fp testuser) Я получаю тот же результат, что и с просто переадресацией, хотя я должен получить ошибку на 4-м шаге, потому что проксируемый билет не является TGT, поэтому Gateway2 не должен получать делегированный токен.

Кроме того, в отладке на 3-м шаге я вижу, что флаги на билете: Forwardable;Forwarded;Proxiable

На 4-м шаге флаги: Forwardable;Forwarded

Итак, proxiable флаг исчез.

Когда на 1-м шаге I получить только проксимальный билет (kinit -p testuser), на 3-м шаге я вижу ошибку в файле журнала krb5kd c:

krb5kdc[2217](info): TGS_REQ (1 etypes {18}) 192.168.33.112: TGT NOT FORWARDABLE: authtime 0, testuser@REALM.COM for krbtgt/REALM.COM@REALM.COM, KDC can't fulfill requested option

и, следовательно, не может делегировать токен даже на Gateway1.

Чего мне не хватает или что я делаю неправильно?

...