การรับรองความถูกต้อง Kerberos และการแก้ไขปัญหาการมอบหมาย


คอลัมน์เสียงสนับสนุนนักพัฒนา IIS


การรับรองความถูกต้อง Kerberos และการแก้ไขปัญหาการมอบหมาย

เมื่อต้องการกำหนดคอลัมน์นี้กับความต้องการของคุณ เราต้องเชิญคุณสามารถส่งแนวคิดของคุณเกี่ยวกับหัวข้อที่สนใจของคุณและการตัดสินค้าจากคลังที่คุณต้องการดู ได้รับการจัดการในอนาคตบทความในฐานความรู้และคอลัมน์เสียงสนับสนุน คุณสามารถส่งความคิดและคำติชมโดยใช้แบบฟอร์มสอบถามสำหรับแฟ้มของคุณ นอกจากนี้ยังมีการเชื่อมโยงไปยังแบบฟอร์มที่ด้านล่างของคอลัมน์นี้
ชื่อของฉันคือ มาร์ติน Smith และฉันทำงานอยู่กับกลุ่ม Microsoft Internet Information Services (IIS) วิธีการแก้ปัญหาร้ายแรงของ Microsoft ฉันได้รับกับ Microsoft เก้าปี และได้กับทีม IIS ปีเก้าทั้งหมด ฉันได้รับการคอมไพล์ข้อมูลจากหลายแห่งบน
http://msdn.microsoft.comและ
http://www.microsoft.comเกี่ยวกับ Kerberos และวิธีการแก้ไขปัญหาการมอบหมาย

IIS 6.0

เอกสารทางเทคนิคดังต่อไปนี้จะอธิบายวิธีการตั้งค่าการมอบหมายใน Microsoft Windows Server 2003 ไวท์เปเปอร์มีรายละเอียดที่เฉพาะสำหรับเครือข่ายโหลดดุล (NLB) แต่มีรายละเอียดเกี่ยวกับวิธีการตั้งค่าสถานการณ์สมมติมอบหมายโดยไม่ใช้ร้องที่ดีเยี่ยม เมื่อต้องการดูเอกสารทางเทคนิคนี้ แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:หมายเหตุ ใช้ชื่อ HTTP บริการหลัก (SPNs) โดยเฉพาะอย่างยิ่งเมื่อคุณใช้ร้อง

ปัญหา Kerberos อื่นที่ได้รับความนิยมล่าสุดได้รับจำเป็นในการอนุญาตให้ใช้สำหรับพูลโปรแกรมประยุกต์หลายการใช้ชื่อ DNS เดียวกัน แต่ เมื่อคุณใช้ Kerberos การมอบหมายข้อมูลประจำตัว คุณไม่สามารถผูกแบบเดียวกันกับบริการหลักชื่อ (SPN) กับพูลโปรแกรมประยุกต์ที่แตกต่างกัน คุณไม่สามารถทำเช่นนี้ได้เนื่องจาก มีการออกแบบของ Kerberos โพรโทคอล Kerberos ต้องมีความลับที่ใช้ร่วมกันหลายสำหรับโพรโทคอลในการทำงานได้อย่างถูกต้อง โดยใช้ SPN เหมือนกันสำหรับพูลโปรแกรมประยุกต์ที่แตกต่างกัน เราขจัดความลับที่ใช้ร่วมกันเหล่านี้อย่างใดอย่างหนึ่ง บริการไดเรกทอรี Active Directory จะสนับสนุนการตั้งค่าคอนฟิกนี้ของโพรโทคอล Kerberos เนื่องจากปัญหาความปลอดภัย

การตั้งค่าคอนฟิก SPNs ที่ในลักษณะนี้ทำให้การรับรองความถูกต้อง Kerberos ล้มเหลว วิธีแก้ปัญหาที่เป็นไปได้สำหรับปัญหานี้จะเป็นการ ใช้โพรโทคอลวิธี การรับรองความถูกต้องเริ่มต้นระหว่างไคลเอนต์และเซิร์ฟเวอร์เรียกใช้ IIS จะถูกจัดการ โดยใช้โพรโทคอลการรับรองความถูกต้องของ NTLM Kerberos จะจัดการกับการรับรองความถูกต้องระหว่าง IIS และเซิร์ฟเวอร์ backend ทรัพยากร

