アカウントの管理システム |
|
BOINC プロジェクトのアカウントを作成するために参加者は以下のことをしなければなりません。
参加者が、N 個のプロジェクトを選んだら、N 個のウェブサイトに行って、 それぞれ N 個のウィザードで手続きを完了せねばなりません。 プロジェクトが多ければ、退屈になってきます。
以下の文では、BOINC が支援するアカウント管理システム について記述します。 このシステムは、 BOINC プロジェクトを見つけて参加する過程の無駄を省きます。 典型的なアカウント管理システムは Web サイトとして実装されます。 参加者の経験することは、以下のようになります。
アカウント管理システムは以下のように動作します。
もしアカウント・マネージャのサーバへ侵入することに成功した曲者がいたら、 あり得る危険として、アカウント・マネージャを操ることによって、 悪意あるアプリケーションを走らせるための悪意ある BOINC プロジェクトに接続するような指示を、 接続してくるすべてのクライアントへ出させるかもしれません。
このタイプの攻撃を防ぐために、アカウント・マネージャが配付する URL にはデジタル署名がなされます。 それぞれの アカウント・マネージャ(AM)は、署名鍵 ペアを持っています。 ペアのうちの1つである公開鍵は、 AM の 構成定義ファイルとともに配付され、かつまた すべての RPC の応答に含めて送信されます。 もう一方の秘密鍵は、物理的に安全に保たれ、かつネットワークに接続されていない 計算機に保存して置かねばなりません。 この計算機で URL 群に署名を行います。
URL 群に署名をするには、 BOINC の暗号化ユーティリティ・プログラム である crypt_prog をコンパイルして下さい。 (ソースのダウンロードとコンパイルの手引き は ここにあります)。 鍵ペアを生成し、対象とする URL 群に署名を作って下さい。 ある時点で、恒久的に使う鍵ペアをに責任を持つ必要にせまられるでしょう。 その時点で、対象となる秘密鍵は署名用マシン(ネットワークから隔離してあるもの) に移すべきです。 1つまたは 2つの複製を CD-ROM に作るか、 紙の上に鍵ペアを印刷し、 それらを安全な場所にしまいます。 秘密鍵のその他の複製はすべて抹消して下さい。
BOINC を使い大きなクラスタの設定と制御をするシステムを実装するためにも、 AM の仕組みを使うことができます。 そのようなシステムを我々は ファーム・マネージャ と呼んでいます。 ファーム・マネージャではクライアントに細粒度の制御をしたいかもしれません。 たとえば、リザルトの計算を一時停止・再開する能力といったものです。 これは、GUI RPC を用いて可能です(ファーム・マネージャがクライアントと GUI RPC ポートを通じて HTTP で接続できるという前提)。 しかし、ファーム・マネージャはそれぞれのクライアントについて、 使っている GUI RPC ポートと、パスワードを学ばねばならなくなります。 これを救うために、AM 設定ファイル(下記参照)では、各クライアントへの AM RPC 要求で用いる GUI RPC ポートとパスワードを指定できるようにしてあります。
ファーム・マネージャが GUI RPC をプロジェクトへの参加と離脱に使うなら、 ファーム・マネージャはこの目的のために、AM の仕組みを使うべきではありません。 つまり、その AM RPC の応答は、プロジェクトの一覧に何も含まないはずだからです*。 この場合 AM の機能は、システム管理者(sysadmins)に、 ファイルを複写して新しいクライアントを準備することができるようにするということになります。 この AM の仕組みは、新しいクライアントを登録する面倒を1箇所から集中的に行います。
BOINC のコア・クライアントは、アカウント・マネージャの情報を保持しておくために、 以下のファイルを使います。
<acct_mgr>
<name>BOINC アカウント管理システムの名前</name>
<url>http://acctmgr.com/</url>
[ <send_gui_rpc_info/> ]
<signing_key>
1024
ae843acebd4c7250b0fa575d14971b17a56a386a6bb1733d98f4b00460c26159
c8b3217e6cdff938ec0454330c70553fbe3d1f0d0184d8c628db2e093121ee98
8ddbda6e8991879317afccab41f84e9de4903a656f4d3f3e4e7dbc0af9362a05
6ece5ff401a380f3a1d1254d477f7bc84fdcebcca6cb035e776452d3d6d21471
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010001
.
</signing_key>
</acct_mgr>
上記の URL は 対象アカウント・マネージャのウェブサイトのものです。
もし上記の <send_gui_rpc_info/> タグがあるなら、 アカウント・マネージャ RPC は、対応するクライアントの GUI RPC ポート番号とパスワードハッシュを応答に含めます(後述)。
<acct_mgr_login> <login>名前</login> <password_hash>xxx</password_hash> </acct_mgr_login>
パスワードの値は、MD5(password_lowercase(login)) を計算してそれを password_hash 要素に入れます。
コア・クライアントが acct_mgr_url.xml を見つけられても、acct_mgr_login.xml が見つけられない場合には、名前とパスワードを入力するよう求めて、 acct_mgr_login.xml の中に格納します。 そして、アカウント管理の RPC を発行します。 コア・クライアントは、 アカウント管理 RPC を実行するにあたり、メニュー項目を提示します。 また、名前とパスワードの変更についてもメニューを示します。
アカウント・マネージャは、自分の名前とパスワード長の最小値を含み、
さらに
<account_manager/> タグを含む
get_project_config.php ファイルを
提供しなければなりません。
さらに、アカウント・マネージャは HTTP の POST 要求を使う 下記の RPC
を受け入れる必要があります。
| URL | BASE_URL/rpc.php を指定します。 ここで、 BASE_URL は 対象アカウント・マネージャのウェブサイトの URL です。 |
| 入力 |
<acct_mgr_request>
<name>John</name>
<password_hash>xxx</password_hash>
<host_cpid>b11ddc5f36c9a86ff093c96e6930646a</host_cpid>
<previous_host_cpid>b11ddc5f36c9a86ff093c96e6930646a</previous_host_cpid>
<domain_name>host.domain</domain_name>
<client_version>5.3.2</client_version>
<run_mode>auto</run_mode>
<global_preferences>
<source_project>http://a.b.c</source_project>
<source_scheduler>http://a.b.c</source_scheduler>
<mod_time>1144105331</mod_time>
... [ global preferences ]
</global_preferences>
<project>
<url>http://setiathome.berkeley.edu/</url>
<project_name>SETI@home</project_name>
<suspended_via_gui>0</suspended_via_gui>
<account_key>397d250e02ec02be8141b8d109d5ec73e5</account_key>
<hostid>NNN</hostid>
</project>
[ ... 他のプロジェクト群 ]
[ <gui_rpc_port>N</gui_rpc_port> ]
[ <gui_rpc_password>xxxx</gui_rpc_password> ]
...
</acct_mgr_request>
|
| 出力 | <acct_mgr_reply>
<name>アカウント・マネージャの名前</name>
<signing_key>
1024
ae843acebd4c7250b0fa575d14971b17a56a386a6bb1733d98f4b00460c26159
c8b3217e6cdff938ec0454330c70553fbe3d1f0d0184d8c628db2e093121ee98
8ddbda6e8991879317afccab41f84e9de4903a656f4d3f3e4e7dbc0af9362a05
6ece5ff401a380f3a1d1254d477f7bc84fdcebcca6cb035e776452d3d6d21471
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010001
.
</signing_key>
[ <message>ここにメッセージを入れる</message> ]
[ ... ]
[ <error>MSG</error> ]
[ <repeat_sec>xxx</repeat_sec> ]
<global_preferences>
[ <source_project>http://a.b.c</source_project> ]
[ <source_scheduler>http://a.b.c</source_scheduler> ]
<mod_time>1144105331</mod_time>
... [ global preferences ]
</global_preferences>
[
<account>
<url>URL</url>
<url_signature>
397d250e02ec02be8141b8d196a118d909d5ec73e592ed50f9d0ad1ce5bf87de
e37f48079db76128b20f913a04e911489330a7cab8c346177f1682d236bc7201
42b32665d0d83474bf12aebd97b2bb9a4c4461fa3f0b49bbd40ecfa16715ced7
f72103eb0995be77cac54f253c0ba639a814d3293646ae11894e9d1367a98790
.
</url_signature>
<authenticator>KEY</authenticator>
[ <update/> ]
[ <detach/> ]
</account>
...
]
</acct_mgr_reply> |
| 動作 | このメタ・アカウントに結びついているアカウントの一覧を返します。
引数群は以下のとおり。
返される値は以下のとおりです。
|
BOINC では、計算機(host)のために2種類の ID 仕様を使っています。 すなわち、
参加者の使っている計算機(host)一覧を保守・維持する方法として以下を提案します。
最終更新時刻 20:22:14, 2006年10月15日(JST)
Copyright © 2013 University of California.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.
Copyright © 2013 Komori Hitoshi(je2bwm at jarl.com).
Japanese translation from English web pages on BOINC.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation.