Kerberos: разница между UPN и SPN
Сейчас я керберизирую кроссплатформенное приложение с помощью GSSAPI. Пока мне не ясно о разнице между UPN и SPN.
Среда разработки представляет собой сервер Samba4 AD DC на CentOS 6.4 с Windows Server 2008 R2 в качестве члена в домене, скажем EXAMPLE.COM (Вам может быть любопытно, почему бы не использовать Win2008 в качестве DC напрямую. Как я уже говорил ранее, приложение является кроссплатформенным, я сейчас тестирую в этом параметре. Обычный параметр Win DC-Linux MEM работает нормально.). Я создаю нового пользователя foobar:users
запустить приложение. Когда я использую foobar@EXAMPLE.COM
то есть UPN, чтобы аутентифицировать приложение против Kerberos, я продолжаю получать
Kerberos: принципал не может выступать в роли сервера ОШИБКА
Следуя теме ветки Samba, я думаю, что мне нужно создать имя участника службы, скажем app/dc.example.com
для УПН с samba-tool
samba-tool spn add app/dc.example.com foobar
На этот раз я получу еще одну ошибку
Samba4 KDC - в hdb такой записи не найдено
Мой вопрос: в чем разница между UPN и SPN? От samba-tool spn list foobar
это говорит foobar
имеет servicePrincipalName app/dc.example.com
, Как я могу связать UPN с SPN?
Большое спасибо.
1 ответ
Проще говоря,
- UPN: объект, выполняющий клиентские запросы к какой-либо службе. Сущность может быть человеком или машиной. Смотрите здесь.
- SPN: объект, обрабатывающий запросы для конкретной услуги, например, HTTP, LDAP, SSH и т. Д. Только для компьютера. Смотрите здесь.
UPN извлекает билет службы для SPN, чтобы использовать эту фактическую услугу.
Если твой samba-tool
позвоните по вашему запросу samba для регистрации SPN app/dc.example.com
к UPN foobar
, Поскольку вы не указали область имен SPN и UPN, Samba примет область по умолчанию для машины, с которой выполняется этот вызов. В терминах Windows вы в основном привязываете SPN к UPN компьютера. Который всегда: <name>$@<REALM>
, Обратите внимание на знак доллара.