Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

บัญชีบริการที่มีการจัดการ (MSA ) เป็นบัญชี Active Directory ชนิดพิเศษที่สามารถใช้เพื่อเรียกใช้บริการ แอปพลิเคชัน และงานตามกำหนดเวลาได้อย่างปลอดภัย แนวคิดพื้นฐานคือรหัสผ่านสำหรับบัญชีเหล่านี้ได้รับการจัดการโดย Active Directory รหัสผ่านที่ซับซ้อนซึ่งมีความยาว 240 อักขระจะถูกสร้างขึ้นโดยอัตโนมัติสำหรับพวกเขา ซึ่งจะเปลี่ยนโดยอัตโนมัติ (โดยค่าเริ่มต้น ทุกๆ 30 วัน) เฉพาะ Kerberos เท่านั้นที่ใช้สำหรับการรับรองความถูกต้อง (ไม่มีปัญหาด้านความปลอดภัย NTLM) ไม่อนุญาตให้เข้าสู่ระบบแบบโต้ตอบ ไม่มีใครรู้จักรหัสผ่านและไม่ได้จัดเก็บไว้ในระบบภายในเครื่อง (คุณไม่สามารถแยกรหัสผ่านจากกระบวนการระบบ LSASS ด้วย mimikatz หรือสิ่งที่คล้ายคลึงกัน เครื่องมือ). ด้วยวิธีนี้ ในการเริ่มบริการหรืองานที่ไม่มีผู้ดูแล คุณไม่จำเป็นต้องสร้างผู้ใช้บริการแต่ละรายใน AD และจัดการรหัสผ่านของพวกเขา

บัญชีบริการที่มีการจัดการ ถูกนำมาใช้ใน Windows Server 2008 R2 (ประเภทอ็อบเจ็กต์ msDS-ManagedServiceAccount ). ข้อจำกัดหลักของพวกเขาคือบัญชีดังกล่าวสามารถใช้ได้บนเซิร์ฟเวอร์เดียวเท่านั้น (ไม่สามารถใช้ในบริการคลัสเตอร์และร้อง) ดังนั้น Windows Server 2012 จึงแนะนำบัญชีบริการที่มีการจัดการกลุ่ม/gMSA (ประเภท msDS-GroupManagedServiceAccount ). บัญชี gMSA สามารถใช้ได้พร้อมกันในหลายโฮสต์

มาพิจารณาคุณลักษณะของการใช้ MSA และ gMSA เพื่อเปิดบริการและงานบนเซิร์ฟเวอร์และเวิร์กสเตชันใน Active Directory

ข้อกำหนดสำหรับการใช้บัญชีบริการ MSA/gMSA:

บัญชีบริการที่มีการจัดการ บัญชีบริการที่มีการจัดการกลุ่ม
โดเมน AD และระดับการทำงานของฟอเรสต์ Windows Server 2008 R2 หรือใหม่กว่า Windows Server 2012 หรือใหม่กว่า
KDC ตัวควบคุมโดเมนที่เปิดใช้งาน Microsoft Key Distribution Service (KdsSvc)
PowerShell ในการสร้างและจัดการบัญชี AD ของบริการ คุณต้องติดตั้งโมดูล Active Directory สำหรับ Windows PowerShell
.Net Framework ต้องติดตั้ง.NET Framework 3.5 หรือใหม่กว่าบนเซิร์ฟเวอร์
เวอร์ชัน Windows ที่รองรับ Windows 7/Windows Server 2008 R2 หรือใหม่กว่า Windows Server 2012/Windows 8 หรือใหม่กว่า

สร้างคีย์บริการการกระจายคีย์ (KDS)

ก่อนที่คุณจะเริ่มสร้างบัญชี MSA/gMSA คุณต้องดำเนินการแบบครั้งเดียวและสร้างคีย์รูท KDS ในการดำเนินการ ให้เรียกใช้คำสั่ง PowerShell ต่อไปนี้บนตัวควบคุมโดเมน (ต้องติดตั้งและเรียกใช้ Microsoft Key Distribution Services):

Add-KdsRootKey –EffectiveImmediately

ในกรณีนี้ คีย์จะถูกสร้างขึ้นและจะพร้อมใช้งานภายใน 10 ชั่วโมงหลังจากการจำลองแบบ AD สิ้นสุดลง

เคล็ดลับ หากต้องการใช้คีย์ทันทีในสภาพแวดล้อมการทดสอบ คุณสามารถเรียกใช้คำสั่งนี้:
Add-KdsRootKey –EffectiveTime ((get-date).addhours(-10))

