Mar 29, 2007

KeychainPlugin

Dashboard上のwidgetがkeychainにアクセスする事を可能にする KeychainPluginを公開します.このplug-inは後述しますが, 必要最小限のkeychain APIをPlugin形式で提供するものです.ちなみにソースしかありませんので, xcodeなどでmakeして下さい.

しかしながら, keychainにアクセスする場合,widget側で注意する事があります. それは, keychainから見るとすべてのwidgetはアプリケーション"DashboardClient"であり, 区別がつかないという事.つまり, とあるwidgetがkeychainに保存したパスワードを, 他のwidgetが読み込もうとした時, keychainは同じ"DashboardClient"が参照に来たと判断して, ユーザの確認なしにアクセスを許可します.widgetは導入時に確認が入るのでそこまで気にする必要もないかも知れませんが,設定したwidget以外からのアクセスは拒否したい気がします.

KeychainPlugin-1_0.tar.gz (ソースのみ)

これに対処する為, mixi widgetではアカウント名を「e-mailアドレス:widget identifier」としてkeychainに保存する事にしました. これにより, widet identifierが分からないとパスワードにアクセスできません.完璧ではないかも知れませんが, 少しはましでしょう.ちなみにwidget identifierはリロードや再起動では変化しませんが, widgetを複数起動した場合それぞれに異なる値が設定されます.

本pluginが提供する関数は4つです. すべて単純なので利用する事はさほど難しくないでしょう.ちなみに, plugin付のwidgetを作成する方法は, Appleのドキュメントなり, 各種書籍を参考にして下さい.

InternetPasswordとGenericPasswordがありますが,前述の理由で,アカウントに手を加える必要がある為, generic系の関数を使うのが良いかと思います.

なお, ライセンスは修正BSDライセンスです.

No comments:

Post a Comment