Jupyter Notebookを使ったデモでパスワードを秘匿

自分が書いたPythonコードを見せる際 Jupyter Notebookは大変便利な環境です。打ち込んだコードと結果がリアルタイムで見えるので初学者、中級者向けの説明にはもってこいと言えるでしょう。

ただし、何らかのWebサービスにログイン(トークン取得)して作業を行う場合にはパスワードが見えてしまうという問題があります。

f:id:kazutaka83:20180301033019p:plain

ログイン名(UserName)とパスワード(Password)が丸見え。これはまずい。 で、見せたくない情報が含まれている場合にはgetpassモジュールが便利です。

16.9. getpass — 可搬性のあるパスワード入力機構 — Python 3.6.5 ドキュメント

from arcgis import GIS
from getpass import getpass

password = getpass()

gis = GIS('https://arsgis.com', 'Username',  password)

これでパスワード部分が秘匿されます。getpassを呼び出したときにパスワード入力画面が出てきて、一般的なパスワード入力フォーム(入力文字を●で潰す)が呼び出されます。こんな感じ。

f:id:kazutaka83:20180301035135p:plain

getpassモジュールにはユーザ名を呼び出すためのgetuserもあります。getuserはコンピュータへのログイン名を引っ張ってくるのでユーザ名、ログイン名が共通の場合はこちらを使うと良いですね。

from arcgis import GIS
from getpass import getpass, getuser

password = getpass()
username = getuser()

gis = GIS('https://arsgis.com', username,  password)

とはいえコンピュータへのログイン名とサービスのユーザ名が別の場合が大半だと思います。両方getpassで呼び出すのが良いかもしれません。

from arcgis import GIS
from getpass import getpass

password = getpass()
username = getpass()

gis = GIS('https://ej.maps.arsgis.com', username,  password)

f:id:kazutaka83:20180301040750p:plain

Jupyter Notebookを共有してもパスワードがもれないので、共同作業を行うときにはgetpassで諸々引き渡しましょう。


スポンサード リンク