Я мало знаю об аутентификации Kerberos, у меня просто есть базовый опыт настройки и использования. Недавно я заметил, что в Windows настроена встроенная реализация Kerberos. Поэтому, когда я запускаю klist в PowerShell, я получаю хороший список доступных билетов. Для различных тем Dev-Ops мы используем Linux в нашей команде с WSL и Docker в качестве агента сборки и локальной среды разработки. Наш образ докера хорошо настроен для Kerberos, и я могу использовать kinit для получения билета. Однако в этом случае пользователю придется снова ввести свои учетные данные.
Недавно я видел следующий ответ ( ссылка ):
Как только вы войдете в Windows, LSA сохранит ваши основной и пароль в памяти и восстановить новый билет, как только это необходимо.
Вопрос : Есть ли способ получить и скопировать билет Kerberos из Windows в контейнер Docker или в среду WSL, работающую в той же системе? (Очевидно, вопрос больше о том, «как», чем о «есть ли решение» ...)
В обоих случаях у нас есть общие тома между Linux и Windows.
Также есть сообщение на Reddit по аналогичной теме: ссылка
Также в следующем сообщении предполагается, что многие действительно хранят эти билеты локально: ссылка
Примечание. В моем случае у нас есть корпоративная сетевая среда с контроллерами домена. На настроенных узлах Linux (рабочий стол Linux, контейнер Docker) kinit работает нормально.
Дополнительные ссылки:
Билет Kerberos хранится в кэше учетных данных. В Windows поддерживается несколько кешей учетных данных:
- ФАЙЛОВЫЕ кеши: простые и наиболее переносимые. Для хранения одних учетных данных за другими используется простой формат плоского файла. Это значение по умолчанию для Linux и OS X.
- Кэш API: реализован только в Windows, он взаимодействует с серверным процессом, который хранит учетные данные в памяти. Похоже, это значение по умолчанию в Windows.
Примечание: мне предложили переместить этот вопрос сюда из переполнения стека.
С клиентом MIT файл кэша учетных данных является правильным способом, но вам нужно еще кое-что внутри образа контейнера. например внутри Ubuntu Container-
установлен пакет krb5-user
/etc/krb5.conf
Настройте переменную %KRB5CCNAME%
на вашем хосте, указывающую на файл. например c:\temp\krb5.cache
При создании экземпляра контейнера монтируйте c:\temp\krb5.cache
по пути /tmp/krb5.cache
. и экспортируйте $KRB5CCNAME
переменную внутри контейнера в путь к файлу (или настройте [libdefaults] default_ccache_name = FILE:...
)
Лучше работать с таблицами ключей и установка keytab внутри контейнера и kinit из этого ключевого файла.