กรณีศึกษา

Zoho เข้าสู่ระบบได้เร็วขึ้น 6 เท่าด้วยการผสานรวมพาสคีย์และ Credential Manager

ใช้เวลาอ่าน 10 นาที

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

นับตั้งแต่ผสานรวมพาสคีย์ในปี 2024 Zoho มีความเร็วในการเข้าสู่ระบบเร็วขึ้นสูงสุด 6 เท่า เมื่อเทียบกับวิธีการก่อนหน้า และการนำพาสคีย์มาใช้เพิ่มขึ้น 31% เมื่อเทียบกับเดือนก่อนหน้า

กรณีศึกษาฉบับนี้จะตรวจสอบการนำพาสคีย์และ Android's Credential Manager API มาใช้ของ Zoho เพื่อแก้ปัญหาการตรวจสอบสิทธิ์ โดยจะอธิบายกระบวนการใช้งานทางเทคนิคโดยละเอียดและเน้นผลลัพธ์ที่สำคัญ

การเอาชนะความท้าทายในการตรวจสอบสิทธิ์

Zoho ใช้การผสมผสานวิธีการตรวจสอบสิทธิ์เพื่อปกป้องบัญชีผู้ใช้ ซึ่งรวมถึง Zoho OneAuth ซึ่งเป็นโซลูชันการตรวจสอบสิทธิ์แบบหลายปัจจัย (MFA) ของตนเองที่รองรับการตรวจสอบสิทธิ์ด้วยรหัสผ่านและการตรวจสอบสิทธิ์แบบไม่ต้องใช้รหัสผ่านโดยใช้การแจ้งเตือนแบบพุช, คิวอาร์โค้ด และรหัสผ่านแบบใช้ครั้งเดียว (TOTP) ที่อิงตามเวลา นอกจากนี้ Zoho ยังรองรับการเข้าสู่ระบบแบบรวมศูนย์ ซึ่งอนุญาตให้ตรวจสอบสิทธิ์ผ่านภาษามาร์กอัปเพื่อยืนยันความปลอดภัย (SAML) และผู้ให้บริการข้อมูลประจำตัวบุคคลที่สามรายอื่นๆ

ความท้าทาย

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

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

เหตุผลที่เปลี่ยนมาใช้พาสคีย์

เราได้นำพาสคีย์มาใช้ในแอปของ Zoho เพื่อแก้ปัญหาการตรวจสอบสิทธิ์โดยนำเสนอแนวทางแบบไม่ต้องใช้รหัสผ่าน ซึ่งช่วยปรับปรุงความปลอดภัยและประสบการณ์ของผู้ใช้ได้อย่างมาก โซลูชันนี้ใช้ประโยชน์จากการตรวจสอบสิทธิ์ที่ปลอดภัยจากฟิชชิง ข้อมูลเข้าสู่ระบบที่ซิงค์กับคลาวด์เพื่อให้เข้าถึงได้ง่ายในอุปกรณ์ต่างๆ รวมถึงข้อมูลไบโอเมตริก (เช่น ลายนิ้วมือหรือการจดจำใบหน้า), PIN หรือรูปแบบสำหรับการเข้าสู่ระบบที่ปลอดภัย ซึ่งจะช่วยลดช่องโหว่และความไม่สะดวกที่เกี่ยวข้องกับรหัสผ่านแบบเดิม

การนำพาสคีย์มาใช้กับ Credential Manager ช่วยให้ Zoho ลดเวลาในการเข้าสู่ระบบได้สูงสุด 6 เท่า ลดค่าใช้จ่ายในการสนับสนุนที่เกี่ยวข้องกับรหัสผ่าน และมีการนำไปใช้ของผู้ใช้จำนวนมาก โดยมีการลงชื่อเข้าใช้ด้วยพาสคีย์เพิ่มขึ้น 2 เท่า ใน 4 เดือน และการเติบโต 31% เมื่อเทียบกับเดือนก่อนหน้า ตอนนี้ผู้ใช้ Zoho ได้รับการเข้าสู่ระบบที่ง่ายและรวดเร็วขึ้น รวมถึงความปลอดภัยที่ปลอดภัยจากฟิชชิง

ANDDM_Zoho_Quote_fabrice.png

การใช้งานด้วย Credential Manager ใน Android