Microsoft Internet Explorer 6 หรือรุ่นที่ใหม่กว่า

เบราเซอร์ไคลเอ็นต์อาจประสบปัญหา เช่นการรับสินค้าเข้าสู่ระบบซ้ำ ๆ พร้อมท์สำหรับข้อมูลประจำตัวหรือข้อความแสดงข้อผิดพลาด "ปฏิเสธการเข้าถึง 401" จากเซิร์ฟเวอร์ที่เรียกใช้ IIS เราได้พบปัญหาสองต่อไปนี้ที่อาจช่วยแก้ไขปัญหาเหล่านี้:
  • ตรวจสอบว่าเปิดใช้งานการตรวจสอบ Windows แบบรวมไว้ในคุณสมบัติของเบราว์เซอร์ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
    299838ไม่สามารถเจรจาการรับรองความถูกต้อง Kerberos หลังจากการปรับรุ่นเป็น Internet Explorer 6

  • ถ้าเปิดใช้งานการกำหนดค่าความปลอดภัยขั้นสูงของ Internet Explorer ในการเพิ่มหรือเอาโปรแกรมออก คุณต้องเพิ่มไซต์ที่ใช้การมอบหมาย
    รายการไซต์ที่เชื่อถือ สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
    ประสบการณ์ใช้งานการเรียกดู815141เปลี่ยนแปลงการกำหนดค่าความปลอดภัยขั้นสูงของ Internet Explorer

IIS 5.0 และ IIS 6.0

หลังจากที่คุณปรับรุ่นจาก IIS 4.0 IIS 5.0 หรือ IIS 6.0 การมอบหมายอาจทำงานไม่ถูกต้อง หรืออาจเป็นบุคคลอื่นหรือโปรแกรมประยุกต์ได้ปรับเปลี่ยนคุณสมบัติ metabase NTAuthenticationProviders
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการแก้ไขปัญหานี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
248350การรับรองความถูกต้อง Kerberos ล้มเหลวหลังจากการปรับรุ่นจาก IIS 4.0 IIS 5.0

พื้นที่เฉพาะของปัญหาอาจเกิดขึ้นได้เมื่อคุณตั้งค่าการ SPN

กำหนดชื่อเซิร์ฟเวอร์

ตรวจสอบว่า คุณกำลังเชื่อมต่อไปยังเว็บไซต์ โดยใช้ชื่อ NetBIOS จริงของเซิร์ฟเวอร์ หรือ โดยใช้นามแฝง เช่นชื่อ DNS (ตัวอย่างเช่น www.microsoft.com) ถ้าคุณกำลังเข้าถึงเว็บเซิร์ฟเวอร์ โดยใช้ชื่ออื่นที่ไม่ใช่ชื่อจริงของเซิร์ฟเวอร์ ตัวใหม่บริการหลักชื่อ (SPN) ต้องมีการลงทะเบียน โดยใช้เครื่องมือ Setspn จาก Windows 2000 Server Resource Kit เนื่องจากบริการไดเรกทอรี Active Directory ไม่ทราบชื่อนี้การบริการ บริการสิทธิบัตร (TGS) ไม่ให้ ticket เพื่อรับรองความถูกต้องของผู้ใช้ ลักษณะการทำงานนี้บังคับให้ไคลเอ็นต์เพื่อใช้ถัดไปมีวิธีการรับรอง ซึ่งเป็น NTLM การเจรจาต่อรอง ถ้าเว็บเซิร์ฟเวอร์จะตอบสนองกับชื่อ DNS ของ www.microsoft.com แต่เซิร์ฟเวอร์ที่มีชื่อว่า webserver1.development.microsoft.com คุณต้องลงทะเบียน www.microsoft.com ในไดเรกทอรีที่ใช้งานอยู่บนเซิร์ฟเวอร์ที่กำลังเรียกใช้การติดตั้ง IIS เมื่อต้องการทำเช่นนี้ คุณต้องดาวน์โหลดเครื่องมือ Setspn และติดตั้งบนเซิร์ฟเวอร์ที่กำลังเรียกใช้ IIS


