「デバイスのアカウントを使用」権限でアプリは何ができますか?


28

そのようなアプリは私のメール/カレンダー/メッセージ/ドキュメント/などを自由に読むことができますか?

「デバイスのアカウントを使用」権限は、開発者にとってandroid.permission.USE_CREDENTIALSとしても知られています。

そのようなアプリの例:WhatsAppMightyText


1
この許可を使用して何ができるかについてのAndroid APIの例を見つけました:goo.gl/gjkJB。開発者としての私の理解から、これはすべてへのアクセスを意味します。ユーザーは、アカウントのトークンを持っていたら、彼はすべてのサービスにアクセスすることができ申し出アカウント:Facebookのストリーム、Googleの電子メール- EVERYTHINGを
AlikElzin-kilaka

2
私はユーザーの観点から意味しました。ユーザーは、その許可の背後にある侵入性を認識していないと思います。
AlikElzin-kilaka

1
@ t0mm13b-たとえば、メッセージを読み取るための特定のアクセス許可(OAuth)を与えることは、アカウントへのフルアクセスを与えることよりはるかに邪魔になりません。
AlikElzin-kilaka

8
これはこのサイトにとって妥当な質問だと思います。確かに、利用可能な各アクセス許可が実際にアクセスを許可しているものを正確に知りたいです。
エール

回答:


35

Androidには、オンラインサービス(Googleアカウントなど)の資格情報を管理するための集中システムがあります。1つのコンポーネントはと呼ばれますAccountManager。一部のアプリは「アカウント認証システムとして機能」できます。これは、特定のオンラインサービスにログインする方法を理解し、そのサービスにログインできることを意味しますAccountManager。他のアプリは、毎回パスワードを入力しなくても、そのログイン情報を使用してユーザーを識別したり、ユーザーに代わってアクションを実行したりします。

例:Googleへのログイン

お使いの携帯電話には、Googleアカウントの「アカウント認証者として機能する」アプリが組み込まれています。Googleへのログイン方法を認識しており、電話のセットアップ時に入力したメールとパスワードを持っています。ログインしてお気に入りの動画を表示したり、コメントしたりできるようにしたいが、電子メールとパスワードを再度入力する必要がないYouTubeアプリもあります。

このYouTubeアプリはAccountManager、Googleアカウントの資格情報を持っているかどうかを確認します。この質問を行うには、「デバイス上のアカウントを検索する」権限が必要です。AccountManagerそれはこの質問に答えるために相談電話にインストール認証者のリストを持っています。資格情報がある場合、アプリはGoogleアカウントの認証トークンと呼ばれるものを要求します。このリクエストには、「デバイスのアカウントを使用する」権限が必要です。

AccountManagerあなたが要求するアプリ(YouTubeが)要求されたアカウント(Googleのアカウント)を使用することができるようにしたい場合は、あなたを尋ねられます。これは、アプリ上に表示されるダイアログまたは通知にあります。または、この質問に「はい」と答えていない場合、アプリは何もしないことを選択できます。後で都合のよいときに尋ねることができます。この手順により、「デバイス上のアカウントを使用」権限を持つアプリが、確認せずにすべてのアカウントをすぐに使用できないようになります。

「はい」と答えると、AccountManagerリクエストはオーセンティケーター(組み込みのGoogleアプリ)に転送されます。次に何が起こるかは、オーセンティケーターとログインしている特定のサービス次第です。以前にログインしていない場合はログインする必要があります。ログインするには、ユーザー名とパスワード、写真、SMSなどが必要になる場合があります。オーセンティケーターが何をしても、失敗するか、要求元のアプリに認証トークンを返すことができます。

さらなるチェック

認証システムとオンラインサービスは、要求元アプリが実行できるアクションを制御することもできます。たとえば、アプリをGoogleアカウントに接続すると、アプリに必要な権限(YouTubeの「動画のアップロード」など)がリストされます。したがって、アプリはリストされたアクションのみを実行できます。ただし、一部のサービスにはそのようなものがない場合があります。このようなサービスの場合、アプリに資格情報の使用を許可すると、名前で任意のアクションを実行できます。

要求元のアプリが認証トークンを取得すると、それを引き続き使用して、ユーザーからの対話なしで名前でアクションを実行できます。つまり、DanのTwitterクライアントがTwitterフィードに投稿できることに同意すると、バックグラウンドで実行され、知らないうちにさらにツイートを投稿する可能性があります。アプリに資格情報へのアクセスを許可しないのは、信用していない場合のみです。

概要

デバイスのアカウントを使用」権限を持つアプリは、インストールされると、自分の名前でオンラインサービス(Google、Facebook、Twitterなど)にアクセスするように要求できます。サービスへのアクセスを許可するかどうかを選択できます。サービスへのアクセスを許可する場合、あなたに代わって実行できるアクションはサービスによって制限される場合あり(サービス次第)、サービス後で許可を取り消す場合があります(通常は「接続済みアプリのリスト」サービスのウェブサイトで)。


0

この許可を使用して何ができるかについて、Android APIこの例を見つけました。

開発者としての私の理解から、この手段はほとんどへのアクセスをEVERYTHINGパスワードを変更することを除いて、アカウントによって提供さ。

ユーザーは、アカウントのトークンを持っていたら、彼はすべてのサービスのアカウントの提供にアクセスすることができます:自分のFacebookの壁にポストを、あなたのGmailを読んで-ほとんどEVERYTHING


100%確信はありませんが、アプリが認証トークンにアクセスして使用できるようになる前に「アカウントの選択」画面があると思います。許可だけでは、ユーザーアカウントにアクセスするには不十分です。
フロー

2
完全ではありません-その前に「ほぼ」という言葉を追加します。特権の名前が示すとおり、アカウント情報を使用できますが変更はできません。私の知る限り、「ユーザー名で認証」できますが、資格情報自体を知ることはできません。はい、そうです:あなたのメールを読むことができ、Facebookに投稿することもできます。しかし、パスワードをスパイすることはできませんでした。それでも、これはデリケートな特権です。
イジー

この種のアクセス権を持つアカウントのパスワードを変更することはできず、「すべて」へのアクセス権がないため、この答えは正しくありません。
pzkpfw

@pzkpfw:多くの悪意のあるユースケースでは、攻撃者はパスワードを変更したくないが、静かにアカウントを悪用するため、答えを更新して世界を「ほぼ」含むようにしました。
ダンダスカレスク16年

-1

アプリはサービスアカウントにアクセスしません。一部のアプリは、アプリから新しいアカウントを開く必要があるため、この許可が必要です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.