FIDO2 API สําหรับ Android

FIDO2 API ช่วยให้แอปพลิเคชัน Android สร้างและใช้ข้อมูลรับรองสาธารณะแบบคีย์ที่รับรองและแข็งแกร่งได้ เพื่อวัตถุประสงค์ในการตรวจสอบสิทธิ์ผู้ใช้ API จัดเตรียมการใช้งาน WebAuthn Client ซึ่งรองรับการใช้ตัวตรวจสอบสิทธิ์ BLE, NFC และ USB สําหรับโรมมิ่ง (คีย์ความปลอดภัย) รวมถึง Authenticator ของแพลตฟอร์ม ผู้ใช้ตรวจสอบสิทธิ์โดยใช้ลายนิ้วมือหรือการล็อกหน้าจอ

การผสานรวม

จุดแรกเข้าของ FIDO2 API คือ Fido2ApiClient

API รองรับการดําเนินการ 2 อย่าง ได้แก่

  • การลงทะเบียนจะดําเนินการได้ 1 บัญชีต่อ Authenticator 1 บัญชี เมื่อผู้ใช้เชื่อมโยง Authenticator กับบัญชี
  • การลงนามจะเสร็จสิ้นทุกครั้งที่ผู้มีส่วนเกี่ยวข้องต้องการตรวจสอบสิทธิ์ผู้ใช้

ทั้งการลงทะเบียนและการลงนามต้องมีการโต้ตอบจากผู้ใช้

ดูตัวอย่างแอปพลิเคชันที่แสดงการใช้งาน API ได้ที่ https://github.com/android/security-samples/tree/master/Fido

ความสามารถในการทํางานร่วมกับเว็บไซต์ของคุณ

การอนุญาตให้ผู้ใช้แชร์ข้อมูลเข้าสู่ระบบทั่วทั้งเว็บไซต์และแอปพลิเคชัน Android นั้นทําได้ง่าย โดยการใช้ประโยชน์จากลิงก์เนื้อหาดิจิทัล (Digital Asset Links) คุณประกาศการเชื่อมโยงได้โดยโฮสต์ไฟล์ JSON ของลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ในเว็บไซต์ และเพิ่มลิงก์ไปยังไฟล์ลิงก์เนื้อหาดิจิทัลลงในไฟล์ Manifest ของแอป

ตัวอย่างเช่น หากต้องการเชื่อมโยง https://example.com กับแอป Android com.example.android คุณต้องทําตามขั้นตอน 3 ขั้นตอนต่อไปนี้

ขั้นตอนที่ 1 โฮสต์ assetlinks.json ที่โดเมนของคุณ

สร้างไฟล์ JSON แบบนี้แล้วโฮสต์ที่ https://example.com/.well-known/assetlinks.json

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "web",
      "site" : "https://example.com"
    }
  },
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "android_app",
      "package_name" : "com.example.android",
      "sha256_cert_fingerprints" : [
         "DE:AD:BE:EF"
      ]
    }
  }
]

ตรวจสอบว่ารวบรวมข้อมูลได้จาก Google และแสดงพร้อมส่วนหัว HTTP Content-Type: application/json

sha256_cert_fingerprints คือลายนิ้วมือ SHA256 ของใบรับรองการลงนามของแอป ดูรายละเอียดเพิ่มเติมในเอกสารประกอบเกี่ยวกับ Android App Link

ในแอป Android ให้เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ Manifest ภายใต้ <application>

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

ขั้นตอนที่ 3 เพิ่มทรัพยากรสตริง asset_statements ลงในไฟล์ string.xml

สตริง asset_statements เป็นออบเจ็กต์ JSON ที่ระบุไฟล์ assetlinks.json ที่จะโหลด คุณต้องไม่ใช้เครื่องหมายอัญประกาศเดี่ยวและเครื่องหมายคําพูดที่ใช้ในสตริง เช่น

<string name="asset_statements" translatable="false">
[{
  \"include\": \"https://example.com/.well-known/assetlinks.json\"
}]
</string>

อ่านข้อมูลเพิ่มเติมเกี่ยวกับการเชื่อมโยงแอปและเว็บไซต์ได้โดยอ่านเอกสารประกอบ SmartLock สําหรับรหัสผ่านใน Android