การคลิก Connect หนึ่งครั้งควรให้หน้าต่างลงชื่อเข้าใช้หนึ่งหน้าต่าง บน Mac มักให้ถึงสามหน้าต่าง และแทบไม่เคยมีเจ้าของเดียวกัน: พวงกุญแจเป็นเจ้าของข้อความแจ้งข้อมูลรับรองภายในเครื่อง ขณะที่เกตเวย์ VPN เป็นเจ้าของการพิสูจน์ตัวตน และไคลเอนต์เป็นเจ้าของการแจ้งเตือนของตนเอง แทนที่จะหาสวิตช์ที่ทำให้ทุกอย่างเงียบ ให้ถือว่าแต่ละหน้าต่างเป็นข้อบกพร่องแยกกันซึ่งมีวิธีแก้ของตัวเอง คู่มือด้านล่างจะพาคุณผ่านความพยายามเชื่อมต่อที่ตั้งใจหนึ่งครั้ง และจบด้วยการตรวจสอบที่คุณทำซ้ำได้

ตั้งชื่อเจ้าของของแต่ละกล่องโต้ตอบก่อนเปลี่ยนการตั้งค่า

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

ความเป็นเจ้าของเป็นตัวกำหนดวิธีแก้ที่ถูกต้อง และวิธีแก้ที่ผิดมักเป็นสิ่งที่เปลี่ยนข้อความแจ้งหนึ่งครั้งให้กลายเป็นสามครั้ง:

WindowWho owns itCorrect fixWhat not to do
“wants to use your confidential information stored in…”The item's access control list in your login keychainApprove the specific client helper, once, after checking the nameResetting the login keychain, or granting Always Allow to every application
“Sign in to <organization>” or an MFA pushThe gateway's identity providerUse the client's supported session renewal, or re-authenticateScripting a fixed password or code into the client
“Connection failed”, “Update required”, a policy bannerThe client or your organizationRead the first error and fix its causeHiding notices by editing a preference file the client rewrites

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

ค้นหาว่ามีกี่อย่างที่เริ่มอุโมงค์

มีสี่กลไกที่เริ่ม VPN เดียวกันบน Mac ได้แก่ การกระทำบนแถบเมนู รายการลงชื่อเข้าใช้ กฎ On Demand และสคริปต์หรือเอเจนต์ เมื่อสองอย่างทำงานพร้อมกัน การเริ่มครั้งที่สองอาจมาถึงขณะที่ครั้งแรกยังรอการพิสูจน์ตัวตน ซึ่งทำให้เกิดหน้าต่างซ้ำและไม่มีความคืบหน้า เริ่มจากระบุสิ่งที่กำหนดค่าไว้ก่อน: scutil --nc list จะพิมพ์บริการ VPN ที่การตั้งค่าระบบรู้จักพร้อมสถานะปัจจุบัน ไคลเอนต์ที่มาพร้อมส่วนขยายเครือข่ายของตัวเองจะเก็บโปรไฟล์ไว้ในแอปและอาจไม่ปรากฏที่นั่น ดังนั้นให้ตรวจสอบรายการเชื่อมต่อของไคลเอนต์เองด้วย

จากนั้นมองหาตัวเริ่มที่แข่งขันกัน scutil --nc show "Work VPN" จะพิมพ์พจนานุกรมการกำหนดค่าของบริการในตัว รวมถึงกฎ On Demand กฎที่เชื่อมต่อใหม่ทุกครั้งที่อินเทอร์เฟซเปลี่ยนจะรีสตาร์ทอุโมงค์และเปิดข้อความแจ้งการพิสูจน์ตัวตนอีกครั้ง ทุกครั้งที่ Wi-Fi เคลื่อนที่หรือหน้าจอปลุกสแตกเครือข่าย ตรวจสอบรายการลงชื่อเข้าใช้ภายใต้การตั้งค่าระบบ > ทั่วไป > รายการลงชื่อเข้าใช้ และระบุเอเจนต์ต่อผู้ใช้ด้วย ls ~/Library/LaunchAgents ปล่อยสิ่งที่พึ่งพาสแตกความปลอดภัยที่จัดการโดย MDM ไว้ตามเดิม การลบมักถูกผลักกลับในการตรวจสอบครั้งถัดไป