แล้ว Zoho ได้ผลลัพธ์เหล่านี้มาได้อย่างไร Zoho ใช้ Android's Credential Manager API ซึ่งเป็นไลบรารี Jetpack ที่แนะนำสำหรับการใช้งานการตรวจสอบสิทธิ์ใน Android

Credential Manager มี API แบบรวมที่ช่วยลดความซับซ้อนในการจัดการวิธีการตรวจสอบสิทธิ์ต่างๆ คุณจะใช้เพียงอินเทอร์เฟซเดียวแทนที่จะต้องจัดการ API ที่แตกต่างกันสำหรับรหัสผ่าน พาสคีย์ และการเข้าสู่ระบบแบบรวมศูนย์ (เช่น ลงชื่อเข้าใช้ด้วย Google)

การใช้งานพาสคีย์ที่ Zoho ต้องมีการปรับทั้งฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ ต่อไปนี้คือรายละเอียดโดยละเอียดของกระบวนการสร้างพาสคีย์ การลงชื่อเข้าใช้ และการใช้งานฝั่งเซิร์ฟเวอร์

การสร้างพาสคีย์

passkey.png

หากต้องการสร้างพาสคีย์ แอปจะดึงรายละเอียดการกำหนดค่าจากเซิร์ฟเวอร์ของ Zoho ก่อน กระบวนการนี้รวมถึงการยืนยันที่ไม่ซ้ำกัน เช่น ลายนิ้วมือหรือการจดจำใบหน้า แอปใช้ข้อมูลการยืนยันนี้ซึ่งจัดรูปแบบเป็นสตริง requestJson เพื่อสร้าง CreatePublicKeyCredentialRequest จากนั้นแอปจะเรียกใช้เมธอด credentialManager.createCredential ซึ่งจะแจ้งให้ผู้ใช้ตรวจสอบสิทธิ์โดยใช้การล็อกหน้าจอของอุปกรณ์ (ข้อมูลไบโอเมตริก ลายนิ้วมือ, PIN ฯลฯ)

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

ลงชื่อเข้าใช้

แอป Zoho Android เริ่มกระบวนการลงชื่อเข้าใช้ด้วยพาสคีย์โดยขอตัวเลือกการลงชื่อเข้าใช้ ซึ่งรวมถึง challenge ที่ไม่ซ้ำกันจากเซิร์ฟเวอร์แบ็กเอนด์ของ Zoho จากนั้นแอปจะใช้ข้อมูลนี้เพื่อสร้าง GetCredentialRequest ซึ่งระบุว่าจะตรวจสอบสิทธิ์ด้วยพาสคีย์ จากนั้นจะเรียกใช้ Android CredentialManager.getCredential() API ด้วยคำขอนี้ การดำเนินการนี้จะทริกเกอร์อินเทอร์เฟซระบบ Android ที่ได้มาตรฐาน โดยแจ้งให้ผู้ใช้เลือกบัญชี Zoho (หากมีพาสคีย์หลายรายการ) และตรวจสอบสิทธิ์โดยใช้การล็อกหน้าจอที่กำหนดค่าไว้ของอุปกรณ์ (ลายนิ้วมือ การสแกนใบหน้า หรือ PIN) หลังจากตรวจสอบสิทธิ์สำเร็จ Credential Manager จะส่งคืนการยืนยันที่ลงชื่อแล้ว (หลักฐานการเข้าสู่ระบบ) ไปยังแอป Zoho จากนั้นแอปจะส่งต่อการยืนยันนี้ไปยังเซิร์ฟเวอร์ของ Zoho ซึ่งจะตรวจสอบลายเซ็นกับคีย์สาธารณะที่จัดเก็บไว้ของผู้ใช้และตรวจสอบความถูกต้องของ Challenge เพื่อให้กระบวนการลงชื่อเข้าใช้ที่ปลอดภัยเสร็จสมบูรณ์

การใช้งานฝั่งเซิร์ฟเวอร์

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

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

