ใครช่วยอธิบายชื่อ Service Service ของ Windows (SPNs) ได้โดยไม่ต้องแจ้งให้ทราบล่วงหน้า


28

ฉันได้ปล้ำกับชื่อหลักการบริการสองสามครั้งแล้วและคำอธิบายของ Microsoftนั้นไม่เพียงพอ ฉันกำลังกำหนดค่าแอปพลิเคชัน IIS ให้ทำงานบนโดเมนของเราและดูเหมือนว่าปัญหาบางอย่างของฉันเกี่ยวข้องกับความต้องการของฉันในการกำหนดค่าSPN เฉพาะ http ในบัญชีบริการ windowsที่กำลังเรียกใช้พูลโปรแกรมประยุกต์ที่โฮสต์ไซต์ของฉัน

ทั้งหมดนี้ทำให้ฉันรู้ว่าฉันไม่ได้รับความสัมพันธ์ระหว่างประเภทบริการ (MSSQL, http, โฮสต์, termsrv, wsman, ฯลฯ ) อย่างเต็มที่, การพิสูจน์ตัวตน Kerberos, บัญชีคอมพิวเตอร์ไดเรกทอรีที่ใช้งานอยู่ (PCName $), บัญชีบริการ windows, SPNs และบัญชีผู้ใช้ที่ฉันใช้เพื่อลองและเข้าถึงบริการ

ใครช่วยอธิบายชื่อ Service Service ของ Windows (SPNs) ได้โดยไม่ต้องอธิบายให้ละเอียด

คะแนนโบนัสสำหรับการเปรียบเทียบความคิดสร้างสรรค์ที่จะสะท้อนกับผู้ดูแลระบบ / นักพัฒนาระบบที่มีประสบการณ์ปานกลาง


4
โปรดดูว่าบิลไบรอันท์ "การออกแบบระบบรับรองความถูกต้อง: บทสนทนาในสี่ฉาก"สอดคล้องกับคำขอของคุณสำหรับการเปรียบเทียบเชิงสร้างสรรค์
yrk

คำตอบ:


33

ชื่อบริการหลักKerberosเป็นแนวคิดจาก มันเป็นตัวระบุสำหรับบริการเฉพาะที่นำเสนอโดยโฮสต์เฉพาะภายในโดเมนการรับรองความถูกต้อง แบบฟอร์มทั่วไปสำหรับ SPN คือservice class/ fqdn@ REALM(เช่นIMAP/mail.example.com@EXAMPLE.COM) นอกจากนี้ยังมีชื่อผู้ใช้หลักซึ่งระบุผู้ใช้ในรูปแบบของuser@ REALM(หรือuser1/ user2@ REALMซึ่งระบุความสัมพันธ์แบบ Speaks-for ) service classสามารถหลวม ๆ จะคิดว่าเป็นโปรโตคอลสำหรับการให้บริการ รายการของคลาสบริการที่มีในตัวของ Windows มีการระบุไว้ในบทความนี้จาก Microsoft

ทุก SPN จะต้องลงทะเบียนในREALM's กระจายคีย์ศูนย์ (KDC) และออกที่สำคัญบริการ setspn.exeยูทิลิตี้ที่มีอยู่ใน\Support\Toolsโฟลเดอร์ของ Windows ติดตั้งสื่อหรือเป็นดาวน์โหลดทรัพยากร Kit ได้รับมอบหมายปรุงแต่งของ SPNs ไปยังเครื่องคอมพิวเตอร์หรือบัญชีอื่น ๆ ในการโฆษณา

เมื่อผู้ใช้เข้าถึงบริการที่ใช้ Kerberos สำหรับการรับรองความถูกต้อง (บริการ "Kerberized") ผู้ใช้จะแสดงตั๋วที่เข้ารหัสที่ได้รับจาก KDC (ในสภาพแวดล้อม Windows และ Active Directory Domain Controller) ตั๋วถูกเข้ารหัสด้วยคีย์บริการ ด้วยการถอดรหัสตั๋วบริการจะพิสูจน์ว่ามีกุญแจสำหรับ SPN ที่กำหนด บริการที่ทำงานบนโฮสต์ Windows ใช้รหัสที่เกี่ยวข้องกับบัญชีคอมพิวเตอร์ AD แต่จะต้องสอดคล้องกับ Kerberos โปรโตคอล SPNs จะต้องเพิ่ม Active Directory สำหรับบริการ kerberized แต่ละบริการที่ทำงานบนโฮสต์ - ยกเว้น SPN ในตัวที่กล่าวถึงข้างต้น ใน Active Directory SPN จะถูกเก็บไว้ในservicePrincipalNameคุณสมบัติของวัตถุคอมพิวเตอร์ของโฮสต์

สำหรับข้อมูลเพิ่มเติมโปรดดูที่: บทความ Microsoft TechNet บน SPN , คำถามที่พบบ่อยเกี่ยวกับ Kerberos ของ Ken Hornstein


4
+1 - คุณเอาชนะฉันในการเขียนสิ่งนี้และทำงานได้ดีกับคุณดังนั้นฉันเลือกที่จะแก้ไขคำตอบของคุณเพื่อเพิ่มรายละเอียดมากกว่าที่จะเขียนเอง
Evan Anderson

@yarek ลิงก์ทั้งสองครั้งสุดท้ายจะใช้งานไม่ได้เมื่อวันที่ 29 ม.ค. 2019
Andrew Watson

10

คำตอบของ yarek นั้นยอดเยี่ยมและฉันก็ยกมันขึ้นมา แต่ฉันก็อยากจะให้ข้อมูลเพิ่มเติมเกี่ยวกับ Windows ในหัวข้อหรือให้มาจากมุมมองของคนที่คุ้นเคยกับโฆษณามากกว่าแค่ Kerberos โดยทั่วไป เพราะนี่เป็นหัวข้อที่ฉันสนใจเป็นอย่างมาก

ฉันรู้สึกเหมือนผู้ชายคนนี้ทำงานได้ดีมากในการอธิบายและฉันขอแนะนำให้คุณอ่านบทความของเขา แต่นี่เป็นย่อหน้าสั้น ๆ โดยเฉพาะอย่างยิ่งต่อคำถามของคุณ:

"Service Principal Names กำหนดว่าบริการใดที่ทำงานภายใต้บริบทความปลอดภัยของบัญชีตัวอย่างเช่นบริการบางอย่างที่คอมพิวเตอร์อาจมีคือไฟล์เซิร์ฟเวอร์ / CIFS (Common Internet File System) หากเป็นตัวควบคุมโดเมนมันจะมี LDAP SPN และการจำลองแบบไดเรกทอรีที่ใช้งานอยู่ SPN และ FRS SPN ชื่อบริการหลักสามารถกำหนดไว้ในบัญชีผู้ใช้เมื่อบริการหรือแอปพลิเคชันทำงานภายใต้บริบทความปลอดภัยของผู้ใช้นั้นโดยทั่วไปบัญชีผู้ใช้ประเภทนี้จะเรียกว่า "บัญชีบริการ" นำเข้ามากที่คุณเข้าใจว่าชื่อบริการหลักต้องไม่ซ้ำกันตลอดทั้งฟอเรสต์ Active Directory ทั้งหมด "

บทความทั้งหมดอยู่ที่นี่: http://blogs.technet.com/b/askds/archive/2008/03/06/kerberos-for-the-busy-admin.aspx

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.