AccountManager と Self-Issued OP は共存するのか(しない)

経緯

前職の後輩より、AndroidでのAccountManagerの実装について問い合わせを受けました。詳細を確認したところ、「スマホアプリで認証連携を検討した際に、OpenIDのSelf-Issued OPを使いたいとの要件があるため、秘密鍵の管理をAccountManagerでやりたい」という趣旨でしたので、ちょっと調べてみました。

はて、

そもそも、「秘密鍵管理する」ということはどういうことか?これは OpenID の Self-Issued OP の仕組みに起因しています。Self-Issued OPについて誤解を恐れず非常にざっくり説明すると、「OpenID の管理をスマホ内に入れて、そこから他のアプリやブラウザからのログインなり何なりを認可連携させる仕組み」です。イメージとしては、OpenIDを管理するアプリを入れ、そこにログインだけしておけば、他のアプリやブラウザからのログインはOpenID経由と同じ仕組でアプリ内ですべてまとめてやってくれる、という仕組になります。GoogleとかYahooとかに頼らなくても、IDプロバイダからは独立してスマホ内でアカウントを管理するということです。

一方、AccountManagerは、Android内にアプリのID/Password/Tokenを比較的安全に保存し、他のアプリに認証サービスを提供するためのものです。

どっちも同じようなもの?それになんか便利そう?

いやいや、結局のところ、このSelf-Issued OPのアプリを解析されたら認証・認可の機能を乗っ取られかねません。保存すべき秘密鍵はどう管理するのか、root取られたらどうするのか、、、。
では、AccountManagerで秘密鍵などを管理させたら?というのがこの問い合わせに至った、という経緯なわけで。

そもそも求めている状態は何か?

Self-Issued OPアプリと、それを利用するRPのアプリが同一パブリッシャーの場合は、Self-Issued OPなんて面倒なことをやらないで、共通アカウントをAccoutMangaerに格納するほうが現実的じゃないかと。そこがパブリッシャーの場合はAccountManagerは使えないですが、だからといって Self Issued-OP を独自アプリに採用するのはちょっと、、、という感じですね。OSレベルでの実装であれば使い勝手も良くなるとは思いますが。
というわけで、OpenIDを使いたいという気持ちはわかるものの、今のSelf Issued-OPの仕組に乗っかるのはセキュリティ的に気になります。アプリが同一署名である必要がある、という制限がありますが、AccountManagerが近い形で実装はできるので、こちらからアプローチするのが適切かと思われます。

知識は陳腐化する

OpenIDを触っていたのが3年以上前なので、まったく見当違いなことを言っている可能性もありますが、ツッコミありましたらコメントでお願いします。

【読了】幸せな死のために一刻も早くあなたにお伝えしたいこと

若い医師から見た生と死について。素晴らしい本だった。下手な感想を伝えるよりも、とにかく読んでいただきたい。

遺伝子検査MYCODEを試す

自社関連サービスで宣伝のようになりますが、DeNA Life Scienceの提供する遺伝子検査サービス「MYCODE」を注文してみました。

MYCODE | MYCODE(マイコード)

遺伝子検査という分野は実のところ研究自体は相当進んでいて、海外では手軽に試すことができます。国内ではジーンクエストさんが先行してサービスを提供し、他にも数社同様のサービスが開始された、という状況です。

mycode_package

在宅で、唾液サンプルを採取するだけで利用できる遺伝子検査ということで非常に手軽ですが、せっかくなので約280種類の検査項目が判るオールインワンを申し込みました。一日一項目をネタにすれば、営業日換算で1年以上はネタにできますね。

ちなみに、最初に開封するとスタッフからのメッセージが入っていました。これは購入された方ご自身で見て戴ければと思います。あと面白かったのは、唾液を出しやすくするようにということでレモンの写真のカードが入ってました。

結果がでましたら、またネタにさせていただきます。

【書評】Team Geek ―Googleのギークたちはいかにしてチームを作るのか

随分前に読み終えていたのだが、良い本だった。

いつもリーダーシップについて悩んでいるようであれば、是非読んだほうがいい。
技術が中心の会社で起きうるマネジメントの問題が網羅されている。