ตรวจสอบให้แน่ใจว่าสร้างคีย์รูท KDS สำเร็จแล้ว:
Get-KdsRootKey
การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

ใช้คำสั่งเพื่อตรวจสอบคีย์ KDS:

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

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

วิธีการสร้างบัญชี MSA ที่มีการจัดการใน Active Directory

ในการสร้างบัญชีที่จัดการ MSA ใหม่ใน AD ให้ใช้คำสั่ง:

New-ADServiceAccount -Name msaMunSrv1 –RestrictToSingleComputer

โดยค่าเริ่มต้น MSA และ gMSA จะถูกสร้างขึ้นในคอนเทนเนอร์ CN=Managed Service Accounts แต่คุณสามารถเปลี่ยน OU ได้โดยใช้ เส้นทาง พารามิเตอร์

เชื่อมโยงบัญชีบริการ MSA ของคุณกับคอมพิวเตอร์เป้าหมาย:

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

เพื่อเป็นการเตือนความจำ คุณสามารถใช้บัญชี MSA กับโฮสต์ AD เดียวเท่านั้น

เปิดคอนโซล ADUC (ผู้ใช้และคอมพิวเตอร์ของ Active Directory) และตรวจสอบให้แน่ใจว่าบัญชีใหม่ประเภท msDS-ManagedServiceAccount ปรากฏใน บัญชีบริการที่มีการจัดการ คอนเทนเนอร์ (OU)

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

คอนเทนเนอร์ AD นี้ถูกซ่อนไว้โดยค่าเริ่มต้น หากต้องการดู ให้เปิดใช้งาน คุณลักษณะขั้นสูง ใน มุมมอง เมนูของสแนปอิน

คุณสามารถรับข้อมูลบัญชี MSA ได้โดยใช้คำสั่ง:

Get-ADServiceAccount msaMunSrv1

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

สร้างบัญชีบริการที่มีการจัดการกลุ่ม (gMSA) ใน Active Directory

ก่อนสร้างบัญชี gMSA ให้สร้างกลุ่มความปลอดภัยของโดเมนและเพิ่มเซิร์ฟเวอร์ในบัญชีที่จะได้รับอนุญาตให้ใช้รหัสผ่านสำหรับบัญชีบริการกลุ่มนี้ วิธีที่ง่ายที่สุดในการสร้างและเติมข้อมูลกลุ่มคือการใช้ 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$

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

ในการสร้างบัญชีบริการที่มีการจัดการกลุ่ม (gMSA) ให้ใช้คำสั่ง:

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

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

บัญชี gMSA จะถูกสร้างขึ้นตามค่าเริ่มต้นใน OU ของบัญชีบริการที่มีการจัดการ

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

การติดตั้งบัญชีบริการที่มีการจัดการแบบกลุ่มใน Windows

ในการใช้บัญชีบริการ MSA / gMSA บนเซิร์ฟเวอร์เป้าหมายหรือเวิร์กสเตชัน ก่อนอื่นคุณต้องติดตั้งโมดูล Active Directory PowerShell:

Add-WindowsFeature RSAT-AD-PowerShell

ติดตั้งบัญชีบริการ MSA (gMSA) บนเซิร์ฟเวอร์:

Install-ADServiceAccount -Identity gmsaMunSQL1

ตรวจสอบว่าติดตั้งบัญชีบริการถูกต้องหรือไม่:

Test-ADServiceAccount gmsaMunSQL1

หากคำสั่งส่งคืน จริง , ทุกอย่างได้รับการกำหนดค่าอย่างถูกต้อง

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

หากคำสั่งส่งคืน False เป็นไปได้มากว่าบัญชี MSA ไม่ได้ติดตั้งบนเซิร์ฟเวอร์หรือคอมพิวเตอร์เครื่องนี้ไม่มีสิทธิ์ในการใช้งาน:

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน 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.

คุณไม่สามารถใช้ RunAs มาตรฐานเพื่อตรวจสอบว่าบริการและสคริปต์ของคุณสามารถทำงานภายใต้บัญชีบริการ MSA ได้ ใช้เครื่องมือ PsExec แทน (ก่อนหน้านี้เราได้แสดงให้คุณเห็นถึงวิธีใช้ psexec เพื่อเรียกใช้พรอมต์คำสั่งในนามของ NT Authority\System)

  1. เปิดพรอมต์คำสั่งในฐานะผู้ดูแลระบบ
  2. เรียกใช้คำสั่ง:PsExec64.exe -i -u woshub\gmsaMunSQL1$ -p ~ cmd.exe แทนที่รหัสผ่านด้วย ~ . ซึ่งหมายความว่าต้องได้รับรหัสผ่านจาก AD
  3. ในหน้าต่าง cmd ที่เปิดขึ้น ให้เรียกใช้ whoami คำสั่งเพื่อให้แน่ใจว่าคอนโซลทำงานภายใต้บัญชี gMSA การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory
  4. ตรวจสอบว่าสคริปต์ โปรแกรม หรือบริการทำงานอย่างถูกต้องภายใต้บัญชีบริการที่มีการจัดการ