ถ้าคุณกำลังใช้ Windows Server 2003 และ IIS 6 เครื่องมือ Setspn สำหรับ Microsoft Windows Server 2003 จะพร้อมใช้งานจากตำแหน่งที่ตั้งต่อไปนี้:เพื่อตรวจสอบว่า คุณกำลังเชื่อมต่อ โดยใช้ชื่อจริง พยายามที่จะเชื่อมต่อไปยังเซิร์ฟเวอร์ โดยใช้ชื่อจริงของเซิร์ฟเวอร์แทนที่เป็นชื่อ DNS ถ้าคุณไม่สามารถเชื่อมต่อไปยังเซิร์ฟเวอร์ ดูส่วน "ตรวจสอบคอมพิวเตอร์ที่ไม่น่าเชื่อถือสำหรับการมอบหมาย"

หากคุณสามารถเชื่อมต่อไปยังเซิร์ฟเวอร์ ให้ทำตามขั้นตอนเหล่านี้เพื่อตั้งค่าการ SPN สำหรับชื่อ DNS ที่คุณกำลังใช้การเชื่อมต่อไปยังเซิร์ฟเวอร์:
  1. ติดตั้งเครื่องมือ Setspn
  2. บนเซิร์ฟเวอร์ที่เรียกใช้งาน IIS เปิดพร้อมท์คำสั่ง และจากนั้น เปิดโฟลเดอร์ C:\Program Files\Resource Kit
  3. เรียกใช้คำสั่งต่อไปนี้เพื่อเพิ่ม SPN นี้ใหม่ (www.microsoft.com) ลงในไดเรกทอรีที่ใช้งานอยู่สำหรับเซิร์ฟเวอร์:
    Setspn-HTTP/www.microsoft.com webserver1
    หมายเหตุ ในคำสั่งนี้webserver1แทนชื่อ NetBIOS ของเซิร์ฟเวอร์
คุณได้รับผลลัพธ์ที่คล้ายกับต่อไปนี้:
Registering ServicePrincipalNames for CN=webserver1,OU=Domain Controllers,DC=microsoft,DC=comHTTP/www.microsoft.com
Updated object

เมื่อต้องการดูรายการของ SPNs บนเซิร์ฟเวอร์เพื่อดูค่านี้ใหม่ พิมพ์คำสั่งต่อไปนี้บนเซิร์ฟเวอร์ที่เรียกใช้ IIS:
ชื่อเว็บเซิร์ฟเวอร์ -L Setspn
หมายเหตุว่า คุณไม่จำเป็นต้องลงทะเบียนการบริการทั้งหมด หลายชนิดการบริการ เช่น HTTP, W3SVC, WWW, RPC, CIFS (การเข้าถึงแฟ้ม), ชนะ และจ่ายไฟฟ้า (UPS), การจัดหาวัสดุจะแม็ปไปยังชนิดของบริการเริ่มต้นที่ชื่อโฮสต์ ตัวอย่างเช่น ถ้าซอฟต์แวร์ของไคลเอ็นต์มี SPN ของ HTTP/webserver1.microsoft.com ที่ใช้เพื่อสร้างการเชื่อมต่อ HTTP ไปยังเว็บเซิร์ฟเวอร์บนเซิร์ฟเวอร์ webserver1.microsoft.com แต่ไม่มีการลงทะเบียน SPN นี้บนเซิร์ฟเวอร์ ตัวควบคุมโดเมน Windows 2000 จะแม็ปโดยอัตโนมัติการเชื่อมต่อกับ HOST/webserver1.microsoft.com แม็ปนี้ใช้เฉพาะเมื่อบริการบนเว็บกำลังทำงานภายใต้บัญชีระบบภายในเครื่องเท่านั้น

ตรวจสอบว่า คอมพิวเตอร์ที่เชื่อถือได้สำหรับการมอบหมาย

