กำหนดค่าการรับรองความถูกต้อง Kerberos สำหรับ Exchange Server

หากคุณพบข้อความแจ้งการรับรองความถูกต้องบ่อยครั้งหรือประสิทธิภาพการทำงานช้าใน Outlook และ Exchange Server การเปิดใช้งานการรับรองความถูกต้อง Kerberos จะแก้ไขปัญหาได้ นอกจากนี้ Kerberos ยังให้ความปลอดภัยที่แข็งแกร่งกว่าและประสิทธิภาพที่ดีกว่าเมื่อเปรียบเทียบกับการตรวจสอบสิทธิ์ NTLM ในบทความนี้ คุณจะได้เรียนรู้วิธีกำหนดค่า Kerberos Authentication สำหรับ Exchange Server

การตรวจสอบสิทธิ์ Kerberos เป็นโปรโตคอลที่ปลอดภัยและมีประสิทธิภาพซึ่งใช้โดย Exchange Server เพื่อตรวจสอบข้อมูลประจำตัวผู้ใช้โดยไม่ต้องแจ้งรหัสผ่านซ้ำ ทำงานบนระบบที่ใช้ตั๋ว ซึ่งผู้ใช้ตรวจสอบสิทธิ์เพียงครั้งเดียวและรับตั๋วออกตั๋ว (TGT) TGT นี้ใช้เพื่อขอตั๋วบริการสำหรับการเข้าถึงบริการ Exchange Server เช่น Outlook และแอปพลิเคชันบนเว็บ

ด้วยการใช้การรับรองความถูกต้องของ Kerberos ใน Exchange Server องค์กรต่างๆ จึงสามารถบรรลุกระบวนการตรวจสอบความถูกต้องที่ปลอดภัย ราบรื่น และมีประสิทธิภาพมากขึ้น ในขณะที่ลดการพึ่งพา NTLM หรือวิธีการตรวจสอบความถูกต้องขั้นพื้นฐาน

บันทึก:การรับรองความถูกต้อง Kerberos สำหรับ Exchange Server ไม่ได้เปิดใช้งานตามค่าเริ่มต้น จำเป็นต้องมีการตั้งค่าเพิ่มเติมหลังการติดตั้ง รวมถึงการสร้างบัญชีบริการสำรอง (ASA) และการกำหนดค่าชื่อหลักบริการ (SPN) อย่างเหมาะสม

แนะนำให้อ่าน:

ผู้ดูแลระบบจำนวนมากมองข้ามการกำหนดค่านี้ ซึ่งอาจพลาดประโยชน์ด้านความปลอดภัยและประสิทธิภาพที่ Kerberos มอบให้

วิธีกำหนดค่าการรับรองความถูกต้อง Kerberos ใน Exchange Server

Microsoft ขอแนะนำให้ใช้ระเบียน A แทนระเบียน CNAME เพื่อให้แน่ใจว่าไคลเอ็นต์ออกคำขอตั๋ว Kerberos ตามชื่อที่ใช้ร่วมกันอย่างถูกต้อง ไม่ใช่เซิร์ฟเวอร์ FQDN

ในองค์กรของเรา เรามีการตั้งค่า DNS ภายในสำหรับ Exchange Server ดังต่อไปนี้:

  • mail.exoip.comสำหรับ MAPI ผ่าน HTTP และ Outlook ได้ทุกที่
  • autodiscover.exoip.comสำหรับบริการค้นหาอัตโนมัติ

นี่คือลักษณะที่ปรากฏใน DNSmail.exoip.com.

นี่คือลักษณะที่ปรากฏใน DNSautodiscover.exoip.com.

ตาม FQDN ข้างต้น เราต้องเชื่อมโยง SPN ต่อไปนี้กับข้อมูลรับรอง ASA:

  • http/mail.exoip.com
  • http/autodiscover.exoip.com

เราจะทำตามขั้นตอนด้านล่างและตั้งค่า Kerberos Authentication สำหรับ Exchange Server

ขั้นตอนที่ 1: สร้างบัญชีบริการสำรอง (ASA)

