อะไรเกิดขึ้นในขั้นตอนเบราว์เซอร์ของการเข้าสู่ระบบ VPN แบบเฟดเดอเรชัน
ติดตามการลงชื่อเข้าใช้ SAML หนึ่งครั้งจากไคลเอนต์ VPN ผ่านผู้ให้บริการยืนยันตัวตนและกลับมา เซสชันเบราว์เซอร์และเซสชัน VPN สิ้นสุดคนละนาฬิกา
คุณคลิกเชื่อมต่อ และแทนที่จะเป็นช่องรหัสผ่าน ไคลเอนต์ VPN กลับเปิดเบราว์เซอร์ของคุณ การส่งต่อนี้ทำให้คนที่คาดว่าอุโมงค์จะยืนยันตัวเองสับสน เบราว์เซอร์ไม่ใช่ทางอ้อม: ผู้ให้บริการยืนยันตัวตนยืนยันบุคคลจริง ๆ ที่นั่น และไคลเอนต์เพียงรอผลลัพธ์
การไล่ดูการลงชื่อเข้าใช้หนึ่งครั้งตั้งแต่ต้นจนจบแสดงว่าแต่ละความล้มเหลวอยู่ตรงไหน และนั่นคือส่วนที่คู่มือปฏิบัติงานส่วนใหญ่ข้ามไป
เริ่มที่ไคลเอนต์ ไม่ใช่ที่การตั้งค่าเกตเวย์
ไคลเอนต์สร้างคำขอและ ส่งเบราว์เซอร์ไปยังผู้ให้บริการยืนยันตัวตน พร้อมตัวระบุผู้ให้บริการและตำแหน่งที่จะกลับมา จากนั้น IdP ขององค์กรจะรันสิ่งที่ตั้งค่าไว้: รหัสผ่าน, MFA, การตรวจสอบอุปกรณ์, การเข้าถึงตามเงื่อนไข หากเบราว์เซอร์มีเซสชันที่ใช้ได้อยู่แล้ว ส่วนที่มองเห็นอาจใช้เวลาหนึ่งหรือสองวินาที ความสั้นนั้นคือการใช้เซสชันซ้ำ ไม่ใช่การข้ามการตรวจสอบ
อ่านค่าสองค่าในการตั้งค่าเฟดเดอเรชันของไคลเอนต์ก่อนสิ่งอื่นใด: เมทาดาทาหรือ URL ของ IdP ที่มันเชื่อถือ และที่อยู่ callback ที่มันคาดหวัง หากไม่ตรงกันตรงนั้นจะล้มเหลวก่อนที่จะพิมพ์รหัสผ่านใด ๆ
ผู้ให้บริการยืนยันตัวตนต้องคืนอะไร
IdP ตอบด้วยการตอบกลับ SAML ที่ลงนามแล้วซึ่งมี assertion: ใครคือผู้รับ, ใครออกให้, ออกให้ใคร และใช้ได้นานแค่ไหน ฟิลด์เหล่านั้นคือสัญญา ผู้ออก, audience, ผู้รับ และหน้าต่างความใช้ได้ทั้งหมดต้องตรงกับสิ่งที่บริการคาดหวัง
การตอบกลับที่ลงนามโดย IdP ที่ถูกต้องแต่มุ่งไปยัง audience อื่นยังคงใช้ไม่ได้ นั่นคือการตรวจสอบที่ผู้คนข้ามเมื่อคัดลอกเมทาดาทาระหว่างแล็บกับโปรดักชัน
บริการ VPN ตรวจสอบอะไรก่อนจะเชื่อถือคุณ
บริการตรวจสอบลายเซ็นกับใบรับรองที่เชื่อถือ ตรวจผู้ออก, audience และผู้รับ จากนั้นประเมินเงื่อนไขเวลา หลังจากนั้นเท่านั้นจึงแมป assertion ไปยังผู้ใช้หรือกลุ่มและใช้นโยบายการอนุญาตของ VPN การยืนยันตัวตนและการอนุญาตเป็นคนละขั้นตอนที่นี่ และ assertion ที่ใช้ได้แต่ไม่มีกลุ่มที่ตรงจะสร้างเซสชันที่เชื่อมต่อได้แต่ไปไม่ถึงไหน
Assertion เป็นวัสดุยืนยันตัวตน ไม่ใช่รหัสผ่าน การวางมันในไคลเอนต์อื่น หรือเก็บไว้สำหรับเชื่อมต่อใหม่ภายหลัง ไม่ใช่การลงชื่อเข้าใช้ที่รองรับ
สองอายุการใช้งานที่สิ้นสุดแยกกัน
เซสชันเบราว์เซอร์ที่ IdP และเซสชัน VPN ที่เกตเวย์หมดอายุคนละนาฬิกา การออกจากระบบที่ IdP ไม่จำเป็นต้องรื้ออุโมงค์ที่สร้างไว้ และการตัดการเชื่อมต่ออุโมงค์ไม่ได้ออกคุณจากเบราว์เซอร์
AWS Client VPN ระบุว่ากระแสเฟดเดอเรชันไม่รองรับ SAML single logout ซึ่งเป็นตัวอย่างรูปธรรมหนึ่งของช่องว่างนี้ ตรวจสอบบริการของคุณเองแทนที่จะถือว่าสมมาตร
นี่คือเหตุผลที่การเชื่อมต่อใหม่ทำงานต่างกันเมื่อ 09:00 และ 15:00 อาจใช้เซสชัน IdP ซ้ำอย่างเงียบ ๆ ขอ MFA อีกครั้ง หรือล้มเหลวเพราะระยะเวลาเซสชันของ endpoint หมดอายุในขณะที่เซสชันเบราว์เซอร์ยังไม่หมด เวิร์กโฟลว์เฟดเดอเรชันของ AWS อธิบายข้อกำหนดไคลเอนต์และการตอบกลับของตัวเอง และบริการอื่นใช้การส่งต่อที่ต่างกัน
เมื่อขั้นตอนเบราว์เซอร์ล้มเหลว ให้ตรวจสอบตามลำดับนี้
ทำงานจากเบราว์เซอร์ออกไปข้างนอก เพราะข้อความข้อผิดพลาดมักระบุฮอปสุดท้ายไม่ใช่ฮอปแรก
หากหน้าไม่โหลดเลย URL ของ IdP ในไคลเอนต์หรือเส้นทางไปยังหน้านั้นผิด หาก IdP ปฏิเสธคำขอ ตัวระบุผู้ให้บริการหรือ callback ไม่ตรงกับการตั้งค่าของมัน หากเบราว์เซอร์แสดงความสำเร็จแต่ไคลเอนต์ยังล้มเหลว การตอบกลับไปถึงผิดที่หรือไม่ผ่านการตรวจสอบ audience และเวลา และหากอุโมงค์ขึ้นมาโดยไม่มีการเข้าถึง assertion ถูกยอมรับแต่การแมปกลุ่มไม่ถูก
เก็บหน้าที่คาดไว้, callback และการแมปกลุ่มไว้ในเอกสารเดียว แล้วผู้ใช้ที่รายงานการลงชื่อเข้าใช้ VPN ที่เสียจะบอกได้ว่าเห็นสิ่งใดในสี่สิ่งนั้น และคำตอบก็เขียนไว้ครึ่งหนึ่งแล้ว