ถ้าเซิร์ฟเวอร์นี้เรียกใช้ IIS เป็นสมาชิกของโดเมน แต่ไม่ใช่ตัวควบคุมโดเมน คอมพิวเตอร์ต้องน่าเชื่อถือสำหรับการมอบหมายสำหรับ Kerberos ให้ทำงานได้อย่างถูกต้อง เมื่อต้องการทำเช่นนี้ ให้ทำตามขั้นตอนเหล่านี้
  1. บนตัวควบคุมโดเมน คลิกเริ่มชี้ไปที่การตั้งค่าและจากนั้น คลิก'แผงควบคุม'
  2. ในแผงควบคุม เปิดเครื่องมือบริหารระบบ
  3. คลิกสองครั้งที่ผู้ใช้ของไดเรกทอรีที่ใช้งานอยู่และคอมพิวเตอร์
  4. ภายใต้โดเมนของคุณ คลิกคอมพิวเตอร์
  5. ในรายการ การค้นหาเซิร์ฟเวอร์ที่เรียกใช้งาน IIS คลิกขวาชื่อเซิร์ฟเวอร์ และ แล้ว คลิกคุณสมบัติ
  6. คลิกแท็บทั่วไปคลิกเลือก
    เชื่อถือสำหรับการมอบหมายกล่องกาเครื่องหมาย และจากนั้น คลิก
    OK.
โปรดทราบว่า หากบรรลุหลายเว็บไซต์ ด้วย URL เดียวกัน แต่พอร์ตต่าง ๆ การมอบหมายงานไม่ เพื่อทำให้งานนี้ คุณต้องใช้ hostnames ที่แตกต่างกันและ SPNs ที่แตกต่างกัน เมื่อ Internet Explorer ร้องขอ http://www อย่างใดอย่างหนึ่ง mywebsite.com หรือ http://www mywebsite.com:81, Internet Explorer ขอ ticket สำหรับ SPN HTTP/www.mywebsite.com Internet Explorer ไม่เพิ่มพอร์ตหรือ vdir ที่การร้องขอการ SPN ลักษณะการทำงานนี้จะเหมือนกันสำหรับ http://www mywebsite.com/app1 หรือ http://www mywebsite.com/app2 ในสถานการณ์สมมตินี้ Internet Explorer จะขอ ticket สำหรับ SPN http://www .com mywebsiteจากศูนย์กระจายคีย์ (KDC) แต่ละ SPN สามารถถูกประกาศสำหรับข้อมูลเฉพาะตัวหนึ่งเท่านั้น ดังนั้น คุณจะยังได้รับข้อความข้อผิดพลาด KRB_DUPLICATE_SPN ถ้าคุณพยายามที่จะประกาศนี้ SPN สำหรับแต่ละ identity ด้วย

การมอบหมายและ Microsoft ASP.NET

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าคอนฟิกสำหรับการมอบหมายข้อมูลประจำตัวเมื่อคุณใช้โปรแกรมประยุกต์ ASP.NET คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
810572วิธีการกำหนดค่าโปรแกรมประยุกต์ ASP.NET สำหรับสถานการณ์สมมติการมอบหมาย

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

ข้อมูลอ้างอิง


305971 Windows 2000 Server พร้อมท์ให้ผู้ใช้โดเมนสำหรับข้อมูลประจำตัว

262177วิธีการเปิดใช้งานการบันทึกเหตุการณ์ Kerberos

326985วิธีการแก้ไขปัญหาที่เกี่ยวข้องกับ Kerberos ใน IIS

การออกอากาศทางเว็บสนับสนุนของ TechNet 842861 : การรับรองความถูกต้อง Kerberos แก้ไขปัญหากับโปรแกรมประยุกต์เว็บที่ปลอดภัยและ Microsoft SQL Server

เป็นเสมอ รู้สึกฟรีเพื่อส่งความคิดเห็นบนหัวข้อคุณต้องได้รับการจัดการในอนาคตคอลัมน์ หรือ ในฐานข้อมูลองค์ความรู้ใช้ใน
ขอให้สำหรับนั้นแบบฟอร์ม