กรณีศึกษา

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

เขียนโดย

อ่านต่อ