2017-02-14 4 views
1

Я занимаюсь разработкой одной серверной службы с использованием Kerberos и получил билет от клиента, я могу расшифровать билет с помощью предопределенной keytab, теперь мой вопрос заключается в том, как использовать информацию PAC в билет. Ранее я использую процедуру LDAP для запроса членства в группе пользователя, чтобы получить информацию авторизации.Как использовать информацию PAC в билете Kerberos

Теперь информация входа в систему PAC включает членство, но это идентификатор группы, но мне нужен текстовый формат «DN» (CN = xxx, OU = xxx, DC = xxx ...).

Я хотел бы знать, как использовать данные авторизации в билете на сервере службы. Благодаря!

+0

Я предполагаю, что вы используете Active Directory для Kerberos здесь. Если да, добавьте следующие теги к этому вопросу: active-directory, spnego, ldap –

+0

updated.Yes, я использую активный каталог. Теперь сопоставление имени группы с SID может быть разрешено с помощью запроса LDAP. Я использую GSSAPI для реализации Kerberos. Теперь мне нужно извлечь информацию PAC. – orasy

ответ

1

Если ваша служба приложений не работает в Windows, вы не сможете прочитать PAC, не перепрыгивая через некоторые серьезные обручи. PAC построен с использованием проприетарного кода корпорации Майкрософт, что Microsoft внесла в свой вкус Kerberos IAW RFC 1510, но их слова «слегка изменены». Shortly after the release of Windows 2000 [Active Directory], Microsoft received some negative press attention because of the proprietary way they used the PAC field in a Kerberos ticket. [Microsoft] explicitly forbids the creation of software that implements the PAC as described in the specifications.

Я потратил много времени, пытаясь найти что-то с открытым исходным кодом и надежность, которые могли бы читать РАС в любом случае, и я обнаружил, что JAASLounge does this. Это старая статья (с 2010 года). Имейте в виду, что на основе моей интерпретации, основанной на заявлении Microsoft, представляется нарушение их условий.

В любом случае, я также добавил в закладки два потока прямо здесь, на этом форуме, людьми, которые утверждают, что получили JAASLounge, что это работало, и некоторые проблемы, с которыми им пришлось работать.

Decrypt kerberos ticket using Spnego

Malformed PAC logon info on new KerberosToken

В случае, если вы не хотите идти по этому пути, и вы хотите, чтобы обойти PAC, чтобы определить членство в группах пользователя AD, тогда вам придется прибегнуть к сделав LDAP обращается к контроллеру домена AD.

Я закрою, сказав, что если вы работаете на сервере приложений на базе Windows, таком как IIS или SharePoint, декодирование PAC в Kerberos происходит автоматически, поэтому никакого специального кода, конфигурации или файла keytab никогда не будет обязательный.

+0

T-Heron, спасибо за ваш ответ. В документе MIT Kerberos я нашел API для получения информации PAC. Я обновлю, я успешно сделаю это на языке C. – orasy

+1

Использование gssapi может извлекать данные pac и декодировать буфер информации входа для получения данных авторизации (членство в группе). – orasy

+0

@ Orasy. Спасибо за ваш комментарий. Я отметил этот ответ. –

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