[Google Colabratory]Google認証を自動化しよう その1

Google Colaboratory

どうも。つじけ(tsujikenzo)です。このシリーズでは 「Google ColaboratoryのGoogle認証を自動化しよう」 について全3回でお送りします。今日は第1回目で、 「Google認証を自動化する仕組み」 をお届けします。

Google ColaboratoryのGoogle認証とは

Google ColaboratoryでGoogleドライブを操作するためには、 ランタイム上にGoogleドライブをマウントする必要があります。

マウントするために、2つの方法があります。(2021年現在)

  • アイコンクリックによるマウント
  • コードによるマウント

アイコンクリックによるマウント

左メニューの[ファイル]をクリックし、アイコン[ドライブをマウント]をクリックします。 

左メニュー内に、マイドライブがマウントできていると思います。

アイコンクリックのばあいは、認証手続きをする必要はありません。Google Colaboratoryを起動したときに、すでにアカウントにログインしているからです。

この、マウント作業ですが、プログラミングで自動化できないのでしょうか。

コードによるマウント

コードを書いて、マウントすることもできます。必要なコードは2行だけです。

from google.colab import drive
drive.mount('/content/drive')

手順は以下の通りです。

  1. driveモジュールをインポートする
  2. mountメソッドでPath[/content/drive]にマウントする
  3. URLをクリックして別ウィンドウでユーザー認証を行う
  4. (いつもやってる)ユーザー認証をするとトークンが発行される
  5. トークンをインラインにコピペする
  6. 「あなたは本人に間違いないですね。OKですマウントします。」 と、いう流れです。

インラインにトークンをコピペするところ 

確かに、コードでマウントできていますが、トークン生成用のURLをクリックしたり、トークンをコピペしたり、手作業は残っています。

結論

マウントは、アイコンをクリックか認証用トークンのコピペが必要です。

Google Colaboratoryを起動する度に、この作業が必要です。正直、毎回認証をするのは面倒くさいです。

自分のみで管理している、自分用のコードなのに。。。自分だけの、自分。。。

( ゚д゚)ハッ!

Googleに、「この人は、わたしが信頼してる人なので、この人からのアクセスは認証を通してあげてください」 と、事前に話をつければいいのではないでしょうか。

天才現る

むかしむかし、あるところに、そんなことを考えた一人の天才がいました。(わたしが所属するノンプロ研のメンバーさんです)

Colaboratoryで認証なしでG Suiteの操作する方法 - Qiita
認証なしで実行できるようにしようと思った背景最近、スプレッドシートの数万のデータを扱うのにGASでは限界を感じていて、Colabで実行したら軽かったのでColabでのスプレッドシート操作が多くなっ…

彼が考えたのは、「代理人を用意して彼に権限を渡します。Googleさんは彼に本人確認をしてください。」 ということです。

代理人はGoogleさんに本人確認を求められたら、いつでも本人であることを証明すればいいのです。

代理人が本人証明をするロジック

代理人はどうやって本人であることを証明するのでしょうか。

それは、Googleさんに本人確認されたら 「秘密鍵」 をGoogleさんに見せるのです。

その「秘密鍵」はもちろん、わたしとGoogleさんだけしか知りえない情報です。私はその「秘密鍵」を、代理人に預けています。

代理人には、Googleさんに秘密鍵を見せる役割をお願いしてますし、さらに、代理人として私のGoogleドライブを編集する権限を与えています。

専門的なお話

ここまでの解説は、わたしが勝手に言語化しただけで、著者のブログには書いておりません。(ざっくり書いていますが)

著者のアイディアは 「OAuth2clientモジュールに認証鍵を持たせたJSONを渡すWEBアプリを公開すればいいよね」 というものでした。 

もちろん、WEBアプリを公開するときは、わたしがGoogleの認証を通す必要がありますし、代理人アカウント(正式にはサービスアカウント)に対して、Googleドライブの編集権限を渡すのもわたし自信で、わたしの責任の範疇です。

くれぐれも、個人情報などの管理は、自己責任でお願いいたします。

まとめ

以上で、「Google認証を自動化する仕組み」 についてお届けしました。次回は 「Google認証を自動化する下準備」 ということで、実際に手を動かしていきましょう。

参考資料

このシリーズの目次

  1. [Google Colabratory]Google認証を自動化しよう その1
  2. [Google Colabratory]Google認証を自動化しよう その2
  3. [Google Colabratory]Google認証を自動化しよう その3
タイトルとURLをコピーしました