此类应用的示例:WhatsApp,MightyText。
#1 楼
Android具有用于管理在线服务(例如您的Google帐户)凭据的集中式系统。一种组件称为AccountManager
。某些应用程序可以“充当帐户验证者”。这意味着他们了解如何登录到特定的联机服务,并且可以通过AccountManager
登录该服务。其他应用程序希望使用该登录信息来识别您的身份或代表您执行操作,而不必每次都输入密码。示例:登录Google
您的手机有一个内置的应用程序,可以“充当帐户验证者”的身份访问您的Google帐户。它知道如何登录Google,并且具有您在设置手机时输入的电子邮件和密码。还有一个YouTube应用程序,它希望登录以显示您喜欢的视频并发表评论,而无需再次输入电子邮件和密码。
此YouTube应用程序与
AccountManager
和询问它是否具有Google帐户的任何凭据。提出此问题需要“在设备上查找帐户”权限。 AccountManager
在电话上安装了身份验证器列表,它会参考该列表来回答此问题。如果确实有任何凭据,则该应用程序将询问被称为Google帐户的身份验证令牌。此请求需要“在设备上使用帐户”权限。然后,
AccountManager
询问您是否要请求的应用程序(YouTube)能够使用请求的帐户(Google帐户)。这可能在应用程序上方显示的对话框中或在通知中。另外,如果您尚未对此问题回答“是”,则该应用程序可以选择不执行任何操作:它可能想稍后在更方便的时间询问。此步骤可确保具有“在设备上使用帐户”权限的应用程序无需询问即可立即使用每个帐户。如果您说“是”,则
AccountManager
会将请求转发到身份验证器(内置的Google应用)。接下来会发生什么,取决于身份验证器和您要登录的特定服务。如果您以前从未这样做过,则可能需要登录,并且登录可能需要用户名和密码,照片,SMS或完全其他内容。无论身份验证器执行什么操作,它都可能失败,或将authtoken返还给请求的应用程序。请求的应用可以执行。例如,当您将一个应用程序连接到您的Google帐户时,Google会列出该应用程序所需的权限(例如YouTube的“上传视频”)。因此,该应用只能执行列出的操作。但是,某些服务可能没有这样的功能。对于此类服务,一旦您允许该应用使用您的凭据,它便可以您的名义采取任何措施。一旦请求的应用获得了身份验证令牌,它便可以继续使用它以您的名义执行操作,而无需您进行任何进一步的交互。也就是说,一旦您同意Dan的Twitter客户端可以发布到您的Twitter提要中,它可能会在后台运行并在您不知情的情况下发布更多推文。仅当您信任不这样做的应用程序时,才应授予应用程序访问权限。
摘要
具有“在设备上使用帐户”权限的应用程序可以安装后,请您以您的名义访问在线服务(例如Google,Facebook或Twitter)。您可以选择是否允许它访问服务。如果您确实允许它访问该服务,则代表该用户采取的操作可能会受到该服务的限制(取决于服务),并且该服务可能会让您稍后撤消该权限(通常通过“已连接的应用程序列表“在服务的网站上)。
#2 楼
我在Android API中找到了可以使用该权限可以执行的示例。 >用户拥有帐户令牌后,便可以访问该帐户提供的任何服务:在您的Facebook墙上发帖,阅读您的Gmail-几乎所有内容。
评论
我不确定100%,但是我认为在应用可以访问和使用身份验证令牌之前,有一个“选择帐户”屏幕。仅该权限还不足以访问用户帐户。
–流程
2013年1月25日15:50
不太完全-在其前面加上“几乎”一词。顾名思义,该特权可以使用帐户信息,但不能更改。据我所知,它可以“以用户名身份进行身份验证”,但无需了解凭据本身。是的:它可以读取您的邮件,甚至可以将其发布在Facebook上。但是它无法监视您的密码。不过,这是一项敏感的特权。
– Izzy♦
2013年1月25日15:51
由于您无法通过这种访问方式更改帐户密码,因此您无权访问“所有内容”,因此此答案是错误的。
– pzkpfw
13年5月28日在8:25
@pzkpfw:我已经将答案更新为“几乎”,因为在许多恶意用例中,攻击者都不想更改密码,而是悄悄地滥用帐户。
– Dan Dascalescu
16年1月8日在21:27
评论
我找到了使用此权限可以执行的操作的android API示例:goo.gl/gjkJB。以我作为开发人员的理解,这意味着可以访问所有内容。用户拥有帐户的令牌后,就可以访问帐户提供的任何服务:Facebook的流,Google的电子邮件-一切。TBH,许多用户没有阅读Play商店的权限并盲目下载,我不知道他们是否确实阅读过Play商店在下载之前告诉他们的内容,就像列出许可权一样,就像将其视为EULA一样,并且跳到下一部分...只是说...,但您的意思是,基于所有内容的大写字母,允许使用“ OMG,可以监听我的电子邮件”,是的,一个不好的应用程序可以做到各种各样的!只需使用常识即可:)
这与具有或使用OAuth令牌和凭据(例如电子邮件,Facebook,日历)的任何内容有关,但对于文本短信中的消息,则需要READ_SMS_PERMISSION ...只是说...
@ t0mm13b-例如,授予特定权限(OAuth)来阅读消息,比提供对帐户的完全访问权限要容易得多。
相关:应用程序要求的权限是什么意思?