Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Tài khoản dịch vụ được quản lý ( MSA ) là một loại tài khoản Active Directory đặc biệt có thể được sử dụng để chạy các dịch vụ, ứng dụng và tác vụ đã lên lịch một cách an toàn. Ý tưởng cơ bản là mật khẩu cho các tài khoản này được quản lý hoàn toàn bởi Active Directory. Mật khẩu phức tạp có độ dài 240 ký tự được tạo tự động cho chúng, mật khẩu này sẽ tự động thay đổi (theo mặc định, 30 ngày một lần). Chỉ Kerberos được sử dụng để xác thực (không có vấn đề bảo mật NTLM), đăng nhập tương tác không được phép, mật khẩu không bị ai biết và không được lưu trữ trên hệ thống cục bộ (bạn không thể trích xuất mật khẩu từ quy trình hệ thống LSASS bằng mimikatz hoặc tương tự công cụ). Bằng cách này, để bắt đầu một dịch vụ hoặc các công việc không cần giám sát, bạn không cần tạo từng người dùng dịch vụ trong AD và quản lý mật khẩu của họ.

Tài khoản dịch vụ được quản lý đã được giới thiệu trong Windows Server 2008 R2 (loại đối tượng msDS-ManagedServiceAccount ). Hạn chế chính của chúng là tài khoản như vậy chỉ có thể được sử dụng trên một máy chủ (chúng không thể được sử dụng trong các dịch vụ cụm và NLB). Do đó, Windows Server 2012 đã giới thiệu Tài khoản dịch vụ được quản lý theo nhóm / gMSA (nhập msDS-GroupManagedServiceAccount ). Tài khoản gMSA có thể được sử dụng đồng thời trên nhiều máy chủ.

Hãy xem xét các tính năng của việc sử dụng MSA và gMSA để khởi chạy các dịch vụ và tác vụ trên máy chủ và máy trạm trong Active Directory.

Yêu cầu đối với việc sử dụng tài khoản dịch vụ MSA / gMSA:

Tài khoản dịch vụ được quản lý Tài khoản dịch vụ được quản lý theo nhóm
Miền AD và cấp chức năng của rừng Windows Server 2008 R2 hoặc mới hơn Windows Server 2012 hoặc mới hơn
KDC Bộ điều khiển miền có bật Dịch vụ phân phối khóa của Microsoft (KdsSvc)
PowerShell Để tạo và quản lý tài khoản AD dịch vụ, bạn cần cài đặt mô-đun Active Directory cho Windows PowerShell
.Net Framework .NET Framework 3.5 hoặc mới hơn phải được cài đặt trên máy chủ
Các phiên bản Windows được hỗ trợ Windows 7 / Windows Server 2008 R2 hoặc mới hơn Windows Server 2012 / Windows 8 trở lên

Tạo Khoá của Dịch vụ Phân phối Khoá (KDS)

Trước khi bắt đầu tạo tài khoản MSA / gMSA, bạn phải thực hiện thao tác một lần và tạo khóa gốc KDS. Để thực hiện việc đó, hãy chạy lệnh PowerShell sau trên bộ điều khiển miền (Dịch vụ phân phối khóa của Microsoft phải được cài đặt và chạy):

Add-KdsRootKey –EffectiveImmediately

Trong trường hợp này, khóa được tạo và có sẵn sau 10 giờ sau khi quá trình sao chép quảng cáo kết thúc.

Mẹo. Để sử dụng khóa ngay lập tức trong môi trường thử nghiệm, bạn có thể chạy lệnh sau:
Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))

Đảm bảo rằng khóa gốc KDS đã được tạo thành công:
Get-KdsRootKey
Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Sử dụng lệnh để kiểm tra khóa KDS:

Test-KdsRootKey -KeyId (Get-KdsRootKey).KeyId

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Cách tạo tài khoản MSA được quản lý trong Active Directory

Để tạo tài khoản được quản lý MSA mới trong AD, hãy sử dụng lệnh:

New-ADServiceAccount -Name msaMunSrv1 –RestrictToSingleComputer

Theo mặc định, MSA và gMSA được tạo trong vùng chứa CN =Tài khoản dịch vụ được quản lý , nhưng bạn có thể thay đổi đơn vị tổ chức bằng cách sử dụng Đường dẫn tham số.