หากต้องการดูว่าอะไรกำลังทำงานจริงระหว่างการเชื่อมต่อ: ps -Ao pid,comm | grep -iE 'vpn|tunnel|extension' การมีตัวช่วยไคลเอนต์สองตัวในที่ที่คุณคาดว่าจะมีตัวเดียวอธิบายคำถาม "ทำไมผมจึงได้รับข้อความแจ้งสองครั้ง" ได้บ่อยกว่าปัญหาข้อมูลรับรองใด ๆ มาก

ซ่อมการเข้าถึง Keychain โดยไม่ต้องรีเซ็ตพวงกุญแจ

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

คุณยืนยันได้ว่า ACL เป็นสาเหตุโดยไม่ต้องแตะ VPN: security find-generic-password -s "service-name" -g จะอ่านรายการเดียวกันจากเทอร์มินัล ถ้าคำสั่งนั้นทำให้เกิดข้อความแจ้งด้วย กล่องโต้ตอบนั้นเป็นของพวงกุญแจ และอุโมงค์เป็นเพียงตัวกระตุ้น คำแนะนำของ Apple เกี่ยวกับปุ่มทั้งสาม — อนุญาตครั้งเดียว อนุญาตเสมอ ปฏิเสธ — คุ้มค่าที่จะอ่านสักครั้ง เพราะการปฏิเสธคือสิ่งที่ทำให้ข้อความแจ้งกลับมาทันทีแทนที่จะเป็นในการเชื่อมต่อครั้งถัดไป

หากคุณอนุมัติตัวช่วยผิด ให้เปิดรายการใน Keychain Access เปลี่ยนไปที่ Access Control และลบรายการนั้น นั่นคือการย้อนกลับ การลบพวงกุญแจลงชื่อเข้าใช้ หรือเรียกใช้เครื่องมือซ่อมแซมที่สร้างมันขึ้นใหม่ ยังทิ้งรหัสผ่านที่ไม่เกี่ยวข้องและเป็นการเปลี่ยนแปลงที่ใหญ่กว่าปัญหามาก

เก็บขั้นตอนการลงชื่อเข้าใช้และนโยบายไว้ในโฟลว์ที่เป็นเจ้าของมัน

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

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

ตรวจสอบด้วยการเชื่อมต่อหนึ่งครั้ง แล้วตรวจอีกครั้งหลังรีบูต

เมื่อนำตัวเริ่มที่ซ้ำออกและซ่อมรายการในพวงกุญแจแล้ว ให้ลองเพียงครั้งเดียว: ออกจากทุกอินสแตนซ์ของไคลเอนต์รวมถึงตัวช่วยบนแถบเมนู เชื่อมต่อหนึ่งครั้ง และนับหน้าต่าง คุณต้องการการอนุมัติพวงกุญแจหากรายการถูกสร้างใหม่ และขั้นตอนพิสูจน์ตัวตนหนึ่งขั้นเท่านั้น ไม่มากกว่านั้น scutil --nc status "Work VPN" ควรรายงาน Connected สำหรับบริการในตัว

จากนั้นรีบูตหนึ่งครั้งและทำซ้ำ ข้อความแจ้งที่กลับมาหลังรีบูตเท่านั้นชี้ไปที่รายการลงชื่อเข้าใช้หรือกฎ On Demand ไม่ใช่ข้อมูลรับรอง ส่วนที่กลับมาภายในเซสชันชี้ไปที่ ACL หรือตัวเริ่มที่สอง หากยังเกิดซ้ำหลังทั้งสองรอบ สิ่งที่มีประโยชน์จะมอบให้ผู้ดูแลระบบคือตารางสามแถวจากการเชื่อมต่อครั้งแรก ได้แก่ เจ้าของ ข้อความที่แน่นอน ระยะ ไม่ใช่ภาพหน้าจอของกล่องโต้ตอบ

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

บทความที่เกี่ยวข้อง