สิทธิ์บน Android

สิทธิ์ของแอปช่วยสนับสนุนความเป็นส่วนตัวของผู้ใช้โดยการปกป้องการเข้าถึงสิ่งต่อไปนี้

  • ข้อมูลที่จํากัด เช่น สถานะของระบบและข้อมูลติดต่อของผู้ใช้
  • การดำเนินการที่ถูกจำกัด เช่น การเชื่อมต่อกับอุปกรณ์ที่จับคู่และการบันทึกเสียง

หน้านี้แสดงภาพรวมเกี่ยวกับวิธีการทำงานของสิทธิ์ Android ซึ่งรวมถึงเวิร์กโฟลว์ระดับสูงสำหรับการใช้สิทธิ์ คำอธิบายสิทธิ์ประเภทต่างๆ และแนวทางปฏิบัติแนะนำบางส่วนสำหรับการใช้สิทธิ์ในแอป ส่วนหน้าอื่นๆ จะอธิบายวิธีลดคําขอสิทธิ์ของแอป ประกาศสิทธิ์ ขอสิทธิ์รันไทม์ และจํากัดวิธีที่แอปอื่นๆ สามารถโต้ตอบกับคอมโพเนนต์ของแอป

โปรดไปที่หน้าอ้างอิง API สิทธิ์เพื่อดูรายการสิทธิ์ของแอป Android ทั้งหมด

หากต้องการดูแอปตัวอย่างที่แสดงเวิร์กโฟลว์การให้สิทธิ์ ให้ไปที่ที่เก็บตัวอย่างสิทธิ์ของ Android ใน GitHub

เวิร์กโฟลว์สำหรับการใช้สิทธิ์

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

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

รูปที่ 1 แสดงเวิร์กโฟลว์สำหรับการใช้สิทธิ์ของแอป

ภาพที่ 1 เวิร์กโฟลว์ระดับสูงสำหรับการใช้สิทธิ์ใน Android

ประเภทของสิทธิ์

Android แบ่งสิทธิ์ออกเป็นประเภทต่างๆ ได้แก่ สิทธิ์ เวลาติดตั้ง สิทธิ์รันไทม์ และสิทธิ์พิเศษ ประเภทของสิทธิ์แต่ละประเภทจะระบุขอบเขตของข้อมูลที่จํากัดซึ่งแอปของคุณเข้าถึงได้ และขอบเขตของการดำเนินการที่จํากัดซึ่งแอปของคุณดําเนินการได้ เมื่อระบบให้สิทธิ์แก่แอป ระดับการปกป้องของสิทธิ์แต่ละรายการจะอิงตามประเภทของสิทธิ์นั้นๆ และแสดงในหน้าเอกสารอ้างอิงเกี่ยวกับ API สิทธิ์

สิทธิ์ ณ เวลาที่ติดตั้ง

รูปภาพด้านซ้ายแสดงรายการสิทธิ์เวลาติดตั้งของแอป รูปภาพด้านขวาแสดงกล่องโต้ตอบแบบป๊อปอัปที่มี 2 ตัวเลือก ได้แก่ อนุญาตและปฏิเสธ
รูปที่ 2 รายการสิทธิ์ของเวลาติดตั้งแอป ซึ่งปรากฏใน App Store

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

Android มีประเภทย่อยของสิทธิ์เวลาติดตั้งหลายประเภท ได้แก่ สิทธิ์ทั่วไปและสิทธิ์การลงนาม

สิทธิ์ปกติ

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

ระบบจะกำหนดระดับการปกป้อง normal ให้กับสิทธิ์ปกติ

สิทธิ์ลายเซ็น

ระบบจะให้สิทธิ์ลายเซ็นแก่แอปก็ต่อเมื่อแอปได้รับการรับรองจากใบรับรองเดียวกับแอปหรือระบบปฏิบัติการที่กำหนดสิทธิ์เท่านั้น

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

ระบบจะกำหนดระดับการปกป้อง signature ให้กับสิทธิ์ลายเซ็น

สิทธิ์ขณะรันไทม์

กล่องโต้ตอบแบบป๊อปอัปที่มี 2 ตัวเลือก ได้แก่ อนุญาตและปฏิเสธ
รูปที่ 3 ข้อความแจ้งสิทธิ์ของระบบที่ปรากฏขึ้นเมื่อแอปขอสิทธิ์รันไทม์

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

เมื่อแอปขอสิทธิ์รันไทม์ ระบบจะแสดงข้อความแจ้งสิทธิ์รันไทม์ดังที่แสดงในรูปที่ 3

สิทธิ์รันไทม์จํานวนมากเข้าถึงข้อมูลส่วนตัวของผู้ใช้ ซึ่งเป็นข้อมูลที่จํากัดประเภทพิเศษที่มีข้อมูลที่อาจมีความละเอียดอ่อน ตัวอย่างข้อมูลผู้ใช้ส่วนตัว ได้แก่ ตำแหน่งและข้อมูลติดต่อ

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

ระบบจะกำหนดระดับการปกป้อง dangerous ให้กับสิทธิ์รันไทม์

สิทธิ์พิเศษ

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

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีขอสิทธิ์พิเศษ

ระบบจะกำหนดระดับการปกป้อง appop ให้กับสิทธิ์พิเศษ

กลุ่มสิทธิ์

สิทธิ์อาจอยู่ในกลุ่มสิทธิ์ กลุ่มสิทธิ์ประกอบด้วยชุดสิทธิ์ที่เกี่ยวข้องตามตรรกะ เช่น สิทธิ์ในการส่งและรับข้อความ SMS อาจอยู่ในกลุ่มเดียวกัน เนื่องจากทั้ง 2 สิทธิ์เกี่ยวข้องกับการโต้ตอบของแอปพลิเคชันกับ SMS

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

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

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

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

ส่วนนี้จะนำเสนอชุดแนวทางปฏิบัติแนะนำหลักๆ สำหรับการใช้สิทธิ์อย่างมีประสิทธิภาพในแอป สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีทำงานกับสิทธิ์บน Android โปรดไปที่หน้าแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับสิทธิ์ของแอป

ขอสิทธิ์ในจำนวนที่น้อยที่สุด

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

เชื่อมโยงสิทธิ์รันไทม์กับการดำเนินการที่เฉพาะเจาะจง

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

พิจารณาทรัพยากร Dependency ของแอป

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

มีความโปร่งใส

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

ทำให้การเข้าถึงระบบไม่เหมาะสม

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

สิทธิ์ในคอมโพเนนต์ของระบบ

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