Исправьте основной тип Kerberos для службы на хосте - PullRequest
2 голосов
/ 30 марта 2012

Существует несколько типов принципалов Kerberos. Обычный пользователь princpal, такой как michael-o@COMPANY.COM, будет KRB_NT_PRINCIPAL. Но как насчет услуги типа HTTP/host.company.com@COMPANY.COM? Есть несколько возможных типов, таких как KRB_NT_SRV_{INST|HST|XHST}. Какой правильный?

Насколько я понимаю, INST только для TGT. Я бы предположил, что правильный ответ должен быть HST. Я не смог найти ключ в исходном коде JDK Oracle, но эти два противоречивых момента: 1 против 2 .

Ответы [ 2 ]

2 голосов
/ 20 ноября 2013

RFC 4120 раздел 7.5.8 определяет типы имен.На практике большинство всего использует KRB_NT_SRV_HST.Я никогда не видел KRB_NT_SRV_XHST, кроме как в RFC и в тестовом коде.Обычно KRB_NT_SRV_INST используется, когда второй компонент не является именем хоста.Примеры включают TGT или другие реплицированные сервисы, где не имеет значения, какой хост вы получаете.Однако типы имен не имеют большого значения.Раздел 6.2 описывает это:

Как и в случае с именами областей, необходимы соглашения, чтобы все согласились с тем, какая информация подразумевается под основным именем.Поле типа имени, которое является частью основного имени, указывает тип информации, подразумеваемой именем.Имена типа ДОЛЖНЫ рассматриваться только как подсказка для интерпретации значения имени.Это не имеет значения при проверке на эквивалентность.Имена участников, отличающиеся только типом имени, идентифицируют одного и того же участника.Тип имени не разбивает пространство имен.Игнорируя тип имени, никакие два имени не могут быть одинаковыми (т. Е. По крайней мере один из компонентов или область ДОЛЖНЫ быть разными).Определены следующие типы имен: Современные реализации Kerberos немного обрабатывают KRB_NT_SRV_HST.В частности, они с большей вероятностью генерируют перекрестные ссылки на основе имени хоста во втором компоненте такого принципала.Поэтому, если первый компонент идентифицирует службу, а второй - имя хоста, лучше всего использовать SRV_HST.

0 голосов
/ 31 июля 2012

RFC 1510 является лучшим справочным материалом для этого. См. http://www.rfc -editor.org / rfc / rfc1510.txt раздел 7.2.1 «Основной идентификатор сервера на хосте обычно будет состоит из двух частей: (1) царство KDC, с которым сервер и (2) двухкомпонентное имя типа NT-SRV-HST, если имя хоста - это имя домена в Интернете или многокомпонентное имя введите NT-SRV-XHST, если имя хоста имеет такую ​​форму, как X.500 это позволяет разделять косой чертой (/). Первый компонент двух- или Многокомпонентное имя будет идентифицировать сервис, а последний Компоненты будут идентифицировать хост. Где имя хоста нет с учетом регистра (например, с именами доменов в Интернете) имя хост должен быть в нижнем регистре. Для таких услуг, как Telnet и Беркли R команды, которые запускаются с системными привилегиями, первым Компонент будет строкой "хост" вместо конкретной службы идентификатор. «

...