[解決済み] Google OAuth認証が突然失敗し、"disabled_client "が発行される。
質問
私たちは、Java ScriptとAndroidのフロントエンドを持つWebアプリケーションを運営しています。認証にはOAuthを使用したGoogle IDを使用しています。今日まですべてうまくいっていたのですが、突然認証ができなくなりました。新しいソフトウェアのバージョンをデプロイしたわけでも、運用上の変更があったわけでもありません。現在、ユーザーがブラウザアプリケーションからログオンしようとすると、Googleは次のようなメッセージを発します。
401. That’s an error.
Error: disabled_client
The OAuth client was disabled.
Request Details
scope=openid profile email
response_type=code
redirect_uri=https://***.net/signin-google
state=***
client_id=******.apps.googleusercontent.com
That’s all we know.
Androidアプリでログインすると、認証にも失敗し、GoogleAuthUtil.getTokenで不特定の例外が発生する。
このエラーメッセージについてググっても、あまり情報が見つかりませんでした。同意画面でアプリケーション名を変えてみるといいという話もあります。私の場合、これは役に立ちませんでした。
開発者コンソールで、このプロジェクトに新しいクライアントIDを作成できないことに気づきました。私はいつも技術的なエラー("サーバーエラーWhoops!Our Bad.")と追跡番号が表示されます。関連性があるように思われます。
このプロジェクトには合計7つのクライアントIDが登録されており、3つの公開APIアクセスキーがあります。
Googleが明示的に私たちのプロジェクトを無効にした、という可能性はないでしょうか?実際にそのように感じています。どのような理由で?何の通知もありません。私たちの製品はアクセスコントロールのためのアプリケーションであり、特別なことや違法なことは何もありません。
何か思い当たることはありますか?これは本番環境なので、私たちにとってこの問題は絶対に深刻です。
よろしくお願いします。
解決方法は?
その間に、私たちのAndroidアプリがPlayストアから削除されたことがわかり、次のような通知が届きました。
<ブロッククオートこれは、パッケージ ID が <...> のアプリケーションを Google Play ストアから削除したことを通知するものです。 削除理由: コンテンツポリシーの個人情報および機密情報の規定に違反したためです。詳細については、ポリシーのヘルプ記事を参照してください。
- クレジットカード番号、政府の身分証明書番号、運転免許証などの免許証番号、非公開の連絡先など、人々のプライベートな機密情報の不正な公開や開示を許可しません。
ホールアプリはセキュリティが重要であり、お客様の信頼が絶対不可欠なため、アプリ内のデータには細心の注意を払っており、プライバシーやセキュリティには非常に気を遣っています。しかし、最近、デバッグのためにLogCatの出力を定期的にサーバーに送信する機能を導入しました。私たちのアプリは、アプリの説明で明らかにしているように、初期のプレビューの状態にあります。私たちが提供する特別なハードウェアでしか使用できないため、非常に限られた人たちによって使用されています。LogCatの出力には、アプリからのデータのみが含まれ、自信のあるデータは一切含まれません。関連するアプリをいくつか公開しましたが、全てにその機能が含まれているわけでもなく、全て停止されました。ただし、私たちは 推測 この機能が削除の理由だと思います。
編集 その間に、Google Playに用意されたフォームからアピールを書きました。その後まもなく、Google Playと関連するGoogle OAuth Clientから禁止事項が削除されました。
私たちのアプリが実行中のタスクの名前を収集し、私たちのサーバーに送信していると知らされましたが、そうではありません。しかし、我々はcritercismライブラリを使用し、critercismのドキュメントでは"GET_TASKS"パーミッションを要求するよう提案されており、我々はそれを実行しました。Crittercismは多くのアプリケーションで使用されているので、それほど危険だとは思っていません。しかし、一方ではLogging Service、他方ではGET_TASKSパーミッションの組み合わせは、我々のケースでは危険ではないものの、Googleのいくつかの自動ルールをトリガーしたのかもしれません。
この問題を解決するために、私たちはCrittercismと関連するすべてのパーミッションの要件を削除しました。
関連
-
[解決済み】Android Intent コンストラクタを解決できない
-
[解決済み】onCreateOptionsMenu(Menu メニュー)とは何ですか?)
-
[解決済み】Android Studio 3.2 - com.android.tools.build:aapt2:3.2.0-4818971 を見つけられませんでした。
-
[解決済み】カメラサービスへの接続に失敗しました。
-
[解決済み】getCheckedRadioButtonId()が無駄なintを返す?
-
[解決済み] android.intent.action.MAINの意味は何ですか?
-
[解決済み] OpenIDとOAuthの違いは何ですか?
-
[解決済み] JWT認証とOAuth認証の主な違いは何ですか?
-
[解決済み】OAuth v2には、なぜアクセス・トークンとリフレッシュ・トークンの両方があるのでしょうか?
-
[解決済み】Facebook OAuth "このURLのドメインは、アプリのドメインに含まれていません。"
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このアクティビティでは、Theme.AppCompatテーマ(またはその子孫)を使用する必要があります。
-
[解決済み】Android: Intent エラーを処理するアクティビティは見つかりませんでしたか?どのように解決するのか
-
[解決済み】com.android.ide.common.process.ProcessException: aaptの実行に失敗しました! どうすればいいですか?
-
[解決済み】コンテンツには、id属性が「android.R.id.list」であるListViewが必要です。
-
[解決済み] カスタムアダプタからnotifyDataSetChangeが機能しない
-
[解決済み】起動アクティビティを特定できませんでした。デフォルトのアクティビティが見つかりませんでした
-
[解決済み】Android Studioでused import文がunused import文に指定されるのはなぜ?
-
[解決済み】findViewByIDがnullを返す。
-
[解決済み】'dependencies' を '(groovy.lang.Closure)' に適用できない。)
-
[解決済み] setBackgroundDrawable() 非推奨