PersoniumでPDS(パーソナルデータストア)を構築してみた

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【4/18開催】VSCode Dev Containersで楽々開発環境構築祭り〜Python/Reactなどなど〜
Visual Studio Codeの拡張機能であるDev Containersを使ってReactとかPythonとかSpring Bootとかの開発環境をラクチンで構築する方法を紹介するイベントです。
https://tech-lab.connpass.com/event/311864/

こんにちは。サイオステクノロジー技術部の池田です。
今回は最近PDSの実装として活発に開発が進んでいるPersoniumについて紹介したいと思います。

Personiumとは

Personium(ペルソニアム)とはPDS (Personal Data Store) サーバを提供するためのオープンソースソフトフェアの1つです。主に富士通によって開発が進められています。

PDSは「パーソナルデータ」をそのデータを保有する本人の決定により活用できるようにするサービスのことを指します。PDSでは次のような特徴を持つことを求められます。

  • パーソナルデータをセキュアに保存できる
  • パーソナルデータを構造化データとして扱える
  • パーソナルデータをそのデータを保有する本人が活用方法を決定できる

Personiumは上を満たすPDSの実装となっています。

特長

Personiumは次のような特長があります。

  • PDSサーバを誰でも立てられる
  • データ主体は個人でなく法人やモノでも良い
  • REST APIの基づくAPIを中心とした設計
  • OAuth2.0による認可
  • WebDAVによる強力なファイル操作

アーキテクチャ

3LayerStructure
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ツールにログインするところまでの手順を追ってみます。

1-server_unit
https://github.com/personium/setup-vagrant/tree/master/ansible より引用)

  1. 準備
    まずはローカルPCに次のソフトウェアをインストールしてください。

  2. 環境構築のためのVagrant+Ansibleのコードをダウンロード
    $ git clone https://github.com/personium/setup-vagrant.git
    
  3. Personium環境の構築
    次を実行するとPersonium環境の構築が開始されます。
    この手順はマシンスペックや回線速度によっては2時間くらいかかることがあるようです。気長に待ちましょう。

    $ cd setup-vagrant setup-vagrant$ vagrant up
    
  4. Unit管理者のクレデンシャルを確認
    次のコマンドを実行してください。

    setup-vagrant$ vagrant ssh
    $ sudo su -
    # cat /root/ansible/unitadmin_account unitadmin {password}
    # exit
    $ exit
    

    {password}の部分がのちほど必要になります。

  5. hostsファイルの設定
    hostsファイルに次の記述を追記してください。

    127.0.0.1 personium.example.com
    

    参考までにhostsファイルの通常は場所は以下にあります。

    • Windows: C:\Windows\System32\drivers\etc\hosts
    • MacOS: /private/etc/hosts
  6. UnitManagerへのログイン画面へアクセス
    ブラウザからhttps://personium.example.com/app-uc-unit-manager/__/html/login.htmlにアクセスしてください。すると次のようなログイン画面が表示されます。
    unit-manager_access

  7. Unit管理者としてログイン
    Unit管理者のクレデンシャルを入力します。

    フォーム
    Login URLhttps://personium.example.com/unitadmin/
    Usernameunitadmin
    Password{password} (4で確認したもの)

    unit-manager_login

  8. ログイン完了!
    unit-manager_main

  9. PDSのサスペンド
    次のコマンドでPDSをサスペンドできます。

    setup-vagrant$ vagrant suspend
    

参考文献

 

アバター画像
About 池田 透 5 Articles
2018年にサイオステクノロジーに入社。バックエンドを中心にWebアプリケーション開発を行なっている。美しい仕様・設計・コードで「世界中の人々のために、不可能を可能に。」するサービスを作りたい。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

2 Comments

    • ディクソンさま、教えていただいた記事とても参考になります。ありがとうございます!

ディクソン シュウ へ返信する コメントをキャンセル

Your email address will not be published.


*


質問はこちら 閉じる