2016-11-04 3 views
0

Я пытаюсь понять основные понятия Kerberos. Я читал о принципах over here, которые, как правило, выглядит следующим образом:Понимание принципов Kerberos

primary/[email protected] 

Я хотел спросить, что именно является первичным, экземпляр и область. Конечно, есть определения, приведенные на приведенной выше странице и в нескольких других местах в Интернете, но может ли кто-нибудь привести пример?

Что я понимаю: Первичный потребитель (пользователь или услуга). Экземпляры - это то, что используется для контроля доступа. Первичный может быть частью нескольких экземпляров. Realm - это коллекция экземпляров? Пожалуйста, исправьте меня, если я ошибаюсь.

Если у меня есть сервер: foo.bar.com
на этом я могу иметь 2 сферы: REALM1, REALM2. Можно ли назвать их таковыми? или у меня есть только 1 область здесь FOO.BAR.COM?
Теперь я сказал 3 услуги: s1, s2, s3, которые разговаривают друг с другом. Так как kerberos включен, у каждого из них должен быть директор с собственным файлом keytab? или поскольку каждая служба разговаривает со службой друг друга, каждый файл keytab должен иметь принципы для каждой другой службы?

ответ

5

В примере вы дали: первичный/экземпляр @ REALM

  1. первичного = имя службы (например, HTTP, работающие на целевом сервере)

  2. экземпляр = полное доменное имя (как правило), которая должна быть в DNS - это будет полное доменное имя сервера, на котором «первичный» (услуга) работает на

  3. REALM = обычно написано в верхнем регистре (хотя и не обязательно) - это (хотя и не всегда) соответствует домену DNS название среды, в которой Аутентификация Kerberos должна произойти. Это набор компьютеров, совместно использующих пространство имен и базу данных Kerberos.

Пример SPN: HTTP/[email protected] В этом примере он может быть сокращен до HTTP/server1.acme.com, предполагая, что DNS установлен в среде компьютера.

Для вашего примера, foo.bar.com, область, скорее всего, будет FOO.BAR.COM. Это не должно быть, хотя. У вас наверняка есть полное FQDN DNS foo.bar.com, существующее в области Kerberos другого имени, но это имя области должно быть полностью квалифицированным, вы не можете просто иметь его как «REALM1». Kerberos сильно зависит от DNS. Я полагаю, что технически возможно иметь не полностью квалифицированное имя царства Kerberos, хотя я никогда не видел его на практике. Вы просто просите о серьезных неприятностях. Для ваших 3-х услуг, говорящих друг с другом, да, каждый из них должен иметь свой собственный SPN, их нужно разграничивать отдельно в базе данных Kerberos, иначе как клиенты смогут их найти? Три различных сервиса в этом случае будут нуждаться в собственном файле keytab. Но у каждого keytab не было бы принципов для других сервисов. Не используйте слово «принципал», как вы это делали, самостоятельно. Принципиальным является объект безопасности, который может иметь SPN, или он может и не быть. Это зависит. Существуют различные типы принципов безопасности, такие как пользователи, у которых есть UPN. Услуги - это СПП. Компьютеры являются третьим типом категории. Предложите вам прочитать больше здесь, если вы находитесь в среде Microsoft Active Directory, самой популярной версии реализации Kerberos.http://social.technet.microsoft.com/wiki/contents/articles/4209.kerberos-survival-guide.aspx

+0

Спасибо за объяснение, теперь он намного лучше! Так что если для моего сервиса s1 (который работает как его собственный пользователь - скажем ** s1user **), я хочу дать ему доступ к сервису s2, как бы я это сделал? Скажем, оба они находятся в одном экземпляре. Не буду ли я создавать нового принципала для ** s1user/instance @ realm **, а затем добавить это в файл keytab s2? – rgamber

+0

Это не было частью исходного вопроса, и это гораздо более сложная тема, и я не знаком с ее внедрением. Я выполнил поиск Google и нашел это для вас: http://docs.openstack.org/developer/keystoneauth/_sources/authentication-plugins.txt –

Смежные вопросы