🐠

サバ缶グツグツフレームワーク misoni

2 min read 1

存在しない技術 Advent Calendar 2021の1日目です。
本記事で説明する技術は存在しません。また、事実でない記載が多数あります。

はじめに

こんにちは、樅山です。
今回は最近Twitterでも非常に話題となっている、サバ缶グツグツフレームワークmisoniを用いて安全にサバティカルを通信する方法について解説していきます。

サバ缶とは

サバ缶とは、サバティカル缶の略です。記憶に新しいと思いますが、2021年に労働基準法が改正されてから企業は労働者に使途に制限の無い長期休暇(= サバティカル, Sabbatical)を保証しなければならなくなりました。
政府はサバティカルをマイナンバーを利用して配布することを決定しました[1]。電子上でサバティカルを扱えるのは非常に便利です。1秒単位でサバティカルを人にあげたり人からもらったりできるようになったことで、交付後すぐにサバティカルは一種の価値となり、暗号通貨などと同様に扱われることになりました。
問題点は、その時点ではサバティカルは企業が労働者に対して交付するものであったことです。サバティカルが金銭的な価値を持つことになったことを踏まえ、政府は一旦サバティカルを凍結し、サバティカルを包括的に管理するシステムと、日本の開発者がサバティカルを用いたコンテンツを提供する(= 煮る[2])ためのフレームワーク、misoniを開発・公開し、再度サバティカルが利用されるようになりました。misoniはPythonで実装されています。

サバティカルを送信する

非常にシンプルなAPIが提供されており、簡単にサバティカルを送信することができます。

サバティカルを送信する際には、仲介としてデジタル庁・厚生労働省が共同で認証を行います。具体的には、ユーザーが属している地方自治体の役所でマイナンバーカードと保険証などの本人確認書類[3]を提示することで24時間のみ有効なワンパスワードをもらえます。
misoniに付属するCLIである、miso-cliを用いて最初の一回のみ認証を行います。

saba-cli
saba auth <マイナンバー> <ワンパスワード>

それでは、サバティカルを送信してみましょう。

サバティカルを送信する
import misoni

my_number = "xxxxx-xxxx-xxxx-xxxxxxxxxx"
destination_my_number = "yyyyy-yyyy-yyyy-yyyyyyyyyy"
saba = misoni.Sabbatical(my_number)
saba.send(destination_my_number, 60 * 60 * 12)

これによりサバ缶を煮ることができました。
サバティカルを受信するユーザーは、sabaを用いて受信したサバ缶の受領を確認することでデジタル庁・厚生労働省が一時的に確保している12時間分の長期休暇を受け取ることができます。
逆に、サバティカルを受領する前に送信者が取り消す、もしくは受領を許可しなかった場合は処理がロールバックされ、サバティカルは手続き前の状態に戻ります。

終わりに

労働や休暇が中央集権的に管理可能になったことにより、労働基準法をより厳格に企業が遵守する流れができることが期待されています。また、所属先の企業に関係なく価値のバランスを取りながら休暇を取引きできるようになったことは世界的にも類を見ない試みであり、期待ができます。
一方で脆弱性が多数報告されており[4]、misoniの開発を一部担当した国内のSI企業に対し、厚生労働省は今後脆弱性が改善されない場合は、業務改善命令を発出するという意向を固めています。

脚注
  1. 現在30%程度のマイナンバーカードの交付率を上げたいという意図も感じさせる。実際にはプライバシー的な観点で不安の声も上がっており、野党側からも反発が起こっている。 ↩︎

  2. 政府資料ではサバティカルを用いたコンテンツを提供することを煮ると表現しており、さらにmisoniのGitHubでは「The framework of simmering sabbatical」とされていることから、サバ缶グツグツフレームワークと呼ばれている。 ↩︎

  3. なぜかマイナンバーカードを本人確認書類として扱ってくれない。 ↩︎

  4. そりゃそう ↩︎

Discussion

This article has some really interesting ideas. とても楽しく読ませていただきました。It reminded me of the movie In Time.

ログインするとコメントできます