Google 認証システムを導入してみた

Google認証システムアプリ
Google認証システムアプリ

ていうか、Lastpass とか Gmail は前から設定してたんですけど、昨今よく、Web サイトの会員ID漏洩のニュースとか、ブルートフォースアタックかけられて Web サービスが中断したりするニュースとかが絶えないので、Evernote と Dropbox と ここの WordPress Blog にも Google 認証システム を導入してみました。

銀行も、どこが始めたのか知りませんが、へんな暗号マトリックス表なんか使わずに、最初からこういうのにしとけば良かったのにと思います。ジャパンネット銀行や三井住友銀行は専用の OTP デバイスを無料で使えるのでまだマシですけど、あのデバイス、いちいち持ち歩く気になれないので、出先でスマホからネットバンキングというのがなかなかやりづらいですよね。

couchdb-pythonでプログラムの中からセキュリティ設定をしたい

couchdb-pythonをいじってみたりしてるんですが、標題のことをしようと思って調べてました。所詮、couchdbのインターフェイスはHTTPなので、HTTPリクエストを組み立ててサーバに投げれば出来ることは出来るんですが、せっかくできあいのライブラリがあるんだし、もっとお手軽にできないものかと思ってソースを読んでみました。

結論。

couchDBのwikiに解説されているとおり、あるデータベース(仮に’database’とする)のアクセスにユーザ名・パスワードが必要になるようにするには、http://server:5984/database/_security に

{
   "readers" : {
     "names" : ["takeshi"],
   }
}

のようなJSON文字列をPUTすれば良いのですが、db.createを使って普通のドキュメントのように ‘_id’ に ‘_security’ を設定して呼んでも、アンダースコアで始まる _id ではエラーになってしまいます。そこで、python-couchdbライブラリのUndocumentedなメソッド couchdb.client.Database.resource.put を使って設定します。

import couchdb
server = couchdb.client.Server('http://admin:[email protected]:5984/')
db = server.create('database')
db.resource.put('_security',
                {'readers' : {'names' : ['takeshi']}},
                {'Content-Type': 'application/json'})

というような感じで、couchdb.client.Databaseクラス下のメソッドで簡単にPUTリクエストをサーバに投げることができました。あ、takeshiさんのパスワードは /etc/couchdb/local.ini に書いておきます。または、Futonインターフェイスからサクッとパスワードの設定をすることもできます。

Gmailアカウントに不審なアクセスがあったけど

ひさびさに gmail の web インターフェイスを開いたら、アメリカからアクセスされた形跡があるという警告が表示された。 (下のスクショで e-plan.com: 128.121.153.90 と赤字で表示されている)

すわ、ハックされたか!?と思い、FAQなどを参照するうちに、思い当たるフシがあった。

それは、Panasonic 製 CATV STB に YouTube 動画を見る機能があって、そこに自分の google アカウント情報を登録してマイ動画なども見れるように設定したのだった。

もっとこう、なんか、OpenID みたいな認証方法取れないのだろうかね。ビックリした。