2016-12-30 27 views
5

Tôi đã trải qua tất cả các ví dụ tôi có thể tìm thấy trực tuyến để xây dựng các ứng dụng dựa trên vùng chứa docker. Tôi muốn chạy hai dịch vụ đang chạy trong hai container Docker:Cách sử dụng xác thực cửa sổ với vùng chứa trình chứa máy chủ SQL

  1. Một container cửa sổ chạy ASP.NET
  2. Một cửa sổ chứa chạy SQL Server

dễ dàng công việc và nhiều ví dụ. Tuy nhiên, trong tất cả các ví dụ, bạn cần sử dụng xác thực SQL và cung cấp mật khẩu SA được mã hóa cứng làm biến môi trường khi chạy thùng chứa máy chủ SQL. Bạn cũng cần phải mã hóa cứng mật khẩu SA vào chuỗi kết nối trong mã ASP.Net (hoặc cũng cung cấp nó theo một cách khác trong tệp cấu hình, v.v.)

Dòng dưới cùng trong tất cả các ví dụ về mật khẩu là khó được mã hóa ở đâu đó.

Trong hầu hết các ứng dụng chúng tôi phát triển ngay bây giờ, chúng tôi thực sự sử dụng xác thực cửa sổ thay vào đó hoặc sử dụng tài khoản dịch vụ được quản lý theo nhóm thay thế. Nhưng theo như tôi biết, bạn không thể thêm một thùng chứa cửa sổ vào một tên miền, do đó máy chủ SQL không phải là một phần của miền cửa sổ vì vậy tôi không thấy một cách để sử dụng xác thực cửa sổ ở đây.

Vì vậy, có ai thay thế mật khẩu mã hóa theo cách này không?

Trả lời

1

Tôi đang xử lý chính xác với cùng một vấn đề. Here là thủ tục hoàn thiện nhất mà tôi đã tìm thấy. Bí quyết là sử dụng gMSA.

Nhưng, như JanneRantala nói ở cuối, tôi đang gặp vấn đề tương tự khi cố gắng để thêm một tài khoản mới trong cơ sở dữ liệu:

Msg 15401, Level 16, State 1, Line 3 của Windows Không tìm thấy người dùng NT hoặc nhóm 'YOUR_DOMAIN \ gmsa $'. Kiểm tra lại tên.

+1

Cảm ơn. Tôi cũng đọc về gMSA nhưng không thể hiểu đầy đủ cách xác thực hoạt động. Một vấn đề tương tự sẽ xảy ra với xác thực Windows với máy chủ IIS. Hy vọng tài liệu liên quan hơn sẽ phát triển như công nghệ tuyệt vời này phát triển trong môi trường cửa sổ. – IProgrammer

0

Dưới đây là hướng dẫn cách làm cho nó hoạt động. Windows Containers Walkthrough

Điều này sẽ không hoạt động nếu SQL của bạn cũng đang chạy trong vùng chứa vì bản thân máy chủ SQL phải là một phần của Active Directory để có thể sử dụng tài khoản GMSA.

+2

Cảm ơn. Tôi đã sẵn sàng cái này trước đây rồi. Nhưng đây chính là vấn đề tôi đang cố giải quyết. Tôi muốn toàn bộ ứng dụng chạy trong các thùng chứa - cả sql và IIS. – IProgrammer

+0

Nếu những người đang chạy trong container khác nhau thì nó sẽ không bao giờ có thể. Nếu họ đang chạy trong container duy nhất thì có lẽ là một cách xung quanh nó. Ngoài ra, bạn không cần phải hardcode vào container bất kỳ dữ liệu nếu đó là mối quan tâm chính của bạn, bạn có thể vượt qua bí mật thông qua các biến môi trường khi bạn bắt đầu container –

+0

Cảm ơn GSA.Sau khi đọc bình luận của bạn một số đã đọc thêm và có vẻ như đây có thể là một cách tốt để tiếp tục: https://www.ctl.io/developers/blog/post/tutorial-protecting-sensitive-info-docker – IProgrammer

1

Xác thực Windows được tự động bật trong Windocks SQL Server containers. Xem here để biết thêm chi tiết. Các thùng chứa SQL Server được tạo trong Windocks là SQL Server có tên các cá thể được tạo tự động từ Dịch vụ SQL mặc định đã được cài đặt trên Windows Server (2012 R2 hoặc 2016). Bất kỳ tài khoản Windows nào trong trường hợp mặc định được tự động bật trong các phiên bản vùng chứa.

Các vấn đề liên quan