既に他の製造業と同じように、ソフトウェアの開発工程はより複雑になり、多くの人員を以って分担するようになった。
一方で、そのマネジメントは十分に成熟していない。本書はその道標になるだろう。

ただ、本書はソフトウェア開発のマネジメントを網羅的には書かれているが、体系的になっているわけではない。何度も読みなおして、自分の中で体系的に知識を身につける必要があるだろう。

【書評】コネクト 企業と顧客が相互接続された未来の働き方

正直この本は、帯のダニエル・ピンクのコメントで買った。

非常によく書かれた本であることは間違いないのだが、正直ピンとはこなかった。かつて様々な本で書かれていた断片を集めて、丁寧に書かれている印象ではある。まだ私には早かったのかもしれない。読まれる方は、まず目次に目を通して戴けるとよいだろう。

MacでSamsung SSD 840 EVOのTRIM有効化

毎年年賀状の季節になるとWindowsを使う必要があり、Mac mini上のVMware Fusion上で作業していたのですが、OSがMavericsになってからどうにも遅く、耐えられずにSSDに換装してしまいました。

導入したSSDはSamsung SSD 840 Evoです。換装作業自体はすんなりいったのですが、移行アシスタントが正常に動作しないという事態が発生。そちらは諦めて新規インストールとコピーで済ませ、最後に様々なサイトにある通りTRIM機能を有効にしようとすると、Trim Enablerでは有効になりませんでした。

そこで下記のサイトを発見。

http://www.mactrast.com/2011/07/how-to-enable-trim-support-for-all-ssds-in-os-x-lion/

記事の中でCHAMELEON SSD OPTIMIZERを勧められており、こちらで実施したところうまくいきました。(実行には1分くらい掛かったので多少焦ったのですが)

ということで換装が終わり、スピードテストをしたところ、ATAドライバがついてこれないのかSSDのフルスペックの1/4くらいのスピードしか出ません。それでもHDDよりはReadで5倍、Writeで3倍のスピードではあるんですが…。なんだか残念な気持ちに。

デジタルでないゲームで遊ぶ

昨年まで私が携わっていた仕事で、かつて私自身もかなりの時間を費やしてプレイしたゲームを企画されていた大変著名な方とご一緒する機会があり、その方からお誘いを受けてデジタルでないゲームで遊ぶ会に参加しました。これが大変楽しかったので、記録の意味でもプレイしたゲームを2つほど紹介させていただきます。

Kingdom Builder

ドミニオンの作者が作ったボードゲーム。ドミニオンよりもシンプル。
ボード上の土地に自分の領土を拡大し、最終的にはゲーム内ルールによる点数が一番高い人が勝ちとなります。
基本的な動作は、前の手番の最後に山札から1枚カードを引き、次のターンが来るまで思考を巡らせ、手番になったときにカードの示している地形に入植地コマを3つ置きます。但し、可能な限り既に置いてある自分の入植地コマに隣接しなければいけない、という点がポイントで、これにより戦略を組み立てたり他のプレーヤーの妨害ができたり、戦略的にゲームを進めることができます。

ルールは非常に簡単なのですが、ドイツ語版ということでカードだけでは十分にルールが把握できず、試行錯誤しながらプレイしました。

Shadows over Camelot – キャメロットを覆う影

アーサー王と円卓の騎士をモチーフとしたボードゲーム。ルールがかなり複雑です。

複数のボードの上でめぐらされる複数のクエストをこなし、円卓に7本の白い剣を揃えれば勝ち、というルールですが、各クエストの勝利条件がかなりキツく、プレーヤーが共同して戦略を立てて効果的に達成していかないと厳しいです。しかもプレーヤーの中には一人だけ裏切り者がいる可能性があり、疑心暗鬼のままゲームが続くという心理戦の要素もあるゲームでした。

5人プレイで 2回やりましたが、2回とも裏切り者(それも同一人物)に滅ぼされるという憂き目に合いました。

 

その後、会社でもよくゲーム研究と称してやっているドミニオンをしてお開きとなったのですが、上記2つのゲームを通して昨今のカードバトルの深淵を覗くことが出来、大変参考になりました。