許可「MANAGE_ACCOUNTS」とはどういう意味ですか?


18

たまにMANAGE_ACCOUNTS権限が必要であると読みました(実際、ドイツ語の携帯電話を持っているので「KONTENHINZUFÜGENODER ENTFERNEN」と呼ばれます。以下のテキストは「アカウントの追加または削除、アカウントの作成、パスワードの設定、デバイスのアカウント」を英語でご覧ください)。

GitHub-Appをインストールしたかったので、この質問をしています。

私はここに含めたい非常に似た質問を見つけたと思います:

  1. アカウントを作成できるとはどういう意味ですか?
  2. Amazon(Kindleアプリ)/ GitHubにこれが必要なのはなぜですか?
  3. リスクはありますか?

:彼らはいくつかの権限を要求なぜ私はまた、ガーディアンによる説明を見つけたguardian.co.uk/mobile/insideguardian/android-app-permissionsをしかし、それは潜在的なリスクに来る場合は特に、私は、より詳細な回答を取得したいと思い。
マーティントーマ

回答:


18

つまり、GitHubは内部アカウントシステムマネージャーを使用してGitHub資格情報を保存しています。これは、GoogleアカウントまたはExchangeアカウントを追加するのとまったく同じように機能します。基本的に、資格情報でログインし、アカウントマネージャーに保存されます。これにより、将来これらの資格情報を再入力する必要がなくなります。

これは、一度ログインするだけで済むため、資格情報が複数のアプリケーションで使用される場合に最も役立ちます。たとえば、Google Chromeは、ログインを強制する代わりに、アカウントマネージャーを介してアカウントにアクセスします(下部にポップアップ表示される黄色のダイアログは、Gmailまたは別のサイトにアクセスするときに、携帯電話でローカルに保持しているアカウントでサインインするかどうかを尋ねます携帯電話のGoogle ChromeブラウザのGoogleウェブサイト)。

アカウントを作成できるとはどういう意味ですか?

彼らは自分のアプリケーション用にあなたの電話でローカルアカウントを作成することができます(そして彼らのアプリケーションのみ)。これが私の電話のリストの例です:

スクリーンショット
スクリーンショット(画像をクリックすると拡大版が表示されます)

Amazon(Kindleアプリ)/ GitHubにこれが必要なのはなぜですか?

Androidの資格情報を簡素化します。これが推奨される方法です。

リスクはありますか?

あるべきではありません。アプリがAccountManagerを使用し、Googleアカウントを使用したい場合、そのアカウントを使用するには認証トークンが必要なので、明示的に許可を求める必要があります。SDKドキュメントの詳細を参照してください


3
リスクがない場合、すべてのアプリがデフォルトでアカウントマネージャーを使用できないのはなぜですか?
マーティントーマ

1
@Mooseそれはいい質問です。Android開発者として、AccountManagerを使用した経験はありませんが、正しい答えは、技術的には携帯電話にリストされているアカウントのいずれかにアクセスを試みることができると思います(ただし、私の知る限り、そのアカウントは最初の使用時)
ブライアンデニー

1
APIドキュメントを参照しました。基本的に、アプリは既存のアカウントを列挙し、「すべてのgoogleアカウント」などのタイプでそれらをフィルタリングします。アカウントが欠落している場合、作成されます。これらのアクションには、GET_ACCOUNTSおよびMANAGE_ACCOUNTSの許可が必要です。ただし(!)、たとえばgithubアカウントではなくgoogleアカウントで偽装するなど、アプリが好きなアカウントを使用することを制限するものはないようです。アカウントマネージャーに保存されている場合、アプリはアカウントパスワードを取得できるようです。その場合、これらのアクセス許可には大きなリスクがあります。アプリの作成者を完全に信頼する必要があります。
-deepc

ちょっと待って、@ BryanDenny:リスクはないはずだとあなたは言う。しかしする権限などのアプリは例えば削除でき暗示「の追加と削除を占める」しない任意のデバイスから確立されたアカウントを?他のアカウントに別のパスワードを設定するのを妨げるものは何ですか(たとえば、後で「試行回数が多すぎる」ために「ロック」が発生する)。要件が表示されていますが、指摘されているセキュリティレイヤーがありません(たとえば、ユーザーは何らかの方法でそのような変更を確認するか、特定のアカウント/タイプに制限する必要があります)。そのようなことはありますか?関連する「ポップアップ」などに気づいたことはありません。
イジー

8

アカウントを管理するために、Androidはいくつかの権限を使用します。それらのいくつかは簡単に誤解されます。アカウントの使用に関する非常に優れた説明は、たとえば、「デバイスのアカウントを使用する」権限でアプリができることに関する質問に対するダンの回答にあります。。関連する権限とその意味を要約してみましょう。

  • ACCOUNT_MANAGER:この権限はシステムアプリ用に予約されています。アカウントマネージャーは、バックグラウンドで動作し、すべてが正常に機能するように注意するサービスです。
  • AUTHENTICATE_ACCOUNTS:この権限を使用するアプリは、通常、Dropboxなどの特定のアカウントタイプ(プリインストールされたAndroidシステムでは認識されない)を処理するためのインターフェイスを提供します。出荷時、AndroidはDropboxへのログイン方法とDropboxアカウントの処理方法を認識していません。そのため、Dropboxアプリがメカニズムを提供します。さらに、「アカウント認証システム」は、アプリがアカウントで実行できるアクションを制限する場合があります(そのため、たとえば、サービスが提供する何らかのWebインターフェースを介して管理できます)。
  • GET_ACCOUNTS:利用可能なアカウントのリストを取得します。このようにして、たとえばストレージにDropboxを使用したいアプリは、適切なアカウントが利用可能かどうかを確認できます。これを使用する前に確認する必要があります。
  • MANAGE_ACCOUNTS:APIドキュメントは、この許可についてそれほど明確ではありません。しかし、Bryansの回答によると、アプリは自分で作成したアカウントのみを削除/変更できます。もちろん、新しいアカウントを作成して管理できます。
  • USE_CREDENTIALS:このアプリは、アカウントにログインするために「資格情報」を使用する場合があります。ほとんどの場合、「資格情報」とは、対応する認証者が適切なトークンを作成し、引き渡すことを意味します(ただし、その処理方法は認証者に委ねられます)。アカウントを初めて使用するとき、アカウントマネージャーはユーザーにこれを許可するかどうかを確認する必要があります。繰り返しますが、ダンの答えはこの部分をよく説明しています。

私はいくつかの光を当てることができたと思います。これも私を緊張させたので、掘り下げるのに2日かかりました。何か間違いがあった場合は、コメントで指摘して修正してください。

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