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

การให้สัญญาอนุญาตของ 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 จะส่งคืนไปยังแอปพลิเคชันของคุณ ผ่าน Callback ของ 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 หรือการนำผู้ใช้ไปซื้อ แอปพลิเคชัน (หากยังไม่มีใบอนุญาต)

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

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

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

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