Android có một hệ thống tập trung để quản lý thông tin đăng nhập cho các dịch vụ trực tuyến (chẳng hạn như tài khoản Google của bạn). Một thành phần được gọi là AccountManager
. Một số ứng dụng có thể " hoạt động như một trình xác thực tài khoản ". Điều này có nghĩa là họ hiểu cách đăng nhập vào một dịch vụ trực tuyến cụ thể và có thể đăng nhập vào dịch vụ đó cho AccountManager
. Các ứng dụng khác muốn sử dụng thông tin đăng nhập đó để nhận dạng bạn hoặc thực hiện các hành động thay mặt bạn mà không cần bạn phải nhập mật khẩu mỗi lần.
Ví dụ: đăng nhập vào Google
Điện thoại của bạn có ứng dụng tích hợp "hoạt động như một trình xác thực tài khoản" cho tài khoản Google của bạn. Nó biết cách đăng nhập vào Google và nó có email và mật khẩu bạn đã nhập khi bạn thiết lập điện thoại. Ngoài ra còn có một ứng dụng YouTube muốn đăng nhập để hiển thị các video yêu thích của bạn và cho phép bạn nhận xét nhưng không phải nhập lại email và mật khẩu.
Ứng dụng YouTube này nói chuyện với AccountManager
và hỏi xem nó có bất kỳ thông tin xác thực nào cho tài khoản Google không. Đặt câu hỏi này yêu cầu quyền "tìm tài khoản trên thiết bị". Có AccountManager
một danh sách các trình xác thực được cài đặt trên điện thoại, mà nó tư vấn để trả lời câu hỏi này. Nếu nó không có bất kỳ thông tin, ứng dụng sẽ sau đó yêu cầu cho những gì được biết đến như một authToken cho tài khoản Google. Yêu cầu này yêu cầu quyền " sử dụng tài khoản trên thiết bị ".
Sau AccountManager
đó sẽ hỏi bạn nếu bạn muốn ứng dụng yêu cầu (YouTube) có thể sử dụng tài khoản được yêu cầu (tài khoản Google). Điều này có thể trong một hộp thoại xuất hiện trên ứng dụng hoặc trong một thông báo. Ngoài ra, ứng dụng có thể chọn không làm gì nếu bạn chưa trả lời có cho câu hỏi này: ứng dụng có thể muốn hỏi sau vào thời điểm thuận tiện hơn. Bước này đảm bảo rằng một ứng dụng có quyền "sử dụng tài khoản trên thiết bị" không thể sử dụng ngay lập tức mọi tài khoản mà không cần hỏi.
Nếu bạn nói có, AccountManager
yêu cầu chuyển tiếp đến trình xác thực (ứng dụng Google tích hợp). Điều gì xảy ra tiếp theo là tùy thuộc vào trình xác thực và dịch vụ cụ thể mà bạn đang đăng nhập. Bạn có thể cần phải đăng nhập nếu trước đó bạn chưa làm điều đó và đăng nhập có thể yêu cầu tên người dùng và mật khẩu, ảnh, SMS hoặc một cái gì đó hoàn toàn khác. Dù trình xác thực làm gì, nó cũng có thể thất bại hoặc trả lại tự động cho ứng dụng yêu cầu.
Kiểm tra thêm
Trình xác thực và dịch vụ trực tuyến cũng có thể kiểm soát những hành động mà ứng dụng yêu cầu có thể thực hiện. Ví dụ: khi bạn kết nối một ứng dụng với tài khoản Google của mình, Google sẽ liệt kê các quyền mà ứng dụng cần (chẳng hạn như "tải lên video" cho YouTube). Vì vậy, ứng dụng chỉ có thể thực hiện các hành động được liệt kê. Tuy nhiên, một số dịch vụ có thể không có gì như vậy; đối với một dịch vụ như vậy, một khi bạn đã cho phép ứng dụng sử dụng thông tin đăng nhập của mình, nó có thể thực hiện bất kỳ hành động nào trong tên của bạn.
Khi ứng dụng yêu cầu đã nhận được authtoken, nó có thể tiếp tục sử dụng nó để thực hiện các hành động trong tên của bạn mà không có bất kỳ tương tác nào từ bạn. Đó là, một khi bạn đã đồng ý rằng Twitter Client của Dan có thể đăng lên nguồn cấp dữ liệu Twitter của bạn, nó có thể chạy trong nền và đăng các tweet khác mà bạn không biết. Bạn chỉ nên cấp cho ứng dụng quyền truy cập vào thông tin đăng nhập của bạn nếu bạn tin tưởng nó không làm điều đó.
Tóm lược
Một ứng dụng có quyền " sử dụng tài khoản trên thiết bị " có thể, sau khi được cài đặt, yêu cầu bạn truy cập một dịch vụ trực tuyến (như Google, Facebook hoặc Twitter) trong tên của bạn. Bạn có thể chọn để cho phép nó truy cập dịch vụ hay không. Nếu bạn cho phép nó truy cập dịch vụ, những hành động mà họ có thể thực hiện thay mặt bạn có thể bị giới hạn bởi dịch vụ (tùy thuộc vào dịch vụ) và dịch vụ có thể cho phép bạn thu hồi quyền đó sau (thường thông qua danh sách "ứng dụng được kết nối "Trên trang web của dịch vụ).