สิทธิ์ของแอปช่วยสนับสนุนความเป็นส่วนตัวของผู้ใช้โดยการปกป้องการเข้าถึงสิ่งต่อไปนี้
- ข้อมูลที่จํากัด เช่น สถานะของระบบและข้อมูลติดต่อของผู้ใช้
- การดำเนินการที่ถูกจำกัด เช่น การเชื่อมต่อกับอุปกรณ์ที่จับคู่และการบันทึกเสียง
หน้านี้แสดงภาพรวมเกี่ยวกับวิธีการทำงานของสิทธิ์ Android ซึ่งรวมถึงเวิร์กโฟลว์ระดับสูงสำหรับการใช้สิทธิ์ คำอธิบายสิทธิ์ประเภทต่างๆ และแนวทางปฏิบัติแนะนำบางส่วนสำหรับการใช้สิทธิ์ในแอป ส่วนหน้าอื่นๆ จะอธิบายวิธีลดคําขอสิทธิ์ของแอป ประกาศสิทธิ์ ขอสิทธิ์รันไทม์ และจํากัดวิธีที่แอปอื่นๆ สามารถโต้ตอบกับคอมโพเนนต์ของแอป
โปรดไปที่หน้าอ้างอิง API สิทธิ์เพื่อดูรายการสิทธิ์ของแอป Android ทั้งหมด
หากต้องการดูแอปตัวอย่างที่แสดงเวิร์กโฟลว์การให้สิทธิ์ ให้ไปที่ที่เก็บตัวอย่างสิทธิ์ของ Android ใน GitHub
เวิร์กโฟลว์สำหรับการใช้สิทธิ์
หากแอปของคุณมีฟังก์ชันการทำงานที่อาจต้องใช้สิทธิ์เข้าถึงข้อมูลที่จํากัดหรือการดำเนินการที่จํากัด ให้พิจารณาว่าคุณจะได้รับข้อมูลหรือดําเนินการได้โดยไม่ต้องประกาศสิทธิ์หรือไม่ คุณสามารถใช้กรณีการใช้งานต่างๆ ในแอปได้ เช่น การถ่ายภาพ หยุดเล่นสื่อชั่วคราว และแสดงโฆษณาที่เกี่ยวข้อง โดยไม่ต้องประกาศสิทธิ์ใดๆ
หากคุณตัดสินใจว่าแอปของคุณต้องเข้าถึงข้อมูลที่จํากัดหรือดําเนินการที่จํากัดเพื่อตอบสนอง Use Case ให้ประกาศสิทธิ์ที่เหมาะสม สิทธิ์บางอย่างที่เรียกว่าสิทธิ์ ณ เวลาที่ติดตั้งจะได้รับโดยอัตโนมัติเมื่อติดตั้งแอป สิทธิ์อื่นๆ หรือที่เรียกว่าสิทธิ์รันไทม์ กำหนดให้แอปต้องดำเนินการเพิ่มเติมและขอสิทธิ์เมื่อรันไทม์
รูปที่ 1 แสดงเวิร์กโฟลว์สำหรับการใช้สิทธิ์ของแอป
ประเภทของสิทธิ์
Android แบ่งสิทธิ์ออกเป็นประเภทต่างๆ ได้แก่ สิทธิ์ เวลาติดตั้ง สิทธิ์รันไทม์ และสิทธิ์พิเศษ ประเภทของสิทธิ์แต่ละประเภทจะระบุขอบเขตของข้อมูลที่จํากัดซึ่งแอปของคุณเข้าถึงได้ และขอบเขตของการดำเนินการที่จํากัดซึ่งแอปของคุณดําเนินการได้ เมื่อระบบให้สิทธิ์แก่แอป ระดับการปกป้องของสิทธิ์แต่ละรายการจะอิงตามประเภทของสิทธิ์นั้นๆ และแสดงในหน้าเอกสารอ้างอิงเกี่ยวกับ API สิทธิ์
สิทธิ์ ณ เวลาที่ติดตั้ง
สิทธิ์ ณ เวลาที่ติดตั้งจะให้สิทธิ์เข้าถึงข้อมูลที่ถูกจํากัดแบบจํากัดแก่แอป หรืออนุญาตให้แอปดําเนินการแบบจํากัดซึ่งส่งผลต่อระบบหรือแอปอื่นๆ เพียงเล็กน้อย เมื่อคุณประกาศสิทธิ์ ณ เวลาติดตั้งในแอป App Store จะแสดงการแจ้งเตือนสิทธิ์ ณ เวลาติดตั้งให้ผู้ใช้ทราบเมื่อผู้ใช้ดูหน้ารายละเอียดของแอป ดังที่แสดงในรูปที่ 2 ระบบจะมอบสิทธิ์แก่แอปโดยอัตโนมัติเมื่อผู้ใช้ติดตั้งแอป
Android มีประเภทย่อยของสิทธิ์เวลาติดตั้งหลายประเภท ได้แก่ สิทธิ์ทั่วไปและสิทธิ์การลงนาม
สิทธิ์ปกติ
สิทธิ์เหล่านี้อนุญาตให้เข้าถึงข้อมูลและการดําเนินการที่ขยายออกไปนอกแซนด์บ็อกซ์ของแอป แต่มีความเสี่ยงน้อยมากต่อความเป็นส่วนตัวของผู้ใช้และการทำงานของแอปอื่นๆ
ระบบจะกำหนดระดับการปกป้อง normal
ให้กับสิทธิ์ปกติ
สิทธิ์ลายเซ็น
ระบบจะให้สิทธิ์ลายเซ็นแก่แอปก็ต่อเมื่อแอปได้รับการรับรองจากใบรับรองเดียวกับแอปหรือระบบปฏิบัติการที่กำหนดสิทธิ์เท่านั้น
แอปพลิเคชันที่ใช้บริการที่มีสิทธิ์ เช่น บริการป้อนข้อความอัตโนมัติหรือ VPN จะใช้สิทธิ์ลายเซ็นด้วย แอปเหล่านี้ต้องมีสิทธิ์ลายเซ็นการเชื่อมโยงบริการเพื่อให้มีเพียงระบบเท่านั้นที่เชื่อมโยงกับบริการได้
ระบบจะกำหนดระดับการปกป้อง signature
ให้กับสิทธิ์ลายเซ็น
สิทธิ์ขณะรันไทม์
สิทธิ์รันไทม์หรือที่เรียกว่าสิทธิ์ที่เป็นอันตรายช่วยให้แอปเข้าถึงข้อมูลที่จำกัดได้มากขึ้นหรือให้แอปดำเนินการที่จำกัดซึ่งส่งผลต่อระบบและแอปอื่นๆ อย่างมีนัยสำคัญ ดังนั้นคุณต้องขอสิทธิ์รันไทม์ในแอปก่อนจึงจะเข้าถึงข้อมูลที่จํากัดหรือดําเนินการที่จํากัดได้ อย่าคิดไปเองว่าสิทธิ์เหล่านี้เคยมีการให้สิทธิ์แล้ว โปรดตรวจสอบสิทธิ์เหล่านั้นก่อน หากจำเป็น ให้ขอสิทธิ์ก่อนสิทธิ์เข้าถึงแต่ละครั้ง
เมื่อแอปขอสิทธิ์รันไทม์ ระบบจะแสดงข้อความแจ้งสิทธิ์รันไทม์ดังที่แสดงในรูปที่ 3
สิทธิ์รันไทม์จํานวนมากเข้าถึงข้อมูลส่วนตัวของผู้ใช้ ซึ่งเป็นข้อมูลที่จํากัดประเภทพิเศษที่มีข้อมูลที่อาจมีความละเอียดอ่อน ตัวอย่างข้อมูลผู้ใช้ส่วนตัว ได้แก่ ตำแหน่งและข้อมูลติดต่อ
ไมโครโฟนและกล้องให้สิทธิ์เข้าถึงข้อมูลที่ละเอียดอ่อนเป็นพิเศษ ดังนั้น ระบบจึงช่วยคุณอธิบายเหตุผลที่แอปเข้าถึงข้อมูลนี้
ระบบจะกำหนดระดับการปกป้อง dangerous
ให้กับสิทธิ์รันไทม์
สิทธิ์พิเศษ
สิทธิ์พิเศษสอดคล้องกับการดำเนินการของแอปที่เฉพาะเจาะจง มีเพียงแพลตฟอร์มและ OEM เท่านั้นที่กำหนดสิทธิ์พิเศษได้ นอกจากนี้ แพลตฟอร์มและ OEM มักจะกำหนดสิทธิ์พิเศษเมื่อต้องการปกป้องการเข้าถึงการดำเนินการที่มีประสิทธิภาพสูงเป็นพิเศษ เช่น การวาดทับแอปอื่นๆ
หน้าสิทธิ์เข้าถึงพิเศษของแอปในการตั้งค่าระบบมีชุดการดำเนินการที่ผู้ใช้สลับได้ การดำเนินการเหล่านี้จำนวนมากจะใช้เป็น สิทธิ์พิเศษ
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีขอสิทธิ์พิเศษ
ระบบจะกำหนดระดับการปกป้อง appop
ให้กับสิทธิ์พิเศษ
กลุ่มสิทธิ์
สิทธิ์อาจอยู่ในกลุ่มสิทธิ์ กลุ่มสิทธิ์ประกอบด้วยชุดสิทธิ์ที่เกี่ยวข้องตามตรรกะ เช่น สิทธิ์ในการส่งและรับข้อความ SMS อาจอยู่ในกลุ่มเดียวกัน เนื่องจากทั้ง 2 สิทธิ์เกี่ยวข้องกับการโต้ตอบของแอปพลิเคชันกับ SMS
กลุ่มสิทธิ์ช่วยให้ระบบลดจำนวนกล่องโต้ตอบของระบบที่แสดงต่อผู้ใช้ได้เมื่อแอปขอสิทธิ์ที่เกี่ยวข้องกันมาก เมื่อได้รับข้อความแจ้งให้ให้สิทธิ์แอปพลิเคชันแก่ผู้ใช้ สิทธิ์ที่อยู่ในกลุ่มเดียวกันจะแสดงในอินเทอร์เฟซเดียวกัน อย่างไรก็ตาม สิทธิ์อาจเปลี่ยนกลุ่มโดยไม่แจ้งให้ทราบ ดังนั้นอย่าคิดว่าสิทธิ์หนึ่งๆ จะจัดกลุ่มอยู่กับสิทธิ์อื่นๆ
แนวทางปฏิบัติแนะนำ
สิทธิ์ของแอปจะอิงตามฟีเจอร์ด้านความปลอดภัยของระบบ และช่วยให้ Android รองรับเป้าหมายต่อไปนี้ที่เกี่ยวข้องกับความเป็นส่วนตัวของผู้ใช้
- ควบคุม: ผู้ใช้ควบคุมข้อมูลที่จะแชร์กับแอปได้
- ความโปร่งใส: ผู้ใช้เข้าใจว่าแอปใช้ข้อมูลใดและเหตุผลที่แอปเข้าถึงข้อมูลนี้
- ขอบเขตการใช้ข้อมูล: แอปเข้าถึงและใช้เฉพาะข้อมูลที่จําเป็นสําหรับงานหรือการดําเนินการที่เจาะจงที่ผู้ใช้เรียกใช้
ส่วนนี้จะนำเสนอชุดแนวทางปฏิบัติแนะนำหลักๆ สำหรับการใช้สิทธิ์อย่างมีประสิทธิภาพในแอป สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีทำงานกับสิทธิ์บน Android โปรดไปที่หน้าแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับสิทธิ์ของแอป
ขอสิทธิ์ในจำนวนที่น้อยที่สุด
เมื่อผู้ใช้ขอการดำเนินการบางอย่างในแอป แอปควรขอเฉพาะสิทธิ์ที่จำเป็นต่อการดำเนินการดังกล่าว วิธีอื่นในการตอบสนอง Use Case ของแอปอาจใช้แทนสิทธิ์ที่คุณใช้อยู่ได้โดยไม่ต้องเข้าถึงข้อมูลที่ละเอียดอ่อน ทั้งนี้ขึ้นอยู่กับวิธีที่คุณใช้สิทธิ์
เชื่อมโยงสิทธิ์รันไทม์กับการดำเนินการที่เฉพาะเจาะจง
ขอสิทธิ์ให้ช้าที่สุดเท่าที่เป็นไปได้ในขั้นตอนของ Use Case ของแอป ตัวอย่างเช่น หากแอปของคุณอนุญาตให้ผู้ใช้ส่งข้อความเสียงถึงผู้อื่น ให้รอจนกว่าผู้ใช้จะไปยังหน้าจอการรับส่งข้อความและกดปุ่มส่งข้อความเสียง หลังจากผู้ใช้กดปุ่มแล้ว แอปของคุณจะขอสิทธิ์เข้าถึงไมโครโฟนได้
พิจารณาทรัพยากร Dependency ของแอป
เมื่อรวมไลบรารีไว้ด้วย ก็หมายความว่าคุณจะได้รับข้อกำหนดเกี่ยวกับสิทธิ์ของไลบรารีนั้นด้วย คุณควรคำนึงถึงสิทธิ์ที่ทรัพยากร Dependency แต่ละรายการต้องการและใช้เพื่อวัตถุประสงค์ใด
มีความโปร่งใส
เมื่อส่งคำขอสิทธิ์ ให้ระบุสิ่งที่คุณเข้าถึง เหตุผล และฟังก์ชันการทำงานที่ได้รับผลกระทบหากถูกปฏิเสธสิทธิ์อย่างชัดเจน เพื่อให้ผู้ใช้ตัดสินใจได้อย่างมีข้อมูล
ทำให้การเข้าถึงระบบไม่เหมาะสม
เมื่อคุณเข้าถึงข้อมูลหรือฮาร์ดแวร์ที่มีความละเอียดอ่อน เช่น กล้องหรือไมโครโฟน ให้แสดงการบ่งชี้อย่างต่อเนื่องในแอปหากระบบยังไม่ได้แสดงตัวบ่งชี้เหล่านี้ การแจ้งเตือนนี้จะช่วยให้ผู้ใช้ทราบได้อย่างชัดเจนว่าแอปของคุณเข้าถึงข้อมูลที่จำกัดหรือดำเนินการที่ถูกจำกัดเมื่อใด
สิทธิ์ในคอมโพเนนต์ของระบบ
สิทธิ์ไม่ได้มีไว้สำหรับการขอฟังก์ชันการทำงานของระบบเท่านั้น คอมโพเนนต์ระบบของแอปสามารถจำกัดว่าแอปอื่นๆ ใดที่โต้ตอบกับแอปของคุณได้ ตามที่อธิบายไว้ในหน้าเกี่ยวกับวิธีจำกัดการโต้ตอบกับแอปอื่นๆ