Next: 4. クライアントの設定 Up: MEDACA Previous: 2. 準備
- 3.1 SabreDAVインストール
- 3.2 Dg_Commonのpearインストール
- 3.3 Dg_LDAPのpearインストール
- 3.4 MEDACAの入手と展開
- 3.5 LDAPサーバの設定
- 3.6 MEDACAの設定
- 3.7 Webサーバの設定
- 3.8 syslogの設定
3. インストール
3.1 SabreDAVインストール
SabreDAVのパッケージは公式サイトからバージョン1.8.0をダウンロードしてください。
http://code.google.com/p/sabredav/
ファイルはzipで提供されていますので、展開する必要があります。
# unzip SabreDAV-X.X.X.zip |
※X.X.Xは版数となります。
展開されたパッケージを配置します。
# mv SabreDAV /usr/local/lib/SabreDAV |
3.2 Dg_Commonのpearインストール
Dg_Commonは、以下のURLから入手することができます。
https://github.com/designet-inc-oss/libdg
パッケージをダウンロードしたら、 pear installを実行して、パッケージをインストールしてください。
# pear install DgCommon-X.X.X.tgz |
※X.X.Xは版数となります。
インストールを行うと、以下のファイルが配置されます。
/usr/share/pear/Dg_phplib/Dg_Common.php |
3.3 Dg_LDAPのpearインストール
Dg_LDAPは、以下のURLから入手することができます。
https://github.com/designet-inc-oss/libdg
パッケージをダウンロードしたら、 pear installを実行して、パッケージをインストールしてください。
# pear install DgLDAP-X.X.X.tgz |
※X.X.Xは版数となります。
インストールを行うと、以下のファイルが配置されます。
/usr/share/pear/Dg_phplib/Dg_LDAP.php |
3.4 MEDACAの入手と展開
MEDACAは、以下のURLから入手することができます。
https://github.com/designet-inc-oss/MEDACA
MEDACAはrpmパッケージで提供されています。rpmコマンドでインストールしてください。
# rpm -iv medaca-X.XX-X.noarch.rpm |
※X.X.Xは版数となります。
MEDACAは以下のディレクトリにインストールされます。
/usr/medaca |
3.5 LDAPサーバの設定
LDAPサーバとしてOpenLDAPを例に解説を行います。LDAPサーバの設定は次の手順で設定を行います。
- スキーマファイルの読み込み
- LDAPデータベースの索引
- 設定内容の有効化
- LDAPの基本構造の作成
3.5.1 スキーマファイルの読み込み
MEDACAが扱うLDAPエントリには、MEDACA特有のオブジェクトクラスが含まれます。MEDACAのrpmパッケージには、スキーマファイルmedaca.schemaが同梱されています。OpenLDAP の場合は、このmedaca.schemaを読み込むだけでMEDACAのオブジェクトクラスを利用できるようになります。/etc/openldap/slapd.confに以下の設定を追記してください。
include /usr/medaca/schema/medaca.schema |
※/etc/openldap/slapd.confが存在しない場合は、/usr/share/openldap-servers/slapd.conf.obsoleteのコピーを使用してください。
# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf |
3.5.2 MEDACAで管理するLDAPデータ
medaca.schemaによって使用できる属性は表のとおりです。
項目 | 内容 | 解説 |
オブジェクトクラス | calendarResource | リソース(*1)を格納する構造型のオブジェクトクラスです。 |
必須属性 | resource | リソース名を指定します。 |
collectionNumMax | コレクション(*2)数の制限値を指定します。 | |
collectionCount | コレクション数を指定します。 | |
オプション属性 | calendarAdminU | カレンダーの所有者を指定します。 |
オブジェクトクラス | calendarCollection | コレクションを格納する構造型のオブジェクトクラスです。 |
必須属性 | collectionNumber | コレクション番号を指定します。 |
collectionDescription | コレクションの表示名を指定します。 | |
collection | コレクション名を指定します。 | |
collectionActive | コレクションの有効無効フラグを指定します。
1: 有効 0: 無効 |
|
authorityDefault | コレクションのデフォルト権限を指定します。
0:読み取り 1:読み書き 2:禁止 |
|
calendarCTag | カレンダー情報を識別するためのタグ番号を指定します。 | |
オプション属性 | authorityOrder | ユーザ権限の順序情報を指定します。 |
authorityArticle | ユーザの権限情報を指定します。
形式: ID:権限U名称 権限は以下の通りです。 0:読み取り 1:読み書き 2:禁止 |
|
オブジェクトクラス | calendarData | カレンダーデータを格納する構造型のオブジェクトクラスです。 |
必須属性 | calObjectUri | カレンダーデータのURIを指定します。 |
calData | カレンダーデータを指定します。 | |
calTime | カレンダー更新時間を指定します。 |
※1 リソースとは、個々のユーザに割り当てられるカレンダー情報の格納領域です。
※2 コレクションとは、1つのリソースに紐づいたカレンダー情報のグループです。
3.5.3 LDAPデータベースの索引
MEDACAでは、LDAPの検索フィルタに属性「resource」を使用するため、次の例のように索引(index)を設定してください。
index resource eq |
3.5.4 設定内容の有効化
OpenLDAP 2.4からslapdの設定方法が変更になりました。新しい設定方法では、/etc/openldap/slapd.d/ 配下にツリー構造で設定ファイルを格納する必要があります。以下では、 slapd.confの設定内容をもとに/etc/openldap/slapd.d/ 配下のファイル群を生成する方法について解説します。デフォルトで配置されている/etc/openldap/slapd.d/配下のファイルを削除してください。
# rm -rf /etc/openldap/slapd.d/* |
slaptestコマンドによって/etc/openldap/slapd.d/配下に新しい設定ファイルを作成してください。
# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d |
作成したファイルのパーミッションを以下の通り設定してください。
# chown -R ldap:ldap /etc/openldap/slapd.d |
slapdを再起動してください。
# /etc/init.d/slapd restart |
3.5.5 LDAPの基本構造の作成
LDAPの基本構造を準備します。OpenLDAPの場合は、LDAPの基本構造を作成するために次のようなファイル(init.ldif)を用意します。
# designet.jp ← トップのDNのデータ dn: dc=designet,dc=jp dc: designet objectClass: dcObject objectClass: organization o: designet # calendar, designet.jp ← カレンダー情報のrootオブジェクト dn: ou=calendar,dc=designet,dc=jp ou: calendar description: calendar objectClass: organizationalUnit |
LDIFファイルが用意できたら、次のようにldapaddコマンドで登録します。
$ ldapadd -x -D "cn=Manager,dc=designet,dc=jp" -f init.ldif -W |
3.6 MEDACAの設定
MEDACAの設定は以下の手順で行います。
- 設定ファイルの編集
- DIGEST認証用パスワードファイルの作成
3.6.1 設定ファイルの編集
MEDACAの環境設定ファイルが/usr/medaca/etc/medaca.conf としてインストールされますので、環境に合わせて編集してください。各項目の詳細は5.1節を参照してください。
SyslogFacility=local1 DBtype=LDAP LdapServer=127.0.0.1 LdapPort=389 LdapBindDn=cn=Manager,dc=designet,dc=jp LdapBindPw=secret LdapBaseDn=ou=calendar,dc=designet,dc=jp AutoResourceCreate=1 AutoCreateCollectionName=home DebugMode=0 |
ユーザのパスワードのパスワード管理にLDAPを使用する場合は 設定ファイルに認証用のLDAPの設定項目を追加する必要があります。
AuthLdap=1 AuthLdapServer=127.0.0.1 AuthLdapPort=389 AuthLdapBindDn=cn=Manager,dc=designet,dc=jp AuthLdapBindPw=secret AuthLdapBaseDn=ou=User,dc=designet,dc=jp AuthLdapFilter=(uid=%s) |
3.6.2 DIGEST認証用パスワードファイルの作成
MEDACAはユーザ認証の仕組みとして、SabreDAVのフレームワークを利用したDIGEST認証または認証用のLDAPを利用することができます。 ユーザ認証にLDAPを使用する場合はDIGEST認証用のパスワードファイルを作成する必要はありません。ユーザ認証にパスワードファイルを使用する場合は ユーザがMEDACAにアクセスできるように、DIGEST認証用のパスワードファイルを作成する必要があります。
パスワードファイルはhtdigestコマンドによって/usr/medaca/etc/にpasswdというファイル名で作成します。
htdigest [ -c ] passwdfile realm username |
-cオプションはパスワードファイルを新しく作成する場合にのみ指定します。エントリを追加する場合、-cオプションの指定は必要ありません。
パスワードファイルを新しく作成する場合の実行例を以下に示します。realmの値には「MEDACA」を指定するようにしてください。
# htdigest -c /usr/medaca/etc/passwd MEDACA caluser |
エントリ追加のための実行例を以下に示します。パスワードファイルを新しく作成する場合と同様、realmの値には「MEDACA」を指定するようにしてください。
# htdigest /usr/medaca/etc/passwd MEDACA caluser2 |
パスワードファイルには以下のような内容が書き込まれます。
caluser:MEDACA:7b961a1146b71ea19789c321b7694cc8 caluser2:MEDACA:745f1c75ea9d081a66c56f07a5b96b23 |
passwd は、Webサーバの実行アカウントで読み取ることができる必要があります。Webサーバの実行アカウントをファイルの所有者とするように設定してください。また、他のアカウントによって読み取ることができないように権限を設定してください。
# chown root:apache /usr/medaca/etc/passwd # chmod 640 /usr/medaca/etc/passwd |
3.7 Webサーバの設定
Apacheの設定のためにhttpd.confファイルを編集します。以下の3点の設定を行ってください。
- ディレクトリアクセス制御設定
- phpのinclude_pathの設定
- エイリアス設定
3.7.1 ディレクトリアクセス制御設定
MEDACAのインストールディレクトリに対してアクセス許可の設定を行ってください。
<Directory "/usr/medaca/cal"> order deny,allow deny from all allow from all </Directory> |
3.7.2 phpのinclude_pathの設定
MEDACAがSabreDAV、Dg_Common、Dg_LDAPのライブラリを参照できるように、前節で設定した<Directory>ディレクティブの中に以下の設定を追加してください。次は、SabreDAVを/usr/local/lib/SabreDAV/に展開した場合の例です。
php_value include_path ".:/usr/local/lib/SabreDAV/:/usr/share/pear/Dg_phplib/" |
3.7.3 エイリアス設定
MEDACAのインストールディレクトリをクライアントからアクセスするURLにマッピングするために、以下のエイリアスを設定します。
Alias /cal/ "/usr/medaca/cal/" |
3.8 syslogの設定
MEDACAのログを出力するためにはsyslogの設定が必要です。 環境設定ファイルのSyslogFacilityで指定した値にあわせて設定してください。下記の例は、local1のファシリティを/var/log/medaca.logに出力するためのsyslogの設定です。
# MEDACA Log local1.* /var/log/medaca.log |
Next: 4. クライアントの設定 Up: MEDACA Previous: 2. 準備 2016年12月13日