应用程序具有“在设备上使用帐户”权限的用途是什么?


28

这样的应用程序可以自由阅读我的电子邮件/日历/消息/文档/等吗?

开发人员也将“在设备上使用帐户”权限称为android.permission.USE_CREDENTIALS

此类应用程序的示例:WhatsAppMightyText


1
我找到了使用此权限可以执行的操作的android API示例:goo.gl/gjkJB。以我作为开发人员的理解,这意味着可以访问EVERYTHING。用户拥有帐户的令牌后,就可以访问帐户提供的任何服务:Facebook的流,Google的电子邮件-EVERYTHING
AlikElzin-kilaka 2013年

2
我的意思是从用户角度来看。我认为用户并不了解该权限背后的干扰。
AlikElzin-kilaka 2013年

1
@ t0mm13b-例如,授予特定权限(OAuth)来阅读消息,比提供对帐户的完全访问权限要容易得多。
AlikElzin-kilaka 2013年

8
我认为这是该网站的合理问题。我当然想确切地知道每个可用权限真正赋予的访问权限。
ale 2013年

Answers:


35

Android有一个集中式系统,用于管理在线服务(例如您的Google帐户)的凭据。一个组件称为AccountManager。有些应用程序可以“ 充当帐户验证者 ”。这意味着他们了解如何登录到特定的联机服务,并且可以登录到该服务AccountManager。其他应用程序希望使用该登录信息来识别您的身份或代表您执行操作,而无需每次都输入密码。

示例:登录Google

您的手机具有一个内置应用程序,可以“充当帐户验证者”的身份访问您的Google帐户。它知道如何登录Google,并且具有您在设置手机时输入的电子邮件和密码。还有一个YouTube应用程序,它希望登录以显示您喜欢的视频,并让您发表评论,而无需再次输入电子邮件和密码。

这个YouTube应用程式AccountManager与通话,并询问它是否具有Google帐户的凭证。提出此问题需要“在设备上查找帐户”权限。在AccountManager安装了手机,它提供咨询服务,回答这个问题对鉴定人的名单。如果它有任何凭据,应用程序会再询问什么被称为的authToken的谷歌帐户。此请求需要“ 在设备上使用帐户 ”权限。

AccountManager随后询问您是否要请求的应用程序(YouTube)的,以便能够使用请求的帐户(帐户谷歌)。这可能在应用程序上方显示的对话框中或在通知中。另外,如果您尚未对此问题回答“是”,则该应用程序可以选择不执行任何操作:它可能想稍后在更方便的时间询问。此步骤可确保具有“在设备上使用帐户”权限的应用程序不能不询问就立即使用每个帐户。

如果您同意, AccountManager请求转发给身份验证器(内置的Google应用)。接下来会发生什么,取决于身份验证器和您要登录的特定服务。如果您以前从未这样做过,则可能需要登录,并且登录可能需要用户名和密码,照片,SMS或完全其他内容。无论身份验证器执行什么操作,它都可能失败,或者将身份验证令牌返回给发出请求的应用程序。

进一步检查

身份验证器和在线服务还可以控制请求的应用程序可以执行哪些操作。例如,当您将一个应用程序连接到您的Google帐户时,Google会列出该应用程序所需的权限(例如YouTube的“上传视频”)。因此,该应用只能执行列出的操作。但是,某些服务可能没有这样的功能。对于此类服务,一旦您允许该应用使用您的凭据,它就可以采取任何措施您的名义。

一旦发出请求的应用程序获得了身份验证令牌,它就可以继续使用它来以您的名义执行操作,而无需您进行任何进一步的交互。也就是说,一旦您同意Dan的Twitter Client可以发布到您的Twitter feed,它可能会在后台运行并在您不知情的情况下发布更多推文。如果您信任,则应仅授予该应用访问您凭据的权限不这样做时,。

摘要

具有“ 在设备上使用帐户 ”权限的应用程序一旦安装,就可以要求您以您的名义访问在线服务(例如Google,Facebook或Twitter)。您可以选择是否允许其访问服务。如果您确实允许它访问该服务,则代表该用户执行的操作可能会受到该服务的限制(取决于服务),并且该服务可能会让您稍后撤消该权限(通常通过“已连接的应用程序列表”服务网站上的“)。


0

在Android API中找到了可以使用该权限进行操作的示例

从我的理解作为一个开发者,这个手段获得几乎一切由账户提供,除了更改密码。

一旦用户帐户的道理,他可以访问任何服务的帐户提供:在你的Facebook的墙后,读取您的Gmail -几乎一切


我不确定100%,但是我认为在应用可以访问和使用身份验证令牌之前,有一个“选择帐户”屏幕。仅此权限还不足以访问用户帐户。
流动

2
不太完全-在其前面加上“几乎”一词。就像特权名称所暗示的那样:它可以使用帐户信息,但不能更改。据我所知,它可以“以用户名身份进行身份验证”,但无需了解凭据本身。是的:它可以读取您的邮件,甚至可以将其发布在Facebook上。但是它无法监视您的密码。不过,这是一项敏感的特权。
伊齐

由于您无法通过这种访问方式更改帐户密码,因此您无权访问“所有内容”,因此此答案不正确。
pzkpfw

@pzkpfw:我已经将答案更新为“几乎”,因为在许多恶意用例中,攻击者都不想更改密码,而是悄悄地滥用帐户。
Dan Dascalescu

-1

该应用程序将无法访问任何服务帐户。一些应用程序需要此权限,因为它们需要从其应用程序中打开一个新帐户。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.