ตอนนี้ยังคงต้องกำหนดค่าบริการ Windows ที่จำเป็น งานตัวกำหนดเวลางาน พูล IIS เป็นต้น เพื่อให้ทำงานเป็นผู้ใช้ MSA/gMSA

จะเรียกใช้บริการ Windows ภายใต้บัญชีบริการที่มีการจัดการได้อย่างไร

ตอนนี้คุณกำหนดค่าบริการ Windows ที่จำเป็นให้ทำงานภายใต้บัญชี MSA/gMSA ได้แล้ว

  1. เปิดคอนโซลการจัดการบริการ (services.msc );
  2. เปิดคุณสมบัติของบริการที่จำเป็นและไปที่ “เข้าสู่ระบบ ” แท็บ;
  3. เลือก บัญชีนี้ ตัวเลือกและป้อนชื่อบัญชี MSA อย่าลืมเพิ่ม $ สัญลักษณ์ที่ท้ายชื่อบัญชี (คุณไม่จำเป็นต้องป้อนรหัสผ่านบัญชี)
  4. บัญชีบริการ MSA จะได้รับโดยอัตโนมัติ เข้าสู่ระบบในฐานะบริการ สิทธิ์; การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory
  5. หลังจากบันทึกการเปลี่ยนแปลงแล้ว ต้องเริ่มบริการใหม่
หากต้องการเรียกใช้บริการที่ซับซ้อนด้วย gMSA ให้ตรวจสอบเอกสารประกอบเพื่อดูว่ารองรับหรือไม่ ปัจจุบัน gMSA รองรับใน SQL Server, IIS, AD LDS, Exchange Server

การเรียกใช้งานที่กำหนดเวลาไว้ด้วยบัญชีบริการที่มีการจัดการ/gMSA

คุณสามารถกำหนดค่า Windows Task Scheduler เพื่อเรียกใช้งานภายใต้บัญชีบริการ gMSA สะดวกเพราะว่ารหัสผ่านสำหรับบัญชี gMSA ไม่ได้จัดเก็บไว้ในสคริปต์ คุณไม่จำเป็นต้องเข้ารหัสหรือป้องกัน เมื่อรหัสผ่านเปลี่ยน คุณไม่จำเป็นต้องกำหนดค่างานใหม่

ในการให้สิทธิ์กับบัญชี MSA/gMSA การเพิ่มไปยังกลุ่มความปลอดภัยที่จำเป็นก็เพียงพอแล้ว ตัวอย่างเช่น ไปยังกลุ่มผู้ดูแลระบบภายใน, ผู้ดูแลระบบโดเมน, ผู้ดูแลระบบ DNS เป็นต้น

คุณสามารถกำหนดค่างานให้ทำงานเป็นบัญชี gMSA โดยใช้ PowerShell ตัวอย่างเช่น สคริปต์ต่อไปนี้จะสร้างงานที่กำหนดเวลาไว้ใหม่ซึ่งเรียกใช้สคริปต์ PowerShell ทุกวันเวลา 23:00 น. เพื่อสำรองฐานข้อมูล:

$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

การใช้บัญชีบริการที่มีการจัดการ (MSA และ gMSA) ใน Active Directory

เคล็ดลับ ในการเรียกใช้งานที่กำหนดเวลาไว้ คุณต้องให้สิทธิ์บัญชี gMSA “เข้าสู่ระบบเป็นงานชุดงาน " การอนุญาต.

'-LogonType Password ' อาร์กิวเมนต์ระบุว่ารหัสผ่านสำหรับบัญชี gMSA นี้จะถูกดึงมาจากตัวควบคุมโดเมน

เรียนรู้เพิ่มเติมเกี่ยวกับการจัดการงานที่กำหนดเวลาไว้ด้วย PowerShell

คุณยังสามารถสร้างงานที่กำหนดเวลาไว้ด้วยการตั้งค่าที่ต้องการโดยใช้ taskschd.msc กุย. จากนั้นคุณสามารถกำหนดค่าใหม่โดยใช้เครื่องมือ schtasks.exe เพื่อเรียกใช้ภายใต้บัญชีบริการที่มีการจัดการ:

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