ภาพรวมการออกใบอนุญาต

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

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

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

รูปที่ 1 แอปพลิเคชันของคุณจะเริ่มการตรวจสอบใบอนุญาตผ่านคลังการยืนยันใบอนุญาตและไคลเอ็นต์ Google Play ซึ่งจัดการการสื่อสารกับเซิร์ฟเวอร์ Google Play

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

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

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

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

  • แอปพลิเคชันของคุณระบุชื่อแพ็กเกจ, Nonce ที่จะใช้ในการตรวจสอบการตอบกลับจากเซิร์ฟเวอร์ในภายหลัง และระบบการเรียกกลับที่ระบบจะส่งการตอบกลับแบบไม่พร้อมกัน
  • ไคลเอ็นต์ Google Play จะรวบรวมข้อมูลที่จำเป็นเกี่ยวกับผู้ใช้และอุปกรณ์ เช่น ชื่อผู้ใช้บัญชี Google หลักของอุปกรณ์, IMSI และข้อมูลอื่นๆ จากนั้นจะส่งคําขอตรวจสอบใบอนุญาตไปยังเซิร์ฟเวอร์ในนามของแอปพลิเคชัน
  • เซิร์ฟเวอร์ Google Play จะประเมินคำขอโดยใช้ข้อมูลทั้งหมดที่มีอยู่ เพื่อพยายามระบุตัวตนของผู้ใช้ให้มั่นใจในระดับที่เพียงพอ จากนั้นเซิร์ฟเวอร์จะตรวจสอบตัวตนของผู้ใช้กับบันทึกการซื้อสำหรับแอปพลิเคชันของคุณ และส่งการตอบกลับเกี่ยวกับใบอนุญาต ซึ่งไคลเอ็นต์ Google Play จะส่งกลับไปยังแอปพลิเคชันของคุณผ่านการเรียกกลับ IPC

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

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

การตอบกลับเกี่ยวกับใบอนุญาตปลอดภัย

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

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

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

ไลบรารีการยืนยันการออกใบอนุญาต

Android SDK มีแพ็กเกจที่ดาวน์โหลดได้ที่เรียกว่าแพ็กเกจการอนุญาตให้ใช้สิทธิของ Google Market ซึ่งประกอบด้วยไลบรารีการยืนยันใบอนุญาต (LVL) LVL ช่วยให้ขั้นตอนการเพิ่มการอนุญาตให้ใช้สิทธิในแอปพลิเคชันของคุณง่ายขึ้นมาก และช่วยให้การติดตั้งใช้งานแอปพลิเคชันของคุณปลอดภัยและมีประสิทธิภาพมากขึ้น LVL มีคลาสภายในที่จัดการการดำเนินการมาตรฐานส่วนใหญ่ของคําค้นหาใบอนุญาต เช่น การติดต่อไคลเอ็นต์ Google Play เพื่อเริ่มคําขอใบอนุญาต ตลอดจนการยืนยันและตรวจสอบคําตอบ นอกจากนี้ ยังแสดงอินเทอร์เฟซที่ช่วยให้คุณแทรกโค้ดที่กำหนดเองเพื่อกำหนดนโยบายการอนุญาตให้ใช้สิทธิและจัดการการเข้าถึงได้ตามที่แอปพลิเคชันต้องการได้อย่างง่ายดาย อินเทอร์เฟซ LVL หลักๆ มีดังนี้

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

เพื่อช่วยให้คุณเริ่มต้นใช้งาน Policy LVL มีการใช้งาน Policy ที่สมบูรณ์ 2 รายการที่คุณใช้ได้โดยไม่ต้องแก้ไขหรือปรับให้เหมาะกับความต้องการ

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

LVL มีให้บริการเป็นแพ็กเกจที่ดาวน์โหลดได้ของ Android SDK แพ็กเกจนี้ประกอบด้วยทั้ง LVL เองและแอปพลิเคชันตัวอย่างที่แสดงวิธีผสานรวมไลบรารีกับแอปพลิเคชัน และวิธีที่แอปพลิเคชันควรจัดการข้อมูลการตอบกลับ การโต้ตอบ UI และเงื่อนไขข้อผิดพลาด

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

ข้อกำหนดและข้อจำกัด

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

ต่อไปนี้คือสิ่งที่ควรคำนึงถึงเมื่อใช้การอนุญาตให้ใช้สิทธิในแอปพลิเคชัน

  • แอปพลิเคชันจะใช้บริการได้ก็ต่อเมื่อมีการติดตั้งไคลเอ็นต์ Google Play ในอุปกรณ์โฮสต์และอุปกรณ์ดังกล่าวใช้ Android 1.5 (API ระดับ 3) ขึ้นไป
  • คุณต้องเข้าถึงเซิร์ฟเวอร์การอนุญาตให้ใช้สิทธิผ่านเครือข่ายจึงจะตรวจสอบใบอนุญาตให้เสร็จสมบูรณ์ได้ คุณสามารถใช้ลักษณะการแคชใบอนุญาตเพื่อจัดการการเข้าถึงแอปพลิเคชันเมื่อไม่มีการเชื่อมต่อเครือข่าย
  • ความปลอดภัยในการควบคุมการอนุญาตให้ใช้สิทธิของแอปพลิเคชันจะขึ้นอยู่กับการออกแบบการติดตั้งใช้งานของคุณเอง บริการนี้จัดเตรียมองค์ประกอบพื้นฐานที่ช่วยให้คุณตรวจสอบการอนุญาตให้ใช้สิทธิได้อย่างปลอดภัย แต่การบังคับใช้และการจัดการใบอนุญาตจริงนั้นขึ้นอยู่กับคุณ การปฏิบัติตามแนวทางปฏิบัติแนะนำในเอกสารต่อไปนี้จะช่วยให้การติดตั้งใช้งานมีความปลอดภัย
  • การเพิ่มการอนุญาตให้ใช้สิทธิในแอปพลิเคชันจะไม่ส่งผลต่อวิธีการทำงานของแอปพลิเคชันเมื่อทำงานในอุปกรณ์ที่ไม่มี Google Play
  • คุณสามารถใช้การควบคุมการอนุญาตให้ใช้สิทธิสำหรับแอปที่ไม่มีค่าใช้จ่ายได้ เฉพาะในกรณีที่คุณใช้บริการเพื่อจัดหาไฟล์ขยาย APK เท่านั้น

การเปลี่ยนทดแทนสำหรับการป้องกันการคัดลอก

การอนุญาตให้ใช้สิทธิของ Google Play เป็นกลไกที่ยืดหยุ่นและปลอดภัยในการควบคุมการเข้าถึงแอปพลิเคชัน ซึ่งเข้ามาแทนที่กลไกการป้องกันการคัดลอก (ไม่รองรับแล้ว) ที่ให้บริการใน Google Play ก่อนหน้านี้อย่างมีประสิทธิภาพ และช่วยให้คุณมีโอกาสเผยแพร่แอปพลิเคชันของคุณได้กว้างขึ้น

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

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

หากต้องการเริ่มเพิ่มการอนุญาตให้ใช้สิทธิแอปพลิเคชันลงในแอปพลิเคชัน ให้ไปที่การตั้งค่าสำหรับการอนุญาตให้ใช้สิทธิ