เซิร์ฟเวอร์ Exchange ทั้งหมดที่เรียกใช้บริการการเข้าถึงไคลเอ็นต์ที่ใช้เนมสเปซและ URL เดียวกันต้องใช้ข้อมูลประจำตัวของบัญชีบริการสำรองเดียวกันหรือ (ข้อมูลประจำตัว ASA) โดยทั่วไป การมีบัญชีเดียวสำหรับฟอเรสต์สำหรับ Exchange แต่ละเวอร์ชันก็เพียงพอแล้ว

บันทึก:คุณสามารถแชร์ข้อมูลรับรอง ASA เดียวกันได้จาก Exchange Server 2013 ขึ้นไป ดังนั้นคุณไม่จำเป็นต้องสร้างใหม่หากคุณต้องการย้ายจาก Exchange Server 2016 ไปยัง Exchange Server 2019

  1. เริ่มผู้ใช้ Active Directory และคอมพิวเตอร์
  2. ไปที่หน่วยองค์กรที่ตั้งวัตถุคอมพิวเตอร์ Exchange Server
  3. คลิกขวาที่มันแล้วเลือกคุณสมบัติ
  1. คลิกที่ตัวแก้ไขคุณสมบัติแท็บ
  2. ดับเบิลคลิกที่ชื่อที่โดดเด่นคุณลักษณะ
  3. สำเนาค่า
  1. เริ่ม Exchange Management Shell ในฐานะผู้ดูแลระบบ
  2. สร้างวัตถุคอมพิวเตอร์ AD ด้วยชื่อEXCH2019ASAและใช้ค่า OU ที่คุณคัดลอกไว้ในขั้นตอนก่อนหน้าสำหรับพารามิเตอร์ -Path
New-ADComputer -Name "EXCH2019ASA" -AccountPassword (Read-Host "Enter new password" -AsSecureString) -Description "Alternate Service Account credentials for Exchange" -Enabled:$True -SamAccountName "EXCH2019ASA" -Path "OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local"
  1. กรอกรหัสผ่านใหม่สำหรับวัตถุคอมพิวเตอร์ AD
  2. เปิดใช้งานการเข้ารหัส AES 256 เพื่อรองรับ Kerberos
Set-ADComputer "EXCH2019ASA" -add @{"msDS-SupportedEncryptionTypes"="28"}
  1. ตรวจสอบว่าวัตถุคอมพิวเตอร์ AD ถูกสร้างขึ้นเสร็จเรียบร้อยแล้ว
Get-ADComputer "EXCH2019ASA"

ผลลัพธ์จะปรากฏขึ้น

DistinguishedName : CN=EXCH2019ASA,OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local
DNSHostName       :
Enabled           : True
Name              : EXCH2019ASA
ObjectClass       : computer
ObjectGUID        : 0779280f-c25b-431c-b37e-1bfc020ec72a
SamAccountName    : EXCH2019ASA$
SID               : S-1-5-21-813775357-375391071-1622867542-1150
UserPrincipalName :

คุณยังสามารถค้นหาวัตถุคอมพิวเตอร์ AD ได้ในผู้ใช้ Active Directory และคอมพิวเตอร์

ขั้นตอนที่ 2 จำลองการเปลี่ยนแปลงกับตัวควบคุมโดเมนทั้งหมด

หลังจากที่คุณสร้างบัญชีแล้ว ให้จำลองการเปลี่ยนแปลงไปยังตัวควบคุมโดเมน AD DS ทั้งหมด

repadmin /syncall /ADPe

ขั้นตอนที่ 3 ปรับใช้ ASA Credential กับ Exchange Server แรก

วิธีการเดียวที่ได้รับการสนับสนุนสำหรับการปรับใช้ข้อมูลรับรอง ASA คือการใช้RollAlternateServiceAcountPassword.ps1สคริปต์จากโฟลเดอร์สคริปต์ Exchange Server

  1. เรียกใช้ Exchange Management Shell ในฐานะผู้ดูแลระบบ
  2. เปลี่ยนไดเรกทอรีเป็นโฟลเดอร์สคริปต์ Exchange Server
cd $exscripts
  1. ปรับใช้ข้อมูลประจำตัว ASA กับ Exchange Server แรกที่เรียกใช้บริการการเข้าถึงไคลเอ็นต์
