僕が個人で開発を続けているSTNSのクライアントのマイナーバージョンアップをしました。
STNSについてはこちらが詳しいです。
今回の変更点としては、クライアントサイドにキャッシュプロセスをおきました。
これによって解決される課題は下記です。
- systemdによってlogin処理時にNetwork通信は原則許可されていないため、設定変更を行う必要があったがそれが不要になる
- libnss-stns-v2においてはファイルキャッシュを採用していたので、従業員がキャッシュファイルを書き換えると権限以上のアクセス権を得ようと思えば得られた
実装
cache-stnsdについてはlibnss-stnsとunix socketで通信させる実装にしました。すべての外部とのhttp通信やキャッシュ処理をcache-stnsdに移譲したのでCで実装されたlibnss-stnsの実装がかなり薄くなっています。
今後libnss-stns-v2をインストールする際はDependsにcache-stnsdが入っているので、普通に意識せずに利用できると思います。
インストール
debian系の例ですが下記で導入できます。
$ curl -fsSL https://repo.stns.jp/scripts/apt-repo.sh | sh
$ apt install libnss-stns-v2 cache-stnsd
$ service cache-stnsd start
まだSTNSを触ったことがない方は、以前僕がSTNS as a Service を作っているので、こちらで試してみるのも楽しいかもしれません。
現状、手元の環境でしばらくエージングしてからリリースするつもりなので、今週中くらいにはyum/aptリポジトリに入っていくと思います。
なにか問題などあればissueなど起票頂けると嬉しいです。
あと余談なのですがclient、serverともに対応OSを増やして、debian8/9とCentOS8にも対応しました。
追記
リリースに際し、運用上の懸念などがあればこちらにコメントを下さい!