การปรับฝั่งเซิร์ฟเวอร์อีกอย่างหนึ่งคือการใช้งานความสามารถในการจัดการคำขอจากอุปกรณ์ Android คำขอพาสคีย์ที่มาจากแอป Android ใช้รูปแบบต้นทางที่ไม่ซ้ำกัน (android:apk-key-hash:example) ซึ่งแตกต่างจากต้นทางเว็บมาตรฐานที่ใช้รูปแบบตาม URI (https://example.com/app) เราจึงต้องอัปเดตตรรกะของเซิร์ฟเวอร์เพื่อแยกวิเคราะห์รูปแบบนี้อย่างถูกต้อง แยกแฮชลายนิ้วมือ SHA-256 ของใบรับรองการลงชื่อของแอป และตรวจสอบกับรายการที่ลงทะเบียนไว้ล่วงหน้า ขั้นตอนการยืนยันนี้ช่วยให้มั่นใจว่าคำขอการตรวจสอบสิทธิ์มาจากแอป Android ของ Zoho จริงๆ และป้องกันการโจมตีแบบฟิชชิง

ข้อมูลโค้ดนี้แสดงวิธีที่เซิร์ฟเวอร์ตรวจสอบรูปแบบต้นทางที่เฉพาะเจาะจงของ Android และตรวจสอบแฮชของใบรับรอง

val origin: String = clientData.getString("origin")

if (origin.startsWith("android:apk-key-hash:")) { 
    val originSplit: List<String> = origin.split(":")
    if (originSplit.size > 3) {
               val androidOriginHashDecoded: ByteArray = Base64.getDecoder().decode(originSplit[3])

                if (!androidOriginHashDecoded.contentEquals(oneAuthSha256FingerPrint)) {
            throw IAMException(IAMErrorCode.WEBAUTH003)
        }
    } else {
        // Optional: Handle the case where the origin string is malformed    }
}

การจัดการข้อผิดพลาด

Zoho ได้ใช้กลไกการจัดการข้อผิดพลาดที่มีประสิทธิภาพเพื่อจัดการข้อผิดพลาดที่ผู้ใช้และนักพัฒนาแอปพบ ข้อผิดพลาดที่พบบ่อย CreateCredentialCancellationException ปรากฏขึ้นเมื่อผู้ใช้ยกเลิกการตั้งค่าพาสคีย์ด้วยตนเอง Zoho ติดตามความถี่ของข้อผิดพลาดนี้เพื่อประเมินการปรับปรุง UX ที่เป็นไปได้ Zoho ได้ดำเนินการตามคำแนะนำ UX ของ Android เพื่อให้ความรู้แก่ผู้ใช้เกี่ยวกับพาสคีย์ได้ดียิ่งขึ้น ตรวจสอบว่าผู้ใช้ทราบถึงความพร้อมใช้งานของพาสคีย์ และส่งเสริมการนำพาสคีย์มาใช้ในระหว่างการพยายามลงชื่อเข้าใช้ครั้งต่อๆ ไป

ตัวอย่างโค้ดนี้แสดงแนวทางของ Zoho ในการจัดการข้อผิดพลาดในการสร้างพาสคีย์ที่พบบ่อยที่สุด

private fun handleFailure(e: CreateCredentialException) {
    val msg = when (e) {
        is CreateCredentialCancellationException -> {
            Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_SETUP_CANCELLED", GROUP_NAME)
            Analytics.addNonFatalException(e)
            "The operation was canceled by the user."
        }
        is CreateCredentialInterruptedException -> {
            Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_SETUP_INTERRUPTED", GROUP_NAME)
            Analytics.addNonFatalException(e)
            "Passkey setup was interrupted. Please try again."
        }
        is CreateCredentialProviderConfigurationException -> {
            Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_PROVIDER_MISCONFIGURED", GROUP_NAME)
            Analytics.addNonFatalException(e)
            "Credential provider misconfigured. Contact support."
        }
        is CreateCredentialUnknownException -> {
            Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_SETUP_UNKNOWN_ERROR", GROUP_NAME)
            Analytics.addNonFatalException(e)
            "An unknown error occurred during Passkey setup."
        }
        is CreatePublicKeyCredentialDomException -> {
            Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_WEB_AUTHN_ERROR", GROUP_NAME)
            Analytics.addNonFatalException(e)
            "Passkey creation failed: ${e.domError}"
        }
        else -> {
            Analytics.addAnalyticsEvent(eventProtocol: "PASSKEY_SETUP_FAILED", GROUP_NAME)
            Analytics.addNonFatalException(e)
            "An unexpected error occurred. Please try again."
        }
    }
}

การทดสอบพาสคีย์ในสภาพแวดล้อมอินทราเน็ต

Zoho พบความท้าทายเบื้องต้นในการทดสอบพาสคีย์ภายในสภาพแวดล้อมอินทราเน็ตแบบปิด กระบวนการยืนยันพาสคีย์ของเครื่องมือจัดการรหัสผ่านบน Google ต้องมีการเข้าถึงโดเมนสาธารณะเพื่อตรวจสอบโดเมนของ Relying Party (RP) อย่างไรก็ตาม สภาพแวดล้อมการทดสอบภายในของ Zoho ไม่มีการเข้าถึงอินเทอร์เน็ตสาธารณะนี้ ทำให้กระบวนการยืนยันล้มเหลวและขัดขวางการทดสอบการตรวจสอบสิทธิ์พาสคีย์ที่สำเร็จ Zoho จึงสร้างสภาพแวดล้อมการทดสอบที่เข้าถึงได้แบบสาธารณะ ซึ่งรวมถึงการโฮสต์เซิร์ฟเวอร์ชั่วคราวที่มี ไฟล์ลิงก์เนื้อหาดิจิทัล (Digital Asset Links) และการตรวจสอบโดเมน

ตัวอย่างนี้จากไฟล์ assetlinks.json ที่ใช้ในสภาพแวดล้อมการทดสอบสาธารณะของ Zoho แสดงวิธีเชื่อมโยงโดเมนของ Relying Party กับแอป Android ที่ระบุสำหรับการตรวจสอบพาสคีย์

[
    {
        "relation": [
            "delegate_permission/common.handle_all_urls",
            "delegate_permission/common.get_login_creds"
        ],
        "target": {
            "namespace": "android_app",
            "package_name": "com.zoho.accounts.oneauth",
            "sha256_cert_fingerprints": [
                "SHA_HEX_VALUE" 
            ]
        }
    }
]

ผสานรวมกับเซิร์ฟเวอร์ FIDO ที่มีอยู่

ระบบพาสคีย์ของ Android ใช้มาตรฐาน FIDO2 WebAuthn ที่ทันสมัย มาตรฐานนี้กำหนดให้คำขออยู่ในรูปแบบ JSON ที่เฉพาะเจาะจง ซึ่งช่วยรักษาความสอดคล้องกันระหว่างแอปพลิเคชันเนทีฟและแพลตฟอร์มเว็บ Zoho ได้ทำการเปลี่ยนแปลงความเข้ากันได้และการเปลี่ยนแปลงโครงสร้างเล็กน้อยเพื่อสร้างและประมวลผลคำขอที่เป็นไปตามโครงสร้าง JSON ของ FIDO2 ที่กำหนดไว้อย่างถูกต้อง เพื่อเปิดใช้การรองรับพาสคีย์ของ Android

การอัปเดตเซิร์ฟเวอร์นี้เกี่ยวข้องกับการปรับทางเทคนิคที่เฉพาะเจาะจงหลายอย่าง ได้แก่

1. การแปลงการเข้ารหัส: เซิร์ฟเวอร์จะแปลงการเข้ารหัส URL แบบ Base64 (ซึ่งใช้กันโดยทั่วไปใน WebAuthn สำหรับช่องต่างๆ เช่น รหัสเข้าสู่ระบบ) เป็นการเข้ารหัส Base64 มาตรฐานก่อนที่จะจัดเก็บข้อมูลที่เกี่ยวข้อง ข้อมูลโค้ดด้านล่างแสดงวิธีเข้ารหัส rawId เป็น Base64 มาตรฐาน

// Convert rawId bytes to a standard Base64 encoded string for storage
val base64RawId: String = Base64.getEncoder().encodeToString(rawId.toByteArray())

2. รูปแบบรายการการขนส่ง: ตรรกะของเซิร์ฟเวอร์จะจัดการรายการกลไกการขนส่ง (เช่น USB, NFC และบลูทูธ ซึ่งระบุวิธีที่เครื่องมือตรวจสอบสิทธิ์สื่อสาร) เป็นอาร์เรย์ JSON เพื่อให้มั่นใจว่าการประมวลผลข้อมูลจะสอดคล้องกัน

3. การจัดแนวข้อมูลไคลเอ็นต์: ทีม Zoho ได้ปรับวิธีที่เซิร์ฟเวอร์เข้ารหัสและถอดรหัสช่อง clientDataJson เพื่อให้มั่นใจว่าโครงสร้างข้อมูลสอดคล้องกับสิ่งที่ API ภายในที่มีอยู่ของ Zoho คาดหวังไว้อย่างแม่นยำ ตัวอย่างด้านล่างแสดงส่วนหนึ่งของตรรกะการแปลงที่ใช้กับข้อมูลไคลเอ็นต์ก่อนที่เซิร์ฟเวอร์จะประมวลผล

private fun convertForServer(type: String): String {
    val clientDataBytes = BaseEncoding.base64().decode(type)
    val clientDataJson = JSONObject(String(clientDataBytes, StandardCharsets.UTF_8))
    val clientJson = JSONObject()
    val challengeFromJson = clientDataJson.getString("challenge")
    // 'challenge' is a technical identifier/token, not localizable text.
    clientJson.put("challenge", BaseEncoding.base64Url()
        .encode(challengeFromJson.toByteArray(StandardCharsets.UTF_8))) 

    clientJson.put("origin", clientDataJson.getString("origin"))
    clientJson.put("type", clientDataJson.getString("type"))
    clientJson.put("androidPackageName", clientDataJson.getString("androidPackageName"))
    return BaseEncoding.base64().encode(clientJson.toString().toByteArray())
}

คำแนะนำสำหรับผู้ใช้และค่ากำหนดการตรวจสอบสิทธิ์

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

Zoho ตระหนักดีว่าองค์กรต่างๆ มีความต้องการด้านความปลอดภัยที่แตกต่างกัน Zoho จึงได้ดำเนินการดังนี้

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

Zoho ได้ดำเนินการดังนี้เพื่อให้การนำพาสคีย์มาใช้เป็นเรื่องง่ายและน่าสนใจสำหรับผู้ใช้ปลายทาง

  • การตั้งค่าที่ง่าย: Zoho ผสานรวมการตั้งค่าพาสคีย์เข้ากับแอป Zoho OneAuth บนอุปกรณ์เคลื่อนที่ (ใช้ได้ทั้งใน Android และ iOS) โดยตรง ผู้ใช้สามารถกำหนดค่าพาสคีย์ภายในแอปได้อย่างสะดวกทุกเมื่อ ซึ่งจะช่วยให้การเปลี่ยนไปใช้พาสคีย์เป็นไปอย่างราบรื่น
  • การเข้าถึงที่สอดคล้องกัน: เราได้นำการรองรับพาสคีย์มาใช้ในจุดสัมผัสที่สำคัญของผู้ใช้ เพื่อให้ผู้ใช้ลงทะเบียนและตรวจสอบสิทธิ์โดยใช้พาสคีย์ผ่านช่องทางต่อไปนี้ได้
  • แอป Zoho OneAuth บนอุปกรณ์เคลื่อนที่ (Android และ iOS)
  • หน้าบัญชีเว็บ Zoho accounts

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

ผลกระทบต่อความเร็วของนักพัฒนาแอปและประสิทธิภาพการผสานรวม

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

การใช้งานพาสคีย์ด้วย Credential Manager ช่วยให้ Zoho ได้รับการปรับปรุงที่สำคัญและวัดผลได้ในทุกด้าน ดังนี้

  • ความเร็วเพิ่มขึ้นอย่างมาก
    • การเข้าสู่ระบบเร็วขึ้น 2 เท่า เมื่อเทียบกับการตรวจสอบสิทธิ์ด้วยรหัสผ่านแบบเดิม
    • การเข้าสู่ระบบเร็วขึ้น 4 เท่า เมื่อเทียบกับการตรวจสอบสิทธิ์ด้วยชื่อผู้ใช้หรือหมายเลขโทรศัพท์มือถือด้วยอีเมลหรือ OTP ทาง SMS
    • การเข้าสู่ระบบเร็วขึ้น 6 เท่า เมื่อเทียบกับการตรวจสอบสิทธิ์ด้วยชื่อผู้ใช้ รหัสผ่าน และ OTP ทาง SMS หรือ Authenticator
  • ค่าใช้จ่ายในการสนับสนุนลดลง
    • คำขอการสนับสนุนที่เกี่ยวข้องกับรหัสผ่านลดลง โดยเฉพาะคำขอการสนับสนุนสำหรับรหัสผ่านที่ลืม
    • ค่าใช้จ่ายลดลง ที่เกี่ยวข้องกับ 2FA ทาง SMS เนื่องจากผู้ใช้ที่มีอยู่สามารถเริ่มต้นใช้งานพาสคีย์ได้โดยตรง
  • การนำไปใช้ของผู้ใช้จำนวนมากและความปลอดภัยที่เพิ่มขึ้น:
    • การลงชื่อเข้าใช้ด้วยพาสคีย์เพิ่มขึ้น 2 เท่า ในเวลาเพียง 4 เดือน ซึ่งแสดงให้เห็นว่าผู้ใช้ยอมรับพาสคีย์เป็นอย่างมาก
    • ผู้ใช้ที่เปลี่ยนไปใช้พาสคีย์จะได้รับการปกป้องอย่างเต็มที่ จากภัยคุกคามทั่วไปของการโจมตีแบบฟิชชิงและการละเมิดรหัสผ่าน
    • ด้วยการเติบโตของการนำไปใช้ 31% เมื่อเทียบกับเดือนก่อนหน้า ผู้ใช้จำนวนมากขึ้นได้รับประโยชน์ทุกวันจากความปลอดภัยที่เพิ่มขึ้นเพื่อป้องกันช่องโหว่ต่างๆ เช่น การโจมตีแบบฟิชชิงและการสลับซิม

คำแนะนำและแนวทางปฏิบัติแนะนำ

นักพัฒนาแอปควรพิจารณาแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อใช้งานพาสคีย์ใน Android ให้สำเร็จ

  • ใช้ประโยชน์จาก Android's Credential Manager API:
    • Credential Manager ช่วยลดความซับซ้อนในการดึงข้อมูลเข้าสู่ระบบ ซึ่งช่วยลดความพยายามของนักพัฒนาแอปและมอบประสบการณ์การตรวจสอบสิทธิ์แบบรวม
    • จัดการรหัสผ่าน พาสคีย์ และขั้นตอนการเข้าสู่ระบบแบบรวมศูนย์ในอินเทอร์เฟซเดียว
  • ตรวจสอบความสอดคล้องของการเข้ารหัสข้อมูลขณะย้ายข้อมูลจากโซลูชันการตรวจสอบสิทธิ์ FIDO อื่นๆ:
    • ตรวจสอบว่าคุณจัดการการจัดรูปแบบที่สอดคล้องกันสำหรับอินพุต/เอาต์พุตทั้งหมดขณะย้ายข้อมูลจากโซลูชันการตรวจสอบสิทธิ์ FIDO อื่นๆ เช่น คีย์ความปลอดภัย FIDO
  • เพิ่มประสิทธิภาพการจัดการข้อผิดพลาดและการบันทึก:
    • ใช้การจัดการข้อผิดพลาดที่มีประสิทธิภาพเพื่อมอบประสบการณ์การใช้งานที่ราบรื่น
    • แสดงข้อความแสดงข้อผิดพลาดที่แปลเป็นภาษาท้องถิ่นและใช้บันทึกโดยละเอียดเพื่อแก้ไขข้อบกพร่องและแก้ไขความล้มเหลวที่ไม่คาดคิด
  • ให้ความรู้แก่ผู้ใช้เกี่ยวกับตัวเลือกการกู้คืนพาสคีย์:
    • ป้องกันสถานการณ์การล็อกเอาต์โดยแนะนำตัวเลือกการกู้คืนให้ผู้ใช้ทราบล่วงหน้า
  • ตรวจสอบเมตริกการนำไปใช้และความคิดเห็นของผู้ใช้:
    • ติดตามการมีส่วนร่วมของผู้ใช้ อัตราการนำพาสคีย์มาใช้ และอัตราความสำเร็จในการเข้าสู่ระบบเพื่อเพิ่มประสิทธิภาพประสบการณ์ของผู้ใช้อย่างต่อเนื่อง
    • ทำการทดสอบ A/B ในขั้นตอนการตรวจสอบสิทธิ์ต่างๆ เพื่อปรับปรุง Conversion และการคงผู้ใช้ไว้

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

เริ่มต้นใช้งานพาสคีย์และ Credential Manager

ลองใช้พาสคีย์และ Credential Manager ใน Android โดยใช้โค้ดตัวอย่างที่เผยแพร่ต่อสาธารณะ

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

เขียนโดย

อ่านต่อ