Unitの運用設計と設定
Personium Unitの導入にあたっては、運用設計を行いそれに応じた設定をすることが必要です。
PersoniumとPKI
PersoniumのUnitはwebやOpenIDのようなDecentralizedなBaaS/PDSサーバで、相互に信頼関係のリンクを定義することで、別々のサーバインフラに立てられたPersoniumサーバ群が連携してインフラをまたがってデータの共有や利活用を行えることを特長としています。
インフラをこえてPersoniumサーバ間で相互の信頼関係を確立するために、Personiumは内部でPKIの枠組みを使っています。具体的には、PersoniumでCellをまたがったやり取りに用いられているTrans-Cell AccessTokenはSAML2.0のAssertion形式となっており、Assertionで用いる電子署名としてPKIの代表的な仕様であるx.509を使用したものを採用しています。
UnitがSAML発行のための電子署名を行うため、それぞれ固有のX.509の秘密鍵と証明書を持つ必要があります。また受取った証明書を検証、信頼判断する際に用いるための材料もUnitに設定する必要があります。
Unit秘密鍵と証明書の作成と設定
X509の秘密鍵と証明書を作成します。証明書は適切なルート認証局での署名が必要です。
また、Unitとして受け入れるルート認証局の証明書を設定する必要もあります。(執筆予定)
Unit User 管理設計
まずはじめに、Unit管理者はそのUnitを自身のみが占有的に用いるのか、他の人に使わせるのかに応じて、Unit Userをつかうのかどうかを決定します。
Unit Userを使わない場合はUnit Master Tokenを使ってUnitレベルの操作を行います。 Unit Userを使う場合は、次にUnit User管理機構をどのように調達するのかを決定します。 既に外部に存在する利用者管理機構を使う場合は、SAML形式のトークンを生成する実装が必要となります。 この実装にあたってはUnitに設定する秘密鍵と証明書のペアが必要になることに留意してください。Unit User名として使える文字列は、UTF-8の文字列であれば何の制約もありません。 これはUnit 所有者が既に持っている利用者IDとの接続を考えてのことです。
外部の利用者管理機構が存在せず新設の必要もない場合は、Unit User管理機構としてCellを使うこともできます。
特定CellをUnit User管理機構として用いた場合はUnitUser名は PersoniumサブジェクトURL ({Cell URL}#{アカウント名})となります。
Data Bundle 設計
Data Bundle とはPersonium Unitに格納されるデータのバックアップ・リストアの単位です。具体的にはPersoniumの現実装が採用しているバックエンドであるESとファイルシステムに保存される情報は、このData Bundle名によって分離されて保存されます。
Unit管理者はデータのバックアップ運用や予見されるマイグレーション計画などに合わせて、どのような単位でDataBundleを切ってゆくのかを設計する必要があります。多くの場合はUnitユーザ名をそのままData Bundle名として使えば問題ありません。すべてのUnitユーザのデータを一つのデータバンドルとして保存したり、Unitユーザの所属組織毎またはUnitユーザ名のプレフィクスなどに応じてデータバンドルを分けたい場合は、Data Bundle名決定関数を定義します。
DataBundle 名として使用可能な文字には以下の制限があります。そのため、Data Bundle名決定関数の作成にあたっては、このことに留意する必要があります。
デフォルトでは、Data Bundle名決定関数は以下のロジックとなっています。
- "#" 記号があった場合は、それより後の文字列のみを使う
- DataBundle名として使用できない文字についてはエスケープを行う。
特定CellをUnit User管理機構として用いた場合はUnitUser名は PersoniumサブジェクトURL {Cell URL}#{アカウント名}となりますが、上記デフォルトData Bundle名決定関数を使った場合は、DataBundle名としてはUnit User管理Cellのアカウント名が使われることとなります。