Googleを追いかけろ!

.
価格.com ブロードバンド

WWW を検索 Googleを追いかけろ! を検索



Security

  • 実行可能なスクリプトの設置ができるのはアクセス権のある Google のアプリケーションとサービスに限られます。
    もし他人のカレンダーに自由にエントリーできるのなら、自分を実行者とするカレンダーへのエントリー用スクリプトを設置することは可能です。
    しかし共有カレンダーの設定が不可能で、他人のカレンダーにアクセスできないような場合、自分を実行者とするようなスクリプトを設置することはできません。

  • 個人データを持つカレンダーやメールなどのアプリケーションにアクセスするようなスクリプトは、すべて明示的にアクセス権を付与しなければなりません。

  • 他人または共有者によって書かれたスクリプトにはすべて明示的にアクセス権を付与しなければなりません。スクリプトを含むスプレッドシートをコピーするような場合です。

  • 関数が自分のカレンダーのプライベートデータにアクセスしているときは、すべて明示的にアクセス権を付与しなければなりません。何らかの方法で自分に代わって関数がメールを送信しようとするときも同様です。

  • カスタム関数や単純なイベントハンドラーは管理権限者の許可無く実行できますが、許可を求めるようなアクセスはできません。

  • 自分の作成したスプレッドシートや Script Gallery からインストールしたシートは、アクセス権が暗示的に与えられているものなので スクリプトは自動的にデータのアクセス権を与えられています。

アクセス権の付与

Script Gallery からサンプルをインストールしたり、スクリプトを含むスプレッドシートをコピーするようなときは、どのような書き込みやスクリプトの実行もできません。
またそれらを自分が最初に編集した場合も、利用しようとするサービスへのアクセス権の付与をを明示的に求められることになります。 Security Authorization ダイアログボックスにはスクリプト名、所有者、スクリプトへのアクセス権が必要なサービス内容が書かれています。

特定の Google やサービスへのアクセス権の場合は、下のようなダイアログボックスがポップアップされます。

アクセス権の取り消し

スクリプトを書いたり実行して、データやアクセスへの許可を求められたとき、そのスクリプトのアクセスを取り消すことができます。

スクリプトのアクセスを取り消すためには

  1. Googleアカウントのアカウント設定ページへ移動する
    • もし Google Apps 用アカウントがドメインアカウントならば、Gmailを開いて Start Page をクリック
    • もし Google Apps 用アカウントが consumer 用(一般)ならば Google.com へ行き、自分のアカウントでサインイン
  2. Settings > Google Account Settings を選択
  3. Security セクションで Change authorized websites を選択
  4. 拒否したいスクリプトの認証を Revoke Access で取り消す

カスタム関数とイベントハンドラのセキュリティ制限

Google Apps Script を利用したスクリプトは、どのような環境でもすべての機能が叶えられるわけではありません。

カスタム関数はスプレッドシートが再計算されるたびに実行される関数です。
たとえば、XLMチュートリアルで取り上げた Oracle of Bacon script では =kb(actor1, actor2) というカスタム関数を使っていました。

カスタム関数はカレントシートのデータを読み込み、 SOAP,UrlFetch,Google Translate といった匿名サービスを利用することができす。 このように実行のための資格情報を必要としない(特殊ではない)サービスなのです。

Googleカレンダーは特定ユーザーに限定されたユーザー固有のサービスなので、(特定ユーザーの)プライベートデータの保存やメール送信のようにユーザーとしての行為も許されます。

イベントハンドラーとカスタム関数は意識されずに実行されますが、ユーザー固有のサービスにアクセスすることは許可されません。

また、カスタム関数はCalendar,Gmail,Sites 内でのユーザー個人のデータアクセスもできません。
カスタム関数は戻り値以外のものをスプレッドシートに書く込むことはできず、戻り値を配置されたセルに書き込むことのみ可能なのです。

同様にonEdit 関数もカスタム関数へ働きかけます。やはり知らぬ間に実行されますが、Google Apps Script は個人データーへの アクセスは許可していません。onEdit関数は、SOAPやUrlFetchなど非特異的サービスを呼び出し、スプレッドシート上の任意のセルに書き込むことができます。

onOpenonInstall 関数も気付かぬ間に実行されます。一般的にこの2つの関数は、メニューやメニューアイテムの挿入のみに使われますが、データや行または列ヘッダーを移入することもあります。

複数のGoogleアカウントの使用

Google Docs では複数のアカウントを同時に使った同一ブラウザー内での利用はできません。 公開のGmail アカウント や Google Apps アカウントであってもです。 次の一連のアクションの場合はこの問題に出会う可能性があります。
  1. account1@gmail.com としてGoogleアカウントにログインする
  2. スプレッドシートを開いて Script Editor を開始する - どちらも account1 でログインしていることになる
  3. Script Editor を閉じて account1 をログオフする
  4. 先ほどと違う account2 としてログインする
  5. スプレッドシートを開いて Script Editor を開始する - スプレッドシートは account2 でログインしたことになるが、 Script Editoraccount1 でログインしている
  6. 保存する
このケースの場合、現在のアカウントで一度ログオフした後、ブラウザーのクッキーをクリアしてブラウザをあらたに起動させます。 これで Google Docs は再度ログインの動作になります。
  • もし account1 で再ログインしたときは、スクリプトの保存や編集にアクセスできます。
  • もし account2 で再ログインしたときは、保存したスクリプトのロードはできますが、編集はできません。このスクリプトのオーナーは account1 になっており、スクリプトの横に編集不可の【鍵-ロック】が表示されます。



    * ユーザーガイド/目次
    1. ユーザーガイド/Google Apps Script の概要
    2. Getting Started/Google Apps Scriptをはじめよう
    3. Writing Scripts/スクリプトを書く
    4. Common Tasks/一般的なタスクのプログラミング
    5. Events/イベントへの応答スクリプト
    6. User Interfaces/ユーザーインターフェースの組み込み
    7. Using GUI Builder/GUI ビルダー の使用
    8. Security/セキュリティ
    9. Troubleshooting/トラブルシュートとデバッグ
    -- ユーザーガイド 8. セキュリティ : end -- 2011/10/30