กรณีศึกษา

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

ใช้เวลาอ่าน 10 นาที
Niharika Arora & Joseph Lewis

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

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

กรณีศึกษานี้จะพิจารณาการนำพาสคีย์และ Credential Manager API ของ Android มาใช้เพื่อแก้ปัญหาความยากในการตรวจสอบสิทธิ์ของ 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 ทำได้อย่างไร โดยใช้ Credential Manager API ของ Android ซึ่งเป็นไลบรารี 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 ซึ่งจะตรวจสอบลายเซ็นกับคีย์สาธารณะที่จัดเก็บไว้ของผู้ใช้และตรวจสอบความท้าทายเพื่อดำเนินการตามกระบวนการลงชื่อเข้าใช้อย่างปลอดภัยให้เสร็จสมบูรณ์

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

การเปลี่ยนไปรองรับพาสคีย์ของ 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 จึงสร้างสภาพแวดล้อมการทดสอบที่เข้าถึงได้แบบสาธารณะ ซึ่งรวมถึงการโฮสต์เซิร์ฟเวอร์ชั่วคราวที่มีไฟล์ลิงก์เนื้อหาและการตรวจสอบโดเมน

ตัวอย่างนี้จากไฟล์ 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 อย่างแม่นยำ ตัวอย่างด้านล่างแสดงตรรกะ Conversion บางส่วนที่ใช้กับข้อมูลไคลเอ็นต์ก่อนที่เซิร์ฟเวอร์จะประมวลผล

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

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

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

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

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

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

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

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

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

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

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

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

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

เขียนโดย

อ่านต่อ