BookStackは、オープンソースのドキュメント管理ツールとして、多くの企業や組織で採用されています。
前回はLDAP認証を利用したADとの連携について説明しました。
https://syachiku.net/bookstack-setup02/
今回はさらにAD連携を便利にするためにADグループと連携する方法について説明します。
通常はLDAP連携した場合、初回ログオンしないとユーザがBookStack上に作成されないため、事前に役割を設定することができません。
ADグループ連携を行うことで、事前に設定した役割に応じて自動的にユーザーに権限を付与することができます。 例えば、経理グループに所属している人は経理の本棚だけ管理でき、総務グループに所属している人は総務の本棚だけを編集する、などの制御ができたりします。
1. 前提条件
前回のまでのLDAP認証の設定完了している必要があります。
今回は例として事前にAD上のユーザとして以下を用意します。
- KeiriUser01 … ADグループ「KeiriDiv」に所属
- SoumuUser01 … ADグループ「SoumuDiv」に所属
- SystemUser01 … ADグループ「SystemDiv」に所属
実際の画面はこんな感じです。
※注意:日本語のグループ名だとうまくLDAP連携できなかったので英語名のグループです。

2. 手順
2.1. PHP-LDAPをインストール
BookStackのLDAPをするためにphp-ldapをインストールします。
# sudo dnf install -y php-ldap
インストールされていることを確認します。
# rpm -qa | grep php-ldap
php-ldap-8.1.31-1.el9.remi.x86_64
2.2. BookStackの設定ファイルを編集
BookStackのLDAPログオン設定は、.envファイルで行います。このファイルは、BookStackのインストールディレクトリにあります。
cd /var/www/bookstack
sudo vi .env
設定ファイルに以下の情報を追記または修正します。
LDAP_USER_TO_GROUPS=true
LDAP_GROUP_ATTRIBUTE="memberOf"
LDAP_REMOVE_FROM_GROUPS=false
2.3. 設定を反映
設定変更後、BookStackのキャッシュをクリアします。
php artisan cache:clear
2.4. BookStack側での役割の設定
2.4.1. 役割の作成
adminユーザでログオンして以下の役割を作成します。

2.4.2. 本棚とブックに役割を設定
本棚に役割を設定し、ブックにも反映させます。
本棚共通は全ユーザから見えるようにRead権限だけを設定します。

総務部の場合の設定です。

共通の設定です。だれでもアクセスはできますが、編集はシステム部だけができます。

2.5. 動作確認
- BookStackにアクセスし、ログオン画面を表示します。
- 例としてSoumuUser01でログオンを行います。
- 総務本棚と共通本棚が表示されることを確認します。それ以外は見えないことを確認します。
- 総務本棚にあるブックなどを編集できることを確認します。
3. まとめ
LDAP認証 ADグループ連携を設定することで、ユーザ単位での管理ではなくADグループ単位でアクセス権を設定することができるため、運用効率を高めることができます。
本記事の手順を参考に、ぜひLDAP ADグループ連携の導入を進めてみてください
今回は以上となります。
社内ツールを動かすサーバーの選び方
BookStack や Redmine のような社内ツールは、PHP とデータベースを自分で用意して動かします。そのためSSH で操作できる VPS が必要で、共用のレンタルサーバーでは構築できません。メモリはデータベースと同居する分を見て、2GB以上を目安にしてください。
まず試すだけなら、VPS を1台借りて動かしてみるのが手軽です。候補は次の2社です。
お名前.com レンタルサーバー(GMOインターネット)……VPSプランがあります。独自ドメインも同じ事業者でまとめたい場合はこちらです。
ConoHa VPS……Linux のほかに ConoHa for Windows Server も選べます。Windows で検証したい場合はこちらです。
契約前に、使いたい OS のテンプレートが用意されているかと、料金体系・解約条件を確認してください。


コメント