ใน Microsoft Entra ID เครื่องส่วนตัว หรือ BYOD จะ register เข้า Entra ID และมี join type เป็น Microsoft Entra registered เครื่องของบริษัท ที่ไม่อยาก join เข้า on-premises AD DS หรือไม่มี AD DS ไว้ใช้งาน ก็จะ join เข้า Entra ID ตรงๆ และมี join type เป็น Microsoft Entra joined แต่ปัจจุบัน เครื่องส่วนใหญ่ตามบริษัทต่างๆ ยัง join on-premises AD DS อยู่ เราสามารถนำเครื่องเหล่านี้ join เข้า Entra ID อัตโนมัติได้ด้วยวิธี Hybrid Entra Join (ชื่อเดิมคือ Hybrid Azure AD Join) และเครื่องจะมี join type เป็น Microsoft Entra hybrid joined ครับ
เมื่อ user sign in เข้าเครื่องคอมพิวเตอร์ที่มี identity ใน Entra ID เขาจะได้ primary refresh token (PRT) จาก Entra ID
และเมื่อเขาเข้าใช้แอปพลิเคชั่น หรือบริการที่ใช้ Entra ID เป็น identity provider ก็จะเป็น SSO โดยไม่ต้องกรอกรหัสผ่านอีกครั้งครับ
นอกจากนี้ identity ของเขายังสามารถนำไปเป็นสมาชิกของ device group ต่างๆ เพื่อนำไปใช้ร่วมกับบริการอื่นๆ เช่น Intune ได้
หรือนำไปใช้ร่วมกับ conditional access เช่น อนุญาติให้ผู้ใช้บนเครื่อง Hybrid Entra Join สามารถเข้าใช้บริการต่างๆ ได้ โดยไม่ต้อง prompt ถาม MFA ก็ได้เช่นกัน เป็นต้นครับ
สำหรับวันนี้ เราจะมาดูกระบวนการของ Hybrid Entra Join กัน
แต่มีบางอย่างที่เราควรรู้จักก่อน
ดังนั้นตอนนี้ เราไปรู้จักกับ SCP, userCertificate, และ Automatic Device Join scheduled task กันก่อนนะครับ
SCP – Service Connection Point
ก่อนที่เครื่องจะเข้าไปทำ Hybrid Join ที่ Entra ID เขาจะค้นหาชื่อ และ ID ของ Entra tenant ที่เขาต้องเข้าไป join ก่อน ข้อมูลชื่อ และ ID ของ tenant จะอยู่ใน SCP object ใน AD DS การที่เราจะมี SCP ใน AD DS ได้ เราจะต้องสร้างเขาขึ้นมาก่อน เช่น เราอาจใช้วิธีรีรัน Microsoft Connect Sync (ชื่อเดิมคือ Azure AD Connect Sync) เพื่อสร้างเขาขึ้นมา
แล้ว SCP ก็จะถูกสร้างใน configuration partition ของ AD DS
หากคอมพิวเตอร์เครื่องไหนหา SCP พบ เขาจะสร้าง self-signed certificate แล้วนำ certificate ไปแปะใน userCertificate attribute บน computer object ของตัวเองใน AD DS
เมื่อ Microsoft Entra Connect เห็นว่า computer object ใดมีค่า userCertificate แล้ว เขาก็จะ sync computer account นั้นขึ้นไปยัง Entra ID
อย่างไรก็ตาม status จะเป็น “Pending” จนกว่าเครื่องคอมพิวเตอร์จะเข้ามาทำ authentication กับ Entra ID อีกครั้ง กระบวนการ Hybrid Entra Join จึงจะถือว่าเสร็จสมบูรณ์ครับ
แต่การสร้าง SCP ลงใน AD DS อาจทำให้บางบริษัทยังไม่อยากทำ เพราะคอมพิวเตอร์ใน on-premises AD DS ทุกเครื่องจะหา SCP พบ และถูก sync ไปยัง Entra ID ทั้งหมด ดังนั้น หากเราต้องการแค่ทดสอบ ไม่อยากสร้าง SCP ณ ตอนนี้ ก็ใช้วิธีเขียนชื่อ และ ID ของ tenant ลงบน registry ของเครื่องที่อยากทำ hybrid join แทนก็ได้ ซึ่งเราเรียกวิธีการนี้ว่า Targeted deployments of Microsoft Entra hybrid join – Microsoft Entra ID | Microsoft Learn
userCertificate
Microsoft Entra Connect จะ sync computer object ที่มีค่า userCertificate เท่านั้น ขึ้นไปยัง Entra ID ซึ่งเป็นผลมาจาก synchronization rule นี้
หาก computer object ใดยังไม่มี userCertificate เช่น เป็น <not set> แบบนี้ Microsoft Entra Connect ก็จะยังไม่ sync เขาขึ้นไป
ซึ่งในกรณีของ Hybrid Entra Join การที่ userCertificate จะมีค่าได้ เครื่องคอมพิวเตอร์จะต้องหาข้อมูลชื่อ และ ID ของ tenant จาก SCP หรือ registry ให้เจอก่อนครับ
Automatic Device Join task
เครื่องคอมพิวเตอร์ทุกเครื่องจะมี scheduled task ที่ชื่อว่า “Automatic Device Join” อยู่ หน้าที่ของเขาคือ จะพยายามทำ Hybrid Entra Join ให้กับเครื่อง
เขาถูกตั้งไว้ให้รันตอนที่มี user sign in เข้าเครื่อง หรือทุกๆ 1 ชั่วโมง
แต่ถ้าเราอยากเร่งความเร็วของ Hybrid Entra Join เราสามารถ force ให้เขารันได้ทันทีครับ
เนื่องจากงาน Hybrid Entra Join นี้เป็นงานของเครื่อง (ไม่ใช่ของ user)
ตัว task จึงรันด้วย SYSTEM account ซึ่งก็จะหมายถึงเครื่องคอมพิวเตอร์เครื่องนี้นั่นเอง
ทำให้กระบวนการ Hybrid Entra Join จึงสามารถเกิดขึ้นได้โดยอัตโนมัติ โดยที่ user ไม่จำเป็นต้อง sign in เข้าเครื่องนั่นเองครับ
ณ ตอนนี้ เราทราบข้อมูลที่จำเป็นบางส่วน ที่อยุ่ในกระบวนการทำ hybrid join แล้ว
ดังนั้น เรามาดูตัวอย่างสักเครื่องกันนะครับ
ตัวอย่างเครื่องที่กำลังจะทำ Hybrid Entra Join
เราทราบอยู่แล้วว่า เราสามารถ force “Automatic Device Join” scheduled task ให้รัน หรือรอให้เขารันเองก็ได้
แต่ว่า เราเริ่มแบบทางการตาม Microsoft Entra hybrid joined in Managed environments ด้วยการ sign in เพื่อ trigger ให้ task รันดีกว่านะครับ
ขั้นตอนที่ 1: Sign in เข้าเครื่อง
เมื่อเรา sign in เข้าเครื่อง (ไม่ว่าจะด้วย local account หรือ domain account ก็ตาม) จะเป็นวิธีนึงที่จะ trigger ให้ task ถูกรัน
Task จะค้นหาชื่อ และ ID ของ tenant ผ่าน SCP หรือ registry บนเครื่อง
เมื่อเขาหาพบ ก็จะสร้าง self-signed certificate แล้วนำ certificate ไปแปะไว้ใน userCertificate attribute ของ computer object ตัวเอง ใน AD DS
ขั้นตอนที่ 2: รอ
Microsoft Entra Connect จะทำงานทุกๆ 30 นาที เพื่อ sync ข้อมูลระหว่าง on-premises AD DS และ Entra ID
ถ้าเราไม่อยากรอ ให้เรา force delta sync นะครับ
เมื่อ Entra Connect เห็น userCertificate ของ computer object เครื่องนี้มีค่า เขาก็จะ sync computer account นี้ขึ้นไปยัง Entra ID
แล้วคอมพิวเตอร์เครื่องนี้ก็จะปรากฏอยู่ใน Entra ID ในสถานะ “Pending”
ซึ่งเราต้องรอต่ออีกแป๊บนึงครับ
ขั้นตอนที่ 3: รอ
“Automatic Device Join” scheduled task จะรันทุกครั้งที่ผู้ใช้ sign in เข้าเครื่อง หรือทุกๆ 1 ชั่วโมง
ดังนั้น แค่เรารอให้ task รันอีก 1 รอบ เพื่อให้เครื่องเข้าไปทำ authentication กับ Entra ID อีกครั้ง กระบวณการ Hybrid Entra Join ของเครื่องนี้ก็จะเสร็จสมบูรณ์ ไม่มีสถานะเป็น “Pending” อีกต่อไปครับ
วิธีเร่งความเร็วให้เครื่องเปลี่ยนสถานะจาก pending ไปเป็น Hybrid Entra Join โดยสมบูรณ์
จริงๆ แล้ว เราไม่ต้องทำแบบนี้นะครับ
เพราะโดยทั่วไป จำนวนเครื่องคงมีเยอะมากๆ ให้เราใช้วิธีรอน่าจะดีกว่า
แต่ถ้าเรารีบ เราอาจจะ sign out / sign in ใหม่ หรือ force เพื่อให้ task รันเลย
เมื่อ task รันอีกครั้ง คอมพิวเตอร์เครื่องนี้จะเข้าไปทำ authentication กับ Entra ID อีกครั้ง (ด้วย userCertificate ที่ sync ไปรอแล้ว) จนได้ ID token มา
แล้วขั้นตอนที่เหลือทั้งหมดจะเกิดขึ้นเร็วมาก
จนเครื่องได้รับ device certificate จาก Azure Device Registration Service (Azure DRS)
และกลายเป็น Microsoft Entra hybrid joined device โดยสมบูรณ์ครับ
dsregcmd /status
เราสามารถใช้ dsregcmd /status ตรวจสอบว่าเครื่องคอมพิวเตอร์ join ทั้ง AD DS และ Entra ID แล้วหรือไม่? (ในภาพด้านล่างนี้คือ join ทั้ง AD DS และ Entra ID แล้ว)
แต่ถ้าสังเกตุด้านล่างดู จะพบว่าเครื่องนี้ยังไม่ได้ primary refresh token (PRT) สำหรับทำ SSO เข้าแอปพลิเคชั่นต่างๆ
เราจะได้รับ PRT จากการ sign in เข้าเครื่องที่ join หรือ register Entra ID
ซึ่งถ้าเราได้รับ PRT แล้ว
เราจะเข้าแอปพลิเคชั่น หรือบริการต่างๆ ที่ใช้ Entra ID เป็น Identity provider แบบ SSO ได้ต่อไป
อ่านเพิ่มเติมได้ที่ How Microsoft Entra device registration works – Microsoft Entra ID | Microsoft Learn
หากใช้ AD FS ร่วมกับ Entra ID กระบวณการหลักๆ ก็จะเหมือนกัน ลองดูที่ลิงก์นี้แทนนะครับ How Microsoft Entra device registration works – Microsoft Entra ID | Microsoft Learn