kamulog

xamarin.formsのネタなど

サインインだけで使う場合の Google OAuth 同意画面 の設定について

Google OAuth 同意画面の意図せぬ審査にかなり手こずったので、ここにまとめておきます。

事の発端

復習帳というアプリで Azure AD B2C 経由で Googleのサインインで OAuth 2.0 クライアントを使っています。

結構前から Azure AD B2C で使うリダイレクトURIドメインが microsoftonline.com から b2clogin.com に変わっていて 私はそれより前に設定していた microsoftonline.com で使っていたんですが、移行期限もせまり b2clogin.com に変更しようとしました。

現行バージョンと更新バージョンそれぞれで動作するためには一時的に両方のリダイレクトURIを設定する必要があります。 その作業をtwitterfacebookなどに順番に追加設定していきました。

そして何の迷いもなく、Googleの方も追加設定したところGoogleから 「審査を開始するよ、ただしアプリアイコンを使わない場合はスキップできるよ」 的なメールがきました。

アイコンは不要なので「スキップお願いします」と返信。

すると 「アイコンは一度設定すると削除できません。あなたはアイコンを設定しているので検証の対象になりました。スキップする場合、未検証のスコープにアクセスするなら、未検証アプリ画面が表示されます。未検証アプリ画面を消すには検証が必要です。」 みたいな返信が来て未検証アプリ画面はちょっと困るなということで検証を続けてもらうことにしました。

そこからはプライバシーポリシーのダメ出しやリダイレクトのドメインは所有権のあるもの以外は消してくれだとか結構な無茶を言われて、毎回「いやサインインにしか使わなくてしかも外部サービスなのでドメインは消せない」みたいな返信をするみたいなやりとりが数日間続いてしまいました。 最終的にはRejectになって 「アイコンも必要なくサインインのスコープのみを使用しているようなので検証は必要ありません。」という結末になりました。

Rejectされても今まで通り使用できています。

どうすれば良かったか

大前提としてサインインのみのスコープを使っているだけなら検証は不要です。しかしアイコンを設定してしまうとこの条件だとしてももれなく検証が始まってしまいます。 なのでサインインのみで利用する場合は絶対にアイコンを設定してはいけません。一度設定すると絶対に削除できないです。

また検証が始まってしまった場合でもスキップしてもらえば大丈夫だと思います。 未確認アプリの画面が表示される条件は未検証のスコープにアクセスする場合で、サインインのみのスコープは検証が必要ないため、メールでいろいろ警告されますが気にせずスキップ続行で良いと思います。

私の場合は未確認アプリの画面がでてしまうことにビビってしまって続行してしまいましたが、続行してしまうと無限ループになりかけるので本当に注意が必要です。

まとめ

Google OAuth をサインインのみで利用している場合は

  • 絶対にアイコンを設定してはいけない
  • もし設定してしまったら審査をスキップする

で対応できると思います。

補足

アイコンの削除に関して、以下のかなりグレーな方法は現在は当然ながら無効でした。

stackoverflow.com