Я читал в книге О'Рейли «Kerberos», что можно создавать экземпляры для пользовательских принципов. Насколько я понимаю, в тексте сказано, что я мог бы username@REALM.NET
для обычных занятий и username/admin@REALM.NET
для входа по ssh на производственный сервер с другим паролем.
Определение MIT Kerberos принципиально неоднозначно для меня. Во-первых, он утверждает, что принципал может иметь произвольное количество компонентов, разделенных на /
, но после этого говорится, что он может иметь необязательный admin
пример.
Может ли часть экземпляра основного имени пользователя быть произвольной строкой? Какие реализации поддерживают эту функцию?
Что происходит, когда основной пользователь удаляется из базы данных (если я удалю user@REALM
, что будет с user/instance@REALM
?
Можно ли создавать экземпляры принципа пользователя в ActiveDirectory 2008? Если возможно, как мне его создать?
С каким именем пользователя в системе openssh будет сопоставлять экземпляр пользователя kerberos username/admin@REALM.NET
? Что такое сопоставление по умолчанию?
Что происходит с UPN с экземплярами, когда между областью MIT Kerberos и ActiveDirectory установлено двустороннее доверие?
РЕДАКТИРОВАТЬ:
Я не вижу понятия component[/component][/component]...@REALM
формат, описанный в книге О'Рейли, в RFC 4120.
РЕДАКТИРОВАТЬ2:
Точная цитата из книги (Глава 2.4.1.3, «Принципы Kerberos 5»):
Давайте посмотрим на пример участника-пользователя Kerberos 5:
jdoe/admin@IT.WEDGIE.ORG
Этот пример эквивалентен первому примеру Kerberos 4, показывая формат принципала Джона Доу с экземпляром администратора.
Исправление в книге не упоминает об этом как о неправильном.
РЕДАКТИРОВАТЬ3:
Описание использования экземпляров Совет по обработке информации о студентах MIT:
Имя Kerberos состоит из трех частей: участника, необязательного экземпляра и области. В качестве принципала обычно используется ваше имя пользователя, а область в MIT - обычно ATHENA.MIT.EDU. Для удостоверения Kerberos, которое вы обычно считаете своим, тот, который вы используете для входа в Athena со своим обычным паролем, экземпляр имеет значение null (пустой). Однако вы можете запросить дополнительные экземпляры, обычно «корневые» или «дополнительные». [...] Еще одна вещь, которая может вам понадобиться, - это дополнительный экземпляр. Некоторые люди используют их как другой корневой экземпляр, но с несколько меньшей безопасностью. Но обычно используется что-то менее безопасное, чем ваш нулевой экземпляр. Например, если вы пишете зефирбота для работы на общем сервере, таком как scripts.mit.edu, зефирботу потребуются билеты Kerberos для подписки на зефир. Но вы не хотите оставлять свой пароль Kerberos в файле в шкафчике, поэтому вместо этого вы можете оставить пароль своего дополнительного экземпляра.
РЕДАКТИРОВАТЬ4:
О'Рейли "SSH: безопасная оболочка" (глава 11.5.2.1 «Как работает Kerberos»)
Главное имя выглядит как 1/2/3 /.../ n @ REALM. Может быть любое (положительное) количество начальных частей, как показано, но на практике обычно бывает одна или две. Основное имя обычного пользователя будет res @ REALM. Основное имя пользователя для определенных целей, например для привилегированного административного экземпляра, может быть res / admin @ REALM.
Другие реализации Kerberos могут разрешать несколько UPN для данного пользователя, но MS AD этого не делает. Справочник MSDN
Этот атрибут представляет собой индексированную строку с однозначным значением.
Можно ли создавать экземпляры принципа пользователя в ActiveDirectory 2008? Если возможно, как мне его создать?
setspn
я думаю, это должно помочь. Но AD вряд ли можно назвать эталонной реализацией Kerberos, и экземпляры в учетных записях пользователей, безусловно, не используются Windows.
С каким именем пользователя в системе ssh будет сопоставлять экземпляр пользователя kerberos username/admin@REALM.NET?
Вкратце: с любым UID, с которым вы его сопоставляете. Видеть .k5login документация.
Но я не думаю, что когда-либо видел имя директора для пользователь в виде primary/instance@realm
вне учебника, обычно /instance
опущено.
(Конечно, вы все время видите одну и ту же форму для сервисов, т.е. service/hostname@realm
)