Если ваша служба приложений не работает в 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 никогда не будет обязательный.
Я предполагаю, что вы используете Active Directory для Kerberos здесь. Если да, добавьте следующие теги к этому вопросу: active-directory, spnego, ldap –
updated.Yes, я использую активный каталог. Теперь сопоставление имени группы с SID может быть разрешено с помощью запроса LDAP. Я использую GSSAPI для реализации Kerberos. Теперь мне нужно извлечь информацию PAC. – orasy