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グループ連携の導入を進めてみてください
今回は以上となります。
コメント