.RollAlternateServiceAccountPassword.ps1 -ToSpecificServer "EX01-2019.exoip.local" -GenerateNewPasswordFor exoipEXCH2019ASA$
  1. เมื่อระบบถามว่าคุณต้องการเปลี่ยนรหัสผ่านสำหรับบัญชีบริการอื่นหรือไม่ ให้พิมพ์และและกดเข้า

ขั้นตอนที่ 4 ปรับใช้ ASA Credential กับ Exchange Server อื่น

หากคุณมี Exchange Server มากกว่าหนึ่งเครื่องที่ทำงานอยู่ในองค์กร ให้รันคำสั่งด้านล่าง

บันทึก:ทำเช่นนี้สำหรับเซิร์ฟเวอร์ Exchange ทั้งหมด เพียงแทนที่ปลายทาง Exchange Server (EX02-2019)

.RollAlternateServiceAccountPassword.ps1 -ToSpecificServer "EX02-2019.exoip.local" -CopyFrom "EX01-2019.exoip.local"

ขั้นตอนที่ 5 ตรวจสอบการปรับใช้ข้อมูลรับรอง ASA

ตรวจสอบการตั้งค่าข้อมูลรับรอง ASA บน Exchange Server

Get-ClientAccessServer "EX01-2019" -IncludeAlternateServiceAccountCredentialStatus | Format-List Name, AlternateServiceAccountConfiguration

ผลลัพธ์จะปรากฏขึ้น

Name                                 : EX01-2019
AlternateServiceAccountConfiguration : Latest: 3/4/2025 6:07:57 PM, exoipEXCH2019ASA$
                                       Previous: <Not set>

ขั้นตอนที่ 6 ตรวจสอบว่า SPN ไม่ได้เชื่อมโยงกับบัญชีอยู่แล้ว

ก่อนที่คุณจะเชื่อมโยง SPN กับข้อมูลประจำตัว ASA คุณต้องตรวจสอบว่า SPN เป้าหมายไม่ได้เชื่อมโยงกับบัญชีอื่นในฟอเรสต์ ข้อมูลประจำตัว ASA ต้องเป็นบัญชีเดียวในฟอเรสต์ที่เกี่ยวข้องกับ SPN เหล่านี้

เริ่ม Command Prompt และรันคำสั่งด้านล่าง

setspn -F -Q http/mail.exoip.com
setspn -F -Q http/autodiscover.exoip.com

คำสั่งควรกลับมาไม่พบ SPN ดังกล่าวตามที่แสดงด้านล่าง

Checking forest DC=exoip,DC=local

No such SPN found.

หากส่งคืนสิ่งใด แสดงว่าบัญชีอื่นเชื่อมโยงกับ SPN แล้ว

ขั้นตอนที่ 7 เชื่อมโยงชื่อหลักของบริการ (SPN) กับข้อมูลรับรอง ASA

  1. เริ่มพร้อมรับคำสั่ง
  2. เชื่อมโยง MAPI ผ่าน HTTP และ Outlook Anywhere SPN กับข้อมูลรับรอง ASA
setspn -S http/mail.exoip.com exoipEXCH2019ASA$

ผลลัพธ์จะปรากฏขึ้น

Checking domain DC=exoip,DC=local

Registering ServicePrincipalNames for CN=EXCH2019ASA,OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local
        http/mail.exoip.com
Updated object
  1. เชื่อมโยง SPN ของการค้นหาอัตโนมัติกับข้อมูลประจำตัว ASA
setspn -S http/autodiscover.exoip.com exoipEXCH2019ASA$

ผลลัพธ์จะปรากฏขึ้น

Checking domain DC=exoip,DC=local

Registering ServicePrincipalNames for CN=EXCH2019ASA,OU=Exchange Servers,OU=Servers,OU=Company,DC=exoip,DC=local
        http/autodiscover.exoip.com
Updated object

ขั้นตอนที่ 8 ตรวจสอบว่าคุณเชื่อมโยง SPN กับข้อมูลรับรอง ASA

เริ่ม Command Prompt และรันคำสั่งด้านล่าง คุณต้องรันคำสั่งนี้เพียงครั้งเดียว

setspn -L exoipEXCH2019ASA$

ขั้นตอนที่ 9 เปิดใช้งานการรับรองความถูกต้อง Kerberos สำหรับไคลเอนต์ Outlook

  1. เริ่ม Exchange Management Shell ในฐานะผู้ดูแลระบบ
  2. เปิดใช้งานการรับรองความถูกต้อง Kerberos สำหรับไคลเอนต์ Outlook Anywhere สำหรับเซิร์ฟเวอร์ Exchange ทั้งหมดที่คุณต้องการเปิดใช้งานการรับรองความถูกต้อง Kerberos
Get-OutlookAnywhere -Server "EX01-2019" | Set-OutlookAnywhere -InternalClientAuthenticationMethod Negotiate
  1. ตรวจสอบว่าตั้งค่าสำเร็จแล้ว
Get-OutlookAnywhere -Server "EX01-2019" | Format-Table InternalClientAuthenticationMethod

ผลลัพธ์จะปรากฏขึ้น

InternalClientAuthenticationMethod
----------------------------------
                         Negotiate
  1. เปิดใช้งานการรับรองความถูกต้อง Kerberos สำหรับ MAPI ผ่านไคลเอนต์ HTTP สำหรับเซิร์ฟเวอร์ Exchange ทั้งหมดที่คุณต้องการเปิดใช้งานการรับรองความถูกต้อง Kerberos
Get-MapiVirtualDirectory -Server "EX01-2019" | Set-MapiVirtualDirectory -IISAuthenticationMethods Ntlm,Negotiate
  1. ตรวจสอบว่าตั้งค่าสำเร็จแล้ว
Get-MapiVirtualDirectory -Server "EX01-2019" | Format-List IISAuthenticationMethods

ผลลัพธ์จะปรากฏขึ้น

IISAuthenticationMethods : {Ntlm, Negotiate}

ในสภาพแวดล้อมแบบไฮบริดที่มี Exchange Online หรือหากคุณใช้ OAuth ภายใน

$mapidir = Get-MapiVirtualDirectory -Server "EX01-2019"
$mapidir | Set-MapiVirtualDirectory -IISAuthenticationMethods ($mapidir.IISAuthenticationMethods +='Negotiate')

ขั้นตอนที่ 10 เริ่มบริการ Exchange Server ใหม่

รีสตาร์ทโฮสต์บริการ Microsoft Exchangeบริการและกลุ่มแอปพลิเคชันการค้นหาอัตโนมัติของ MS Exchangeเพื่อเร่งกระบวนการ ทำสิ่งนี้บนเซิร์ฟเวอร์ Exchange ทั้งหมด

Restart-Service MSExchangeServiceHost
Restart-WebAppPool -Name MSExchangeAutodiscoverAppPool

คุณยังสามารถรีสตาร์ท Exchange Servers ทั้งหมดได้หากต้องการ

ขั้นตอนที่ 11 ตรวจสอบการตรวจสอบสิทธิ์ Kerberos ไคลเอ็นต์ Exchange

หลังจากที่คุณกำหนดค่า Kerberos และข้อมูลประจำตัว ASA สำเร็จแล้ว ให้ตรวจสอบว่าไคลเอ็นต์สามารถตรวจสอบสิทธิ์ได้สำเร็จ

  1. เริ่มแนวโน้มบนเครื่องไคลเอนต์
  2. เริ่มพรอมต์คำสั่งบนเครื่องไคลเอนต์
  3. รันคำสั่งด้านล่าง
klist
  1. ตรวจสอบว่าตั๋วสองใบปรากฏพร้อมกับเซิร์ฟเวอร์HTTP/mail.exoip.comและHTTP/autodiscover.exoip.com

แค่นั้นแหละ!

บทสรุป

คุณได้เรียนรู้วิธีกำหนดค่า Kerberos Authentication สำหรับ Exchange Server Kerberos มีความปลอดภัยมากกว่า NTLM และช่วยลดค่าใช้จ่ายบนไคลเอนต์ เซิร์ฟเวอร์ Exchange และตัวควบคุมโดเมนของคุณ จำเป็นต้องกำหนดค่านี้ในทุกองค์กรที่ใช้ Exchange Server

คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการสร้าง DAG Exchange Server ทีละขั้นตอน อย่าลืมติดตามเราและแบ่งปันบทความนี้

Related Posts