2016-12-30 16 views
5

Я рассмотрел все примеры, которые я смог найти в Интернете для создания приложений на контейнерах для докеров. Я хотел бы запустить две службы работают в двух докеров контейнерах:Как использовать проверку подлинности Windows с контейнером docker сервера SQL

  1. А окна контейнер работает ASP.NET
  2. A окна контейнера работает SQL Server

Легкая работа и много примеров. Однако во всех примерах вам нужно использовать проверку подлинности SQL и предоставить жесткий пароль SA в качестве переменной среды при запуске контейнера SQL-сервера. Вам также необходимо жестко закодировать пароль SA в строке соединения в коде ASP.Net (или предоставить его каким-либо другим способом в файле конфигурации и т. Д.)

Нижняя строка во всех примерах - где-то закодировано.

В большинстве приложений, которые мы разрабатываем сейчас, мы фактически используем проверку подлинности Windows или вместо этого используем сгруппированную учетную запись управляемого службы. Но, насколько я знаю, вы не можете добавить контейнер Windows в домен, поэтому SQL-сервер не является частью домена Windows, поэтому я не вижу способа использовать аутентификацию Windows.

Так у кого-нибудь есть альтернатива жесткому кодированию паролей таким образом?

ответ

1

Я имею дело с той же проблемой. Here - самая полная процедура, которую я нашел. Хитрость заключается в использовании gMSA.

Но, как говорит JanneRantala в конце концов, у меня та же проблема при попытке добавить нового пользователя в базе данных:

Msg 15401, уровень 16, состояние 1, строка 3 для Windows Пользователь NT или группа «YOUR_DOMAIN \ gmsa $» не найден. Проверьте имя еще раз.

+1

Спасибо. Я также читал о gMSA, но не могу полностью понять, как работает аутентификация. Аналогичная проблема будет связана с аутентификацией Windows с сервером IIS. Надеюсь, что более релевантная документация будет развиваться по мере развития этой замечательной технологии в среде Windows. – IProgrammer

0

Вот прохождение игры, как заставить его работать. Windows Containers Walkthrough

Это не сработает, хотя ваш SQL также работает в контейнере, поскольку сам SQL-сервер должен быть частью Active Directory, чтобы иметь возможность использовать учетные записи GMSA.

+2

Спасибо. Я уже готовил это раньше. Но это именно то, что я пытаюсь решить. Я хочу, чтобы все приложение запускалось в контейнерах - как sql, так и IIS. – IProgrammer

+0

Если они работают в разных контейнерах, это никогда не будет возможно. Если они работают в одном контейнере, то, вероятно, есть путь вокруг него. Также вам не нужно жестко указывать в контейнере любые данные, если это ваша главная проблема, вы можете передавать секреты через переменные среды при запуске контейнера –

+0

Спасибо GSA.После прочтения вашего комментария, сделанного некоторое дальнейшее чтение, и похоже, что это может быть хорошим шагом вперед: https://www.ctl.io/developers/blog/post/tutorial-protecting-sensitive-info-docker – IProgrammer

1

Аутентификация Windows автоматически включается в контейнерах SQL Server Windocks. См. here для более подробной информации. Контейнеры SQL Server, созданные в Windocks, представляют собой экземпляры SQL Server с именем, созданные автоматически из службы SQL по умолчанию, которая уже установлена ​​на Windows Server (2012 R2 или 2016). Любые учетные записи Windows в экземпляре по умолчанию автоматически включаются в экземпляры контейнера.