GoogleAPIの制限付きスコープのOAuth検証を受けた話(2024年6月版)

記事タイトルとURLをコピーする

はじめに

こんにちは、PE課(プロセスエンジニアリング課)の江利です。

前回の投稿から時間が空いてしまったため所属が変わりましたが業務内容は特に変わっていません。

今回は Not A Chat をリリースするにあたって Google API の制限付きスコープの OAuth 検証を受けた話です。実は結構短いスパンで審査のレギュレーションが変更になっていそう*1なので私が実際に2024年6月に検証を受けた際の体験談を自身の備忘録も兼ねて記事にしたいと思います。あくまで私が検証を受けた当時の体験談となりますので現時点のものと差異がある可能性がございますことをご了承ください。

ちなみに私が参考にした記事はこちらです。

zenn.dev

tech.arc-one.jp

この場を借りて感謝の意をお伝えします。

対象読者

  • これから Google API を使用したアプリを作成予定で OAuth 検証を受ける方
  • 実際に制限付きスコープの OAuth 検証に要する時間などを把握したい方

なお、制限付きスコープの Google API を使用する場合でもアプリを公開しない場合(個人や自社の Google Workspace 内のみでの利用や限定公開)は OAuth 検証不要です。

申請から検証完了まで

事前準備

  • Google Search Console にて確認済みの所有権を有するドメイン
    • 承認済みドメインに指定する必要があるため
  • YouTube チャンネル
    • デモ動画を撮影し公開設定でアップロードする必要があるため
  • アプリのホームページとプライバシーポリシー
    • こちらもアプリと同一ドメインである必要があります

特にプライバシーポリシーはホームページ内でのモーダルウィンドウやダイアログではなく固有のURLを持っていなければならないため注意が必要です。(私はダイアログで実装してしまったため指摘を受けました)

なお、審査のやりとりはすべて英語のメールでのやりとりとなりますので最低限の英語力は必要です。ご自身に英語力が足りない場合は英語つよつよの同僚を探しましょう。

申請開始

Google Cloud のコンソール画面から「アプリを編集」をクリックします。

OAuth 同意画面

OAuth 同意画面

基本的には必須項目を埋めていきます。

  • アプリ名
    • 同意画面に表示されるアプリの名称です
  • ユーザーサポートメール
    • 同意画面からの問い合わせに利用されます。なお、メーリングリストは指定できませんので属人化回避するためにも専用のアカウントを発行することをお勧めします
  • アプリのロゴ
    • 同意画面に表示されるアイコンとなりますのでブランディングの意味合いも強いためちゃんとしたものを指定することをお勧めします
  • アプリケーションのホームページ
    • 事前準備で用意したホームページのURLを指定してください
    • 私は審査のために英語版の簡易LPを作成しました
    • サブドメインでも大丈夫でした
  • [アプリケーション プライバシーポリシー] リンク
    • 同じく事前準備で用意したプライバシーポリシーのURLを指定してください
    • ホームページのURLとの重複不可につき注意
    • こちらも同じく審査のために英語版のプライバシーポリシーを用意しました
      • 一説によると日本語のプライバシーポリシーの場合 Google 翻訳で訳したものが審査基準を満たす必要があるため細かいニュアンスが間違っていると差し戻しされるとの噂があったため(あくまで噂であり事実関係の確認はできませんのでご留意ください)
    • 当然ですがこちらもサブドメインでも大丈夫でした
  • 承認済みドメイン1(必須)
    • 事前準備で用意した Google Search Console にて確認済みの所有権を有するドメインを指定してください
  • デベロッパーの連絡先情報
    • Google からの連絡が送られてくるので必ず受信可能なメールアドレスを指定してください

スコープ

「保存して次へ」をクリックしスコープについての情報を埋めていきます。

今回 Not A Chat では制限付きのスコープ.../auth/gmail.readonlyにて申請しました。

  • どの機能を使用しますか?
    • Not A Chat の場合は「メールの生産性」を選択しました。適宜ご自身のアプリに合ったものを選択するようにしてください。
  • スコープをどのように使用しますか?
    • こちらも適宜ご自身のアプリに合ったものを選択するようにしてください。
  • デモ動画: スコープの使用方法
    • 事前準備で用意した YouTube チャンネルに公開設定でアップロードされたデモ動画のURLを指定してください(デモ動画の要件については後述します)

省略可能な情報

こちらは本当に省略可能な情報となっているため省略可能です。Not A Chat でも空欄で提出しました。

概要

こちらはここまで入力した内容の確認画面となりますので問題なければ申請を開始してください。

Google からのフィードバック

しばらくすると The Third Party Data Safety Team からメールで指摘事項が送られてきます。もしかしたら一発OKだと送られてこないのかもしれませんが今回私が申請した際には何度か指摘を受けました。事前準備の章にも記載した通りメールはすべて英語です。最初の指摘はプライバシーポリシーのURLとホームページのURLが同じだというものでした。メールにはここに書いてあるからちゃんと見てねとの記載もありました。

ちなみに最初なかなかメールがこないなと思って待っていました。Not A Chat ではユーザー認証に Cognito を使っていて、承認済みドメインに Google Search Console にて確認済みドメインではないものが入っていたことが原因ではないかと想像しています。こちらはあくまで想像であり Google から指摘されたわけではないので定かではありません。なお、Cognito のリダイレクト先のURLをAWSが用意するサブドメインから独自ドメインへ変更する方法は宮形のこちらの記事をご覧ください。

blog.serverworks.co.jp

プライバシーポリシーをホームページと分離し別のURLとして申請を再開したところ2つ目の指摘がありました。要約するとプライバシーポリシーに「Google Workspace API が一般化されたAI モデルや ML モデルの開発、改善、トレーニングに使用されないということを明記しろ」ということでした。こちらもご丁寧にここに書いてあるからちゃんと見てねと記載されていました。

すぐさまプライバシーポリシーを修正し申請を再開しました。すると次は「アプリケーションによってアクセスされる Google ユーザー データが何であるかを明記しろ」という指摘がありました。今回もご丁寧にここに書いてあるからちゃんと見てねと記載されていました。

リファレンスをもっと熟読すべきだったと反省しています。日本とアメリカの時差の関係でメールでのやりとりはだいたい1日に1往復となります。この時点ですでに3往復しているため3日タイムロスしてしまっています。ここでリファレンスと向き合い指摘される可能性のある箇所を洗い出しすべて潰してから申請を再開したところ、ようやく次のステップに進むことができました。

アプリのスキャンから LOA 提出

次に The Third Party Data Safety Team から送られてきたメールには期日*2までに

  1. Tier 2 認定ラボスキャン
  2. Tier 3 CASA アセスメント

のいずれかを完了せよというものでした。

以前はセルフスキャンの選択肢もあったようですが2024年6月時点ではセルフスキャンは許容されず認定ラボによるスキャンが必須となっていました。メールには認定ラボのリストとオススメ?の認定ラボが記載されておりCASA評価は先着順に実施されるのでできるだけ早く評価を開始するよう脅し推奨されていました。(以下原文)

CASA assessment is done on a "first-come-first-serve" basis. This can take up to 6 weeks depending on how engaged and responsive you are in the whole process.Hence we strongly suggest you get started with the assessment as soon as possible. To know how, please read the instructions below.

ちなみにどうしても期日に間に合わない場合は連絡してくれともメールに記載されていますので、そこら辺はどうやら柔軟に対応してもらえるようです。

メールに記載されたオススメ認定ラボのホームページにアクセスしてスキャンの依頼をしようとしたのですが、いきなり初手でクレカ情報を入力しなければならない状況に少し戸惑いを隠せませんでした。総務課へ依頼しクレカ情報登録していただき管理コンソールらしきものにログインできるようになりソースコードを zip したものをアップロードしスキャン依頼を実行しました。およそ半日後にスキャン完了しレポートが届いたので確認したところ、特に問題なさそうだったのでいくつかの質問事項(SAQ)に回答し Google Cloud のプロジェクトIDやらアプリ名、アプリURLを登録し申請開始して欲しい旨を認定ラボに伝えると Google に LOA 提出されたとの返事がありました。およそ5〜6営業日で審査完了する見込みとのことでしたが Google の審査が混雑しているとのことで実際に承認されたのは LOA 提出から9営業日後でした。もちろん認定ラボもアメリカの企業だったためやりとりはすべて英語のメールでした。

デモ動画

時系列は前後しますがデモ動画の要件について補足しておきます。

  • 必ず公開設定であること(限定公開では駄目)
  • OAuth 同意画面が英語で表示されていること
    • ポップアップされた後で言語変更で大丈夫です
  • OAuth 同意画面にアプリ名が表示されていること
  • OAuth 同意画面のURLバーにproject_numberを含むプロジェクトのクライアントIDが完全に表示されていること
    • 念のためにテロップにclient_id:xxxxxといれておくとよいと思います
  • OAuth 起動からユーザーが OAuth 同意して許可するまでの流れが含まれていること
  • 利用するスコープで取得したデータが具体的にどこでどのように使われているのかがテロップで説明されていること

もちろんここでもテロップはすべて英語ですが、結構ざっくりとした説明で大丈夫です。私は Mac ユーザーなので iMovie を使ってテロップを入れました。

大事なことなのでもう一度言いますがデモ動画は必ず公開設定にしてください。

まとめ

初見でまったく事前に情報収集していない状態からのスタートではかなりの茨の道となること間違いなしですが、しっかりと要点を押さえておけば最短で2〜3週間ほどで承認されるのではないかと思います。今後またレギュレーション変更となる可能性もありますが大まかな流れはそこまで変わらないのではないかと思います。当然ですが利用スコープに制限付きスコープを追加した際には再度申請が必要となりますのでご注意ください。また、1年ごとに再申請が必要だよと Google より釘を刺されます。 *3

最後に、Not A Chat では2024年8月現在、アーリーアクセス企業を募集しております。一切の費用は掛からずにご利用いただけます。ご興味がございましたらお気軽にお申込いただければと思います。 notachat.ai

この記事がどなたかの助けとなれば幸いです。

*1:少なくとも私が参考にした記事の2022〜2023年頃とは少し事情が違っていました

*2:メール受信日より約3ヶ月後が指定されていました

*3:Annual Re-verification - Google Cloud Platform Console Help

江利 義陽(記事一覧)

CE部PE課でSalesforceエンジニアをやっています。Salesforce歴は13年くらいなのでチョットだけわかります。
記事への質問やフィードバックは yoshiaki.eri@serverworks.co.jp までお願いいたします。
Trailblazer プロファイル