こんにちは。サイオステクノロジー技術部の池田です。
今回は最近PDSの実装として活発に開発が進んでいるPersoniumについて紹介したいと思います。
Personiumとは
Personium(ペルソニアム)とはPDS (Personal Data Store) サーバを提供するためのオープンソースソフトフェアの1つです。主に富士通によって開発が進められています。
PDSは「パーソナルデータ」をそのデータを保有する本人の決定により活用できるようにするサービスのことを指します。PDSでは次のような特徴を持つことを求められます。
- パーソナルデータをセキュアに保存できる
- パーソナルデータを構造化データとして扱える
- パーソナルデータをそのデータを保有する本人が活用方法を決定できる
Personiumは上を満たすPDSの実装となっています。
特長
Personiumは次のような特長があります。
- PDSサーバを誰でも立てられる
- データ主体は個人でなく法人やモノでも良い
- REST APIの基づくAPIを中心とした設計
- OAuth2.0による認可
- WebDAVによる強力なファイル操作
アーキテクチャ
(https://personium.io/docs/ja/user_guide/001_Personium_Architecture.html より引用)
- CellはPersoniumの基本的な概念です。Cellがパーソナルデータの単位となります。認証・承認やアクセス制御といった機能を持ちます。
- Unitは一意のFQDNを持つPersoniumを実行するシステムインフラストラクチャです。これがPersoniumのPDSとなります。後述の手順で作成できます。
- Boxはアプリケーション用のデータストアです。
PersoniumによるPDSサーバの構築
PersoniumによるPDSサーバの構成は下図のようになります。実際にこのようなサーバをローカルのPCに構築してみましょう。手作業で作るには複雑ですが、幸いにもVagrantとAnsibleによってインフラのコード化がされているので手順は非常に簡単です。今回は取っ掛かりということでUnit管理者として、「UnitManager」というPersoniumのUnit内のCellを管理するGUIツールにログインするところまでの手順を追ってみます。
(https://github.com/personium/setup-vagrant/tree/master/ansible より引用)
- 準備
まずはローカルPCに次のソフトウェアをインストールしてください。- VirtualBoxをインストールする
- Vagrantをインストールする
- 環境構築のためのVagrant+Ansibleのコードをダウンロード
$ git clone https://github.com/personium/setup-vagrant.git
- Personium環境の構築
次を実行するとPersonium環境の構築が開始されます。
この手順はマシンスペックや回線速度によっては2時間くらいかかることがあるようです。気長に待ちましょう。$ cd setup-vagrant setup-vagrant$ vagrant up
- Unit管理者のクレデンシャルを確認
次のコマンドを実行してください。setup-vagrant$ vagrant ssh $ sudo su - # cat /root/ansible/unitadmin_account unitadmin {password} # exit $ exit
{password}
の部分がのちほど必要になります。 - hostsファイルの設定
hostsファイルに次の記述を追記してください。127.0.0.1 personium.example.com
参考までにhostsファイルの通常は場所は以下にあります。
- Windows:
C:\Windows\System32\drivers\etc\hosts
- MacOS:
/private/etc/hosts
- Windows:
-
UnitManagerへのログイン画面へアクセス
ブラウザからhttps://personium.example.com/app-uc-unit-manager/__/html/login.html
にアクセスしてください。すると次のようなログイン画面が表示されます。
-
Unit管理者としてログイン
Unit管理者のクレデンシャルを入力します。フォーム 値 Login URL https://personium.example.com/unitadmin/ Username unitadmin Password {password} (4で確認したもの) -
ログイン完了!
-
PDSのサスペンド
次のコマンドでPDSをサスペンドできます。setup-vagrant$ vagrant suspend
参考文献
Personiumの紹介ありがとうございました。Personiumの運営チームのディクソンです。
実は最新版は設定が大変ので、困るときTakkyさんの記事を参照してください。
https://qiita.com/takky0330/items/1706be1e23122ec2ac86
ディクソンさま、教えていただいた記事とても参考になります。ありがとうございます!