Google Workspace for Education のサードパーティ製アプリのアクセス制御の強化に関するデベロッパー向けベスト プラクティス

Google Workspace for Education の管理者が、ユーザーが Google Workspace for Education アカウントを使用してログインしているときに、組織の Google データに対するサードパーティ製アプリからのアクセスをより簡単に制御できるように、アプリのアクセス制御設定が導入されました。サードパーティ製アプリのデベロッパーは特に必要な対応はありませんが、他のデベロッパーが役立ったと判断したベスト プラクティスを以下に示します。

増分 OAuth を使用する

増分認可を使用すると、最初にアプリの起動に必要なスコープのみをリクエストし、新しい権限が必要になったときに追加のスコープをリクエストできます。アプリのコンテキストは、ユーザーへのリクエストの理由を特定します。

ログイン時に、アプリはログイン スコープ プロファイルや、アプリの動作に必要なその他の初期スコープなどの基本的なスコープをリクエストします。後で、ユーザーが追加のスコープを必要とするアクションを実行しようとすると、アプリは追加のスコープをリクエストし、ユーザーは同意画面から新しいスコープのみを承認します。

Google Classroom アドオンを作成する場合は、Google Workspace Marketplace のガイダンスに沿って、アプリに必要な OAuth スコープの完全なリストを提供する必要があります。これは、ドメイン ユーザーに同意を求めるスコープを管理者が把握できるようにするためです。

すべてのアプリが OAuth で確認されていることを確認する

Google API にアクセスするすべてのアプリは、Google の API サービスのユーザーデータ ポリシーで指定されているとおりに ID とインテントを正確に表していることを確認する必要があります。Google API を使用する複数のアプリを管理している場合は、各アプリが検証されていることを確認してください。管理者は、確認済みのブランドに関連付けられているすべての OAuth クライアント ID を確認できます。管理者が誤った OAuth クライアント ID を構成しないように、テストと本番環境に別々の Google Cloud プロジェクトを使用し、使用されていない OAuth クライアント ID をすべて削除します。

OAuth API の検証は、Google Cloud Platform が機密性の高いスコープまたは制限付きスコープをリクエストするアプリが安全でコンプライアンスを遵守していることを確認するために使用するプロセスです。確認プロセスは、Google Cloud のユーザーとデータを不正アクセスから保護するのに役立ちます。

機密スコープまたは制限付きスコープをリクエストするアプリは、Google API サービス ユーザーデータ ポリシーに準拠する必要があります。このポリシーでは、アプリがユーザーデータを保護し、ユーザーが許可した目的でのみデータを使用することが義務付けられています。アプリは、独立したセキュリティ評価を受け、Google Cloud のセキュリティ要件を満たしていることを確認しなければならない場合もあります。

OAuth API の確認プロセスが完了するまでに、最長で数週間かかる場合があります。アプリの確認が完了すると、必要な機密性の高いスコープまたは制限付きスコープをリクエストできます。

詳しくは、OAuth API の確認に関するよくある質問をご覧ください。

複数の OAuth クライアント ID を処理する

Google Cloud プロジェクトには複数の OAuth クライアント ID があり、ドメイン管理者がアクセスを複数回構成しなければならない場合があります。

OAuth クライアント ID の正確性を確保する

Google OAuth との統合に使用されている OAuth クライアント ID を開発チームに確認します。テスト環境と本番環境に 2 つの異なる Google Cloud プロジェクトを使用して、構成する OAuth クライアント ID を管理者が把握できるようにします。非推奨または古くなったクライアント ID を本番環境のプロジェクトから削除します。

CSV アップロード

複数のクライアント ID がある場合は、CSV の一括アップロード オプションを使用して、管理者がすべてのアプリをすばやく設定することをおすすめします。

フィールドは次のとおりです。

フィールド 必須 メモ
アプリ名 省略可 アプリの名前を入力します。CSV ファイルのアプリ名を変更しても、管理コンソールのアプリ名は更新されません。
タイプ はい [ウェブ アプリケーション]、[Android]、[iOS] のいずれか。
ID はい ウェブアプリの場合は、そのアプリケーションに発行された OAuth クライアント ID を入力します。

Android アプリと iOS アプリの場合は、OAuth クライアント ID、またはアプリが Google Play または Apple App Store で使用するパッケージ ID またはバンドル ID を入力します。
組織部門 お客様が記入します。

スラッシュ(「/」)を入力し、アプリのアクセス設定をドメイン全体に適用します。特定の組織部門にアクセス設定を適用するには、各組織部門の行(「App name」、「Type」、「ID」を繰り返す)をスプレッドシートに追加します。(例: /org_unit_1/sub_unit_1)。
アクセス はい Trustedblockedlimited のいずれか。

OAuth エラー

これらの新しい管理者設定では、2 つのエラー メッセージが導入されています。

  • エラー 400: access_not_structured - アプリが構成されていないため、OAuth 接続が拒否されたときに受信されます。
  • エラー 400: admin_policy_enforced - 管理者がアプリケーションをブロックしたために OAuth 接続が拒否された場合に返されます。

18 歳未満として指定されているユーザー

管理者は、18 歳未満として指定されたユーザーに対して、未設定のサードパーティ製アプリへのアクセスを管理できます。ユーザーに「アクセスをブロック: 機関の管理者は [アプリ名] を確認する必要があります」というエラーが表示された場合は、エラー メッセージ内からアクセス権をリクエストする必要があります。こうすることで、管理者がサードパーティ製アプリを確認し、サードパーティ製アプリを許可するかブロックするかを管理者が決定できます。