Liên kết tài khoản dịch vụ MSA của bạn với máy tính đích:

$Identity = Get-ADComputer -identity mun-srv01
Add-ADComputerServiceAccount -Identity $identity -ServiceAccount msaMunSrv1

Xin nhắc lại, bạn chỉ có thể sử dụng tài khoản MSA trên một máy chủ AD.

Mở bảng điều khiển ADUC (Người dùng Active Directory và Máy tính) và đảm bảo rằng tài khoản mới thuộc loại msDS-ManagedServiceAccount đã xuất hiện trong Tài khoản Dịch vụ được Quản lý vùng chứa (OU).

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Vùng chứa QUẢNG CÁO này được ẩn theo mặc định. Để xem nó, hãy bật Tính năng nâng cao trong Chế độ xem menu của snap-in.

Bạn có thể lấy thông tin tài khoản MSA bằng lệnh:

Get-ADServiceAccount msaMunSrv1

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Tạo tài khoản dịch vụ được quản lý theo nhóm (gMSA) trong Active Directory

Trước khi tạo tài khoản gMSA, hãy tạo một nhóm bảo mật tên miền và thêm các máy chủ vào đó sẽ được phép sử dụng mật khẩu cho tài khoản dịch vụ nhóm này. Cách dễ nhất để tạo và điền nhóm là sử dụng PowerShell:
New-ADGroup grMunSQL1 -path 'OU=Groups,OU=Munich,OU=DE,dc=woshub,DC=com' -GroupScope Global -PassThru –Verbose
Add-AdGroupMember -Identity grMunSQL1 -Members mun-sql01$, mun-sql02$, mun-sql03$

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Để tạo Tài khoản dịch vụ được quản lý theo nhóm (gMSA), hãy sử dụng lệnh:

New-ADServiceAccount -name gmsaMunSQL1 -DNSHostName gmsaMunSQL1.woshub.com -PrincipalsAllowedToRetrieveManagedPassword grMunSQL1 –verbose

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Tài khoản gMSA cũng được tạo theo mặc định trong Đơn vị tổ chức tài khoản dịch vụ được quản lý.

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Cài đặt tài khoản dịch vụ do nhóm quản lý trên Windows

Để sử dụng tài khoản dịch vụ MSA / gMSA trên máy chủ hoặc máy trạm mục tiêu, trước tiên bạn cần cài đặt mô-đun Active Directory PowerShell:

Add-WindowsFeature RSAT-AD-PowerShell

Cài đặt tài khoản dịch vụ MSA (gMSA) trên máy chủ:

Install-ADServiceAccount -Identity gmsaMunSQL1

Kiểm tra xem tài khoản dịch vụ đã được cài đặt đúng chưa:

Test-ADServiceAccount gmsaMunSQL1

Nếu lệnh trả về True , mọi thứ đều được định cấu hình chính xác.

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Nếu lệnh trả về False , rất có thể tài khoản MSA không được cài đặt trên máy chủ hoặc máy tính này không có quyền sử dụng nó:

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

WARNING: Test failed for Managed Service Account gmsaMunSQL1. If standalone Managed Service Account, the account is linked to another computer object in the Active Directory. If group Managed Service Account, either this computer does not have permission to use the group MSA or this computer does not support all the Kerberos encryption types required for the gMSA.

Bạn không thể sử dụng RunA tiêu chuẩn để xác minh rằng các dịch vụ và tập lệnh của bạn có thể chạy trong tài khoản dịch vụ MSA. Thay vào đó, hãy sử dụng công cụ PsExec (trước đây chúng tôi đã hướng dẫn bạn cách sử dụng psexec để chạy dấu nhắc lệnh thay mặt cho NT Authority \ System).

  1. Mở dấu nhắc lệnh với tư cách quản trị viên;
  2. Chạy lệnh:PsExec64.exe -i -u woshub\gmsaMunSQL1$ -p ~ cmd.exe Thay thế mật khẩu bằng ~ . Điều này có nghĩa là mật khẩu phải được lấy từ AD.
  3. Trong cửa sổ cmd mở ra, hãy chạy whoami lệnh để đảm bảo rằng bảng điều khiển đang chạy trong tài khoản gMSA; Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory
  4. Xác minh rằng các tập lệnh, chương trình hoặc dịch vụ đang chạy chính xác trong Tài khoản dịch vụ được quản lý.

Bây giờ nó vẫn là cấu hình các dịch vụ Windows cần thiết, tác vụ của bộ lập lịch tác vụ, nhóm IIS, v.v., để chạy với tư cách người dùng MSA / gMSA.

Cách chạy Dịch vụ Windows trong Tài khoản Dịch vụ được Quản lý?

Giờ đây, bạn có thể định cấu hình dịch vụ Windows cần thiết để chạy trong tài khoản MSA / gMSA.

  1. Mở bảng điều khiển quản lý dịch vụ (services.msc );
  2. Mở các thuộc tính của dịch vụ được yêu cầu và chuyển đến phần “ Đăng nhập Tab ”;
  3. Chọn Tài khoản này và nhập tên của tài khoản MSA. Hãy chắc chắn thêm $ ký hiệu ở cuối tên tài khoản (bạn không cần nhập mật khẩu tài khoản);
  4. Tài khoản dịch vụ MSA sẽ tự động được cấp Đăng nhập dưới dạng dịch vụ sự cho phép; Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory
  5. Sau khi lưu các thay đổi, dịch vụ phải được khởi động lại.
Để chạy các dịch vụ phức tạp với gMSA, hãy kiểm tra tài liệu để xem nó có được hỗ trợ hay không. Hiện tại gMSA được hỗ trợ trong SQL Server, IIS, AD LDS, Exchange Server

Chạy Tác vụ đã Lên lịch với Tài khoản Dịch vụ Được Quản lý / gMSA

Bạn có thể cấu hình Bộ lập lịch tác vụ Windows để chạy các công việc trong tài khoản dịch vụ gMSA. Điều này rất tiện lợi vì mật khẩu của tài khoản gMSA không được lưu trữ trong các tập lệnh, bạn không cần phải mã hóa hoặc bảo vệ chúng. Khi mật khẩu thay đổi, bạn không phải định cấu hình lại tác vụ.

Để cấp quyền cho tài khoản MSA / gMSA, chỉ cần thêm nó vào nhóm bảo mật bắt buộc là đủ. Ví dụ:đối với nhóm Quản trị viên cục bộ, Quản trị viên Miền, Quản trị viên DNS, v.v.

Bạn có thể định cấu hình tác vụ để chạy dưới dạng tài khoản gMSA bằng PowerShell. Ví dụ:tập lệnh sau sẽ tạo một tác vụ được lên lịch mới chạy tập lệnh PowerShell mỗi ngày vào lúc 11 giờ đêm để sao lưu cơ sở dữ liệu:

$action = New-ScheduledTaskAction -Execute powershell.exe  -Argument "-file C:\PS\Scripts\DBBackup.ps1 -executionpolicy bypass -NoProfile"
$trigger = New-ScheduledTaskTrigger -At 23:00 -Daily
$principal = New-ScheduledTaskPrincipal -UserID woshub\gmsaMunSQL1$ -LogonType Password
Register-ScheduledTask DBBackup –Action $action –Trigger $trigger –Principal $principal

Sử dụng tài khoản dịch vụ được quản lý (MSA và gMSA) trong Active Directory

Mẹo. Để chạy tác vụ đã lên lịch, bạn cần cấp tài khoản gMSA “ Đăng nhập dưới dạng công việc hàng loạt " sự cho phép.

-LogonType Password Đối số ‘chỉ định rằng mật khẩu cho tài khoản gMSA này sẽ được truy xuất từ ​​bộ điều khiển miền.

Tìm hiểu thêm về cách quản lý các tác vụ đã lên lịch với PowerShell.

Bạn cũng có thể tạo công việc đã lên lịch với các cài đặt mong muốn bằng cách sử dụng taskschd.msc GUI. Sau đó, bạn có thể định cấu hình lại nó bằng công cụ schtasks.exe để chạy trong tài khoản dịch vụ được quản lý:

schtasks /Change /TN BackupDB /RU "woshub\gmsaMunSQL1